package widgets import ( "github.com/dweymouth/supersonic/ui/theme" "fyne.io/fyne/v2" "fyne.io/fyne/v2/widget" ) type FavoriteButton struct { widget.Button IsFavorited bool } func NewFavoriteButton(onTapped func()) *FavoriteButton { f := &FavoriteButton{ Button: widget.Button{ OnTapped: onTapped, Icon: theme.NotFavoriteIcon, }, } f.ExtendBaseWidget(f) return f } func (f *FavoriteButton) Tapped(e *fyne.PointEvent) { f.IsFavorited = !f.IsFavorited f.Button.Tapped(e) f.Refresh() } func (f *FavoriteButton) Refresh() { if f.IsFavorited { f.Icon = theme.FavoriteIcon } else { f.Icon = theme.NotFavoriteIcon } f.Button.Refresh() }