From 31d7f5bc4f6943727b3b629103f7641ae6ac3dde Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Mon, 10 Jun 2024 19:30:07 +0200 Subject: [PATCH] added toolbar icon widget --- src/widgets.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/widgets.go b/src/widgets.go index 7c4ab37..907c31a 100644 --- a/src/widgets.go +++ b/src/widgets.go @@ -5,6 +5,7 @@ import ( "github.com/ebitenui/ebitenui/image" "github.com/ebitenui/ebitenui/widget" + "github.com/hajimehoshi/ebiten/v2" ) func NewMenuButton( @@ -40,6 +41,32 @@ func NewMenuButton( ) } +func NewToolbarButton( + icon *ebiten.Image, + action func(args *widget.ButtonClickedEventArgs)) *widget.Container { + + buttonImage, _ := LoadButtonImage() + + iconContainer := widget.NewContainer( + widget.ContainerOpts.Layout(widget.NewStackedLayout()), + widget.ContainerOpts.WidgetOpts(widget.WidgetOpts.LayoutData(widget.AnchorLayoutData{ + HorizontalPosition: widget.AnchorLayoutPositionCenter, + VerticalPosition: widget.AnchorLayoutPositionCenter, + })), + ) + + button := widget.NewButton( + widget.ButtonOpts.Image(buttonImage), + widget.ButtonOpts.ClickedHandler(action), + ) + + iconContainer.AddChild(button) + + iconContainer.AddChild(widget.NewGraphic(widget.GraphicOpts.Image(icon))) + + return iconContainer +} + func NewCheckbox( text string, initialvalue bool,