fix(tracker/gioui): use Clickables instead of widget.Clickables

This commit is contained in:
5684185+vsariola@users.noreply.github.com 2025-04-27 20:24:40 +03:00
parent 54176cc2b3
commit 805b98524c
3 changed files with 12 additions and 14 deletions

View File

@ -12,8 +12,6 @@ import (
"gioui.org/op/paint" "gioui.org/op/paint"
"gioui.org/text" "gioui.org/text"
"gioui.org/unit" "gioui.org/unit"
"gioui.org/widget"
"gioui.org/widget/material"
"github.com/vsariola/sointu/tracker" "github.com/vsariola/sointu/tracker"
) )
@ -168,14 +166,14 @@ func PopupMenu(menu *Menu, shaper *text.Shaper) MenuStyle {
} }
} }
func (tr *Tracker) layoutMenu(gtx C, title string, clickable *widget.Clickable, menu *Menu, width unit.Dp, items ...MenuItem) layout.Widget { func (tr *Tracker) layoutMenu(gtx C, title string, clickable *Clickable, menu *Menu, width unit.Dp, items ...MenuItem) layout.Widget {
for clickable.Clicked(gtx) { for clickable.Clicked(gtx) {
menu.Visible = true menu.Visible = true
} }
m := PopupMenu(menu, tr.Theme.Shaper) m := PopupMenu(menu, tr.Theme.Shaper)
return func(gtx C) D { return func(gtx C) D {
defer op.Offset(image.Point{}).Push(gtx.Ops).Pop() defer op.Offset(image.Point{}).Push(gtx.Ops).Pop()
titleBtn := material.Button(tr.Theme, clickable, title) titleBtn := Button(tr.Theme, clickable, title)
titleBtn.Color = white titleBtn.Color = white
titleBtn.Background = transparent titleBtn.Background = transparent
titleBtn.CornerRadius = unit.Dp(0) titleBtn.CornerRadius = unit.Dp(0)

View File

@ -11,7 +11,6 @@ import (
"gioui.org/op/clip" "gioui.org/op/clip"
"gioui.org/op/paint" "gioui.org/op/paint"
"gioui.org/unit" "gioui.org/unit"
"gioui.org/widget"
"gioui.org/widget/material" "gioui.org/widget/material"
"github.com/vsariola/sointu/tracker" "github.com/vsariola/sointu/tracker"
"github.com/vsariola/sointu/version" "github.com/vsariola/sointu/version"
@ -265,7 +264,7 @@ func (e *Expander) layoutHeader(gtx C, th *material.Theme, title string, smallWi
} }
type MenuBar struct { type MenuBar struct {
Clickables []widget.Clickable Clickables []Clickable
Menus []Menu Menus []Menu
fileMenuItems []MenuItem fileMenuItems []MenuItem
@ -278,7 +277,7 @@ type MenuBar struct {
func NewMenuBar(model *tracker.Model) *MenuBar { func NewMenuBar(model *tracker.Model) *MenuBar {
ret := &MenuBar{ ret := &MenuBar{
Clickables: make([]widget.Clickable, 3), Clickables: make([]Clickable, 3),
Menus: make([]Menu, 3), Menus: make([]Menu, 3),
PanicBtn: NewBoolClickable(model.Panic().Bool()), PanicBtn: NewBoolClickable(model.Panic().Bool()),
panicHint: makeHint("Panic", " (%s)", "PanicToggle"), panicHint: makeHint("Panic", " (%s)", "PanicToggle"),

View File

@ -3,6 +3,10 @@ package gioui
import ( import (
"bytes" "bytes"
"fmt" "fmt"
"image"
"io"
"math"
"gioui.org/io/clipboard" "gioui.org/io/clipboard"
"gioui.org/io/event" "gioui.org/io/event"
"gioui.org/io/key" "gioui.org/io/key"
@ -19,9 +23,6 @@ import (
"golang.org/x/exp/shiny/materialdesign/icons" "golang.org/x/exp/shiny/materialdesign/icons"
"golang.org/x/text/cases" "golang.org/x/text/cases"
"golang.org/x/text/language" "golang.org/x/text/language"
"image"
"io"
"math"
) )
type UnitEditor struct { type UnitEditor struct {
@ -32,7 +33,7 @@ type UnitEditor struct {
CopyUnitBtn *TipClickable CopyUnitBtn *TipClickable
ClearUnitBtn *ActionClickable ClearUnitBtn *ActionClickable
DisableUnitBtn *BoolClickable DisableUnitBtn *BoolClickable
SelectTypeBtn *widget.Clickable SelectTypeBtn *Clickable
commentEditor *Editor commentEditor *Editor
caser cases.Caser caser cases.Caser
@ -47,7 +48,7 @@ func NewUnitEditor(m *tracker.Model) *UnitEditor {
ClearUnitBtn: NewActionClickable(m.ClearUnit()), ClearUnitBtn: NewActionClickable(m.ClearUnit()),
DisableUnitBtn: NewBoolClickable(m.UnitDisabled().Bool()), DisableUnitBtn: NewBoolClickable(m.UnitDisabled().Bool()),
CopyUnitBtn: new(TipClickable), CopyUnitBtn: new(TipClickable),
SelectTypeBtn: new(widget.Clickable), SelectTypeBtn: new(Clickable),
commentEditor: NewEditor(widget.Editor{SingleLine: true, Submit: true}), commentEditor: NewEditor(widget.Editor{SingleLine: true, Submit: true}),
sliderList: NewDragList(m.Params().List(), layout.Vertical), sliderList: NewDragList(m.Params().List(), layout.Vertical),
searchList: NewDragList(m.SearchResults().List(), layout.Vertical), searchList: NewDragList(m.SearchResults().List(), layout.Vertical),
@ -236,9 +237,9 @@ func (pe *UnitEditor) command(e key.Event, t *Tracker) {
type ParameterWidget struct { type ParameterWidget struct {
floatWidget widget.Float floatWidget widget.Float
boolWidget widget.Bool boolWidget widget.Bool
instrBtn widget.Clickable instrBtn Clickable
instrMenu Menu instrMenu Menu
unitBtn widget.Clickable unitBtn Clickable
unitMenu Menu unitMenu Menu
Parameter tracker.Parameter Parameter tracker.Parameter
tipArea component.TipArea tipArea component.TipArea