diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-02-14 16:05:06 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-01-27 16:43:49 +0100 |
| commit | b85c1a85e3f9a53321495e4d015e7620b29f9929 (patch) | |
| tree | 314469f8bcbe61cea3c055d01e2c961b0e988708 /go/ui/clickable.go | |
| parent | e049500b213c85c9d1556e01717226a191d2dce8 (diff) | |
| download | muhqs-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.go | 40 |
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) + } +} |
