aboutsummaryrefslogtreecommitdiff
path: root/go/ui/clickable.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-02-14 16:05:06 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-01-27 16:43:49 +0100
commitb85c1a85e3f9a53321495e4d015e7620b29f9929 (patch)
tree314469f8bcbe61cea3c055d01e2c961b0e988708 /go/ui/clickable.go
parente049500b213c85c9d1556e01717226a191d2dce8 (diff)
downloadmuhqs-game-b85c1a85e3f9a53321495e4d015e7620b29f9929.tar.gz
muhqs-game-b85c1a85e3f9a53321495e4d015e7620b29f9929.zip
add sealed activity to select a starting deck
Diffstat (limited to 'go/ui/clickable.go')
-rw-r--r--go/ui/clickable.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/go/ui/clickable.go b/go/ui/clickable.go
new file mode 100644
index 00000000..761b7534
--- /dev/null
+++ b/go/ui/clickable.go
@@ -0,0 +1,40 @@
+package ui
+
+import (
+ "github.com/hajimehoshi/ebiten/v2"
+)
+
+type Clickable interface {
+ Click(x, y int)
+}
+
+type ClickWrapper struct {
+ w Widget
+ onClick func(x, y int)
+}
+
+func NewClickWrapper(w Widget, onClick func(x, y int)) *ClickWrapper {
+ return &ClickWrapper{w, onClick}
+}
+
+func (w *ClickWrapper) Draw(screen *ebiten.Image) {
+ w.w.Draw(screen)
+}
+
+func (w *ClickWrapper) FindObjectAt(x, y int) interface{} {
+ return w.w.FindObjectAt(x, y)
+}
+
+func (w *ClickWrapper) Contains(x, y int) bool {
+ return w.w.Contains(x, y)
+}
+
+func (w *ClickWrapper) Click(x, y int) {
+ w.onClick(x, y)
+}
+
+func (w *ClickWrapper) Scroll(x, y int) {
+ if w, ok := w.w.(Scrollable); ok {
+ w.Scroll(x, y)
+ }
+}