Diff
diff --git a/events/main.go b/events/main.go
index 1dca65e..f4a5b94 100644
--- a/events/main.go
+++ b/events/main.go
@@ -11,4 +11,10 @@ import (
-func GetEvents(el *element.Node) {
- mp := rl.GetMousePosition()
- // Mouse over
- loop(el, mp)
+type Events struct {
+ RightClick bool
+ LeftClick bool
+ Click bool
+ MouseEnter bool
+ MouseExit bool
+ MouseMove bool
+ DoubleClick bool
+ MouseOver bool
+ Resize bool
@@ -17,18 +23,7 @@ func GetEvents(el *element.Node) {
-func loop(el *element.Node, mp rl.Vector2) {
- if el.X < mp.X && el.X+el.Width > mp.X {
- if el.Y < mp.Y && el.Y+el.Height > mp.Y {
- // Mouse is over element
- // fmt.Println(el.Id, (el.EventListeners))
- evt := element.Event{
- X: int(mp.X),
- Y: int(mp.Y),
- Click: false,
- }
-
- if rl.IsMouseButtonPressed(rl.MouseLeftButton) {
- evt.Click = true
- if len(el.EventListeners["click"]) > 0 {
- for _, handler := range el.EventListeners["click"] {
- handler(evt)
- }
- }
+func GetEvents(elements []element.Node) element.Node {
+ mp := rl.GetMousePosition()
+ // Mouse over
+ for i := len(elements) - 1; i >= 0; i-- {
+ if elements[i].X < mp.X && elements[i].X+elements[i].Width > mp.X {
+ if elements[i].Y < mp.Y && elements[i].Y+elements[i].Height > mp.Y {
+ return elements[i]
@@ -36 +30,0 @@ func loop(el *element.Node, mp rl.Vector2) {
-
@@ -39,3 +33 @@ func loop(el *element.Node, mp rl.Vector2) {
- for _, v := range el.Children {
- loop(&v, mp)
- }
+ return element.Node{}