Diff
diff --git a/events/main.go b/events/main.go
index 444eb79..6e32c7a 100644
--- a/events/main.go
+++ b/events/main.go
@@ -4 +3,0 @@ import (
- "fmt"
@@ -10 +9,3 @@ import (
-func GetEvents(el *element.Node, prevEvents *map[string]element.Event) *map[string]element.Event {
+// need to make the element id branch to allow for quick element finding
+
+func GetEvents(el *element.Node) {
@@ -13,3 +14 @@ func GetEvents(el *element.Node, prevEvents *map[string]element.Event) *map[stri
- // fmt.Println(len(*prevEvents))
- loop(el, mp, prevEvents)
- return prevEvents
+ loop(el, mp)
@@ -18,19 +17 @@ func GetEvents(el *element.Node, prevEvents *map[string]element.Event) *map[stri
-func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Event) {
- et := *eventTracker
- eventList := []string{}
- evt := et[el.Properties.Id]
-
- if evt.Target.Properties.Id == "" {
- et[el.Properties.Id] = element.Event{
- X: int(mp.X),
- Y: int(mp.Y),
- MouseUp: true,
- MouseLeave: true,
- Target: *el,
- }
-
- evt = et[el.Properties.Id]
- }
-
- var isMouseOver bool
-
+func loop(el *element.Node, mp rl.Vector2) {
@@ -40,20 +21,5 @@ func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Even
- isMouseOver = true
-
- fmt.Println(rl.GetMouseWheelMove())
-
- if rl.IsMouseButtonDown(rl.MouseLeftButton) && !evt.MouseDown {
- evt.MouseDown = true
- evt.MouseUp = false
- if el.OnMouseDown != nil {
- el.OnMouseDown(evt)
- }
- eventList = append(eventList, "mousedown")
- }
-
- if !rl.IsMouseButtonDown(rl.MouseLeftButton) && !evt.MouseUp {
- evt.MouseUp = true
- evt.MouseDown = false
- if el.OnMouseUp != nil {
- el.OnMouseUp(evt)
- }
- eventList = append(eventList, "mouseup")
+ // fmt.Println(el.Id, (el.EventListeners))
+ evt := element.Event{
+ X: int(mp.X),
+ Y: int(mp.Y),
+ Click: false,
@@ -64,2 +30,4 @@ func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Even
- if el.OnClick != nil {
- el.OnClick(evt)
+ if len(el.Properties.EventListeners["click"]) > 0 {
+ for _, handler := range el.Properties.EventListeners["click"] {
+ handler(evt)
+ }
@@ -67 +34,0 @@ func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Even
- eventList = append(eventList, "click")
@@ -70,52 +36,0 @@ func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Even
- if rl.IsMouseButtonPressed(rl.MouseRightButton) {
- evt.ContextMenu = true
- if el.OnContextMenu != nil {
- el.OnContextMenu(evt)
- }
- eventList = append(eventList, "contextmenu")
- }
-
- if !evt.MouseEnter {
- evt.MouseEnter = true
- evt.MouseOver = true
- evt.MouseLeave = false
- if el.OnMouseEnter != nil {
- el.OnMouseEnter(evt)
- }
- if el.OnMouseOver != nil {
- el.OnMouseEnter(evt)
- }
- eventList = append(eventList, "mouseenter")
- eventList = append(eventList, "mouseover")
- }
-
- if evt.X != int(mp.X) && evt.Y != int(mp.Y) {
- evt.X = int(mp.X)
- evt.Y = int(mp.Y)
- if el.OnMouseMove != nil {
- el.OnMouseMove(evt)
- }
- eventList = append(eventList, "mousemove")
- }
-
- // Get the keycode of the pressed key
- keyPressed := rl.GetKeyPressed()
- if keyPressed != 0 {
- fmt.Printf("Key pressed: %c (%d)\n", keyPressed, keyPressed)
- }
-
- } else {
- isMouseOver = false
- }
- } else {
- isMouseOver = false
- }
-
- // fmt.Println(isMouseOver)
-
- if !isMouseOver && !evt.MouseLeave {
- evt.MouseEnter = false
- evt.MouseOver = false
- evt.MouseLeave = true
- if el.OnMouseLeave != nil {
- el.OnMouseLeave(evt)
@@ -123 +37,0 @@ func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Even
- eventList = append(eventList, "mouseleave")
@@ -125,15 +38,0 @@ func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Even
-
- if len(eventList) > 0 {
- for _, v := range eventList {
- if len(el.Properties.EventListeners[v]) > 0 {
- for _, handler := range el.Properties.EventListeners[v] {
- handler(evt)
- }
- }
- }
-
- }
-
- et[el.Properties.Id] = evt
-
- eventTracker = &et
@@ -141 +40 @@ func loop(el *element.Node, mp rl.Vector2, eventTracker *map[string]element.Even
- loop(&v, mp, eventTracker)
+ loop(&v, mp)