From b4bb2cc1de2004153a1357e2e6678df7377b42e3 Mon Sep 17 00:00:00 2001 From: Physcik Date: Sun, 1 Feb 2026 16:29:13 +0500 Subject: UI button --- engine/UI/Button.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 engine/UI/Button.go (limited to 'engine/UI/Button.go') diff --git a/engine/UI/Button.go b/engine/UI/Button.go new file mode 100644 index 0000000..8d336a9 --- /dev/null +++ b/engine/UI/Button.go @@ -0,0 +1,49 @@ +package ui + +import ( + rl "github.com/gen2brain/raylib-go/raylib" +) + +type DetectionType uint8 + +const ( + OnClick DetectionType = iota + OnHold +) + +type Button struct { + WidthWeight float32 + DisplayElement UIElement + EventType DetectionType + ButtonType rl.MouseButton + + clicked func(rl.MouseButton) bool +} + +func (base *Button) Init(parent *Menu) { + base.DisplayElement.Init(parent) + + switch base.EventType { + case OnClick: + base.clicked = rl.IsMouseButtonReleased + case OnHold: + base.clicked = rl.IsMouseButtonDown + } +} + +func (base *Button) Destroy() { +} + +func (base *Button) GetOccupationWeight() float32 { + return base.WidthWeight +} + +func (base *Button) Draw(position *rl.Rectangle) { + base.DisplayElement.Draw(position) + if base.clicked(base.ButtonType) { + var mousePos = rl.GetMousePosition() + if rl.CheckCollisionPointRec(mousePos, *position) { + rl.TraceLog(rl.LogInfo, "xdx") + } + } +} -- cgit v1.3