Files
supersonic/ui/widgets/tappableimage.go
T

46 lines
821 B
Go

package widgets
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/driver/desktop"
"fyne.io/fyne/v2/widget"
)
type TappableImage struct {
widget.BaseWidget
canvas.Image
OnTapped func()
}
func NewTappableImage(onTapped func()) *TappableImage {
t := &TappableImage{OnTapped: onTapped}
t.ExtendBaseWidget(t)
return t
}
func (t *TappableImage) Cursor() desktop.Cursor {
return desktop.PointerCursor
}
func (t *TappableImage) Tapped(e *fyne.PointEvent) {
if t.OnTapped != nil {
t.OnTapped()
}
}
func (t *TappableImage) Refresh() {
t.Image.Refresh()
t.BaseWidget.Refresh()
}
func (t *TappableImage) Resize(size fyne.Size) {
t.Image.Resize(size)
t.BaseWidget.Resize(size)
}
func (t *TappableImage) CreateRenderer() fyne.WidgetRenderer {
return widget.NewSimpleRenderer(&t.Image)
}