diff options
| author | Physcik <mynameisgennadiy@vk.com> | 2026-02-01 16:29:13 +0500 |
|---|---|---|
| committer | Physcik <mynameisgennadiy@vk.com> | 2026-02-01 16:29:13 +0500 |
| commit | b4bb2cc1de2004153a1357e2e6678df7377b42e3 (patch) | |
| tree | 47d4dd062550582aa5b6eaef9b25dba09798ace7 /engine/UI/Button.go | |
| parent | 95b7170acdfa73c5842db002ec64f78125fe2f90 (diff) | |
UI button
Diffstat (limited to 'engine/UI/Button.go')
| -rw-r--r-- | engine/UI/Button.go | 49 |
1 files changed, 49 insertions, 0 deletions
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") + } + } +} |
