From 8e9626e48f32f5af313fd8f2fabe345141c19c25 Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Wed, 25 Jun 2025 13:06:27 +0300 Subject: [PATCH] drafting --- tracker/gioui/patch_panel.go | 40 +++++++++++++++++++++--------------- tracker/gioui/unit_editor.go | 4 ++-- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/tracker/gioui/patch_panel.go b/tracker/gioui/patch_panel.go index d35d8e1..952b6ca 100644 --- a/tracker/gioui/patch_panel.go +++ b/tracker/gioui/patch_panel.go @@ -79,6 +79,8 @@ type ( } ) +// PatchPanel methods + func NewPatchPanel(model *tracker.Model) *PatchPanel { return &PatchPanel{ instrList: MakeInstrList(model), @@ -88,31 +90,33 @@ func NewPatchPanel(model *tracker.Model) *PatchPanel { } } -func (ie *PatchPanel) Layout(gtx C, t *Tracker) D { +func (pp *PatchPanel) Layout(gtx C, t *Tracker) D { return layout.Flex{Axis: layout.Vertical}.Layout(gtx, - layout.Rigid(func(gtx C) D { return ie.instrList.Layout(gtx, t) }), - layout.Rigid(func(gtx C) D { return ie.tools.Layout(gtx, t) }), + layout.Rigid(func(gtx C) D { return pp.instrList.Layout(gtx, t) }), + layout.Rigid(func(gtx C) D { return pp.tools.Layout(gtx, t) }), layout.Flexed(1, func(gtx C) D { return layout.Flex{Axis: layout.Horizontal}.Layout(gtx, - layout.Rigid(func(gtx C) D { return ie.unitList.Layout(gtx, t) }), - layout.Flexed(1, func(gtx C) D { return ie.unitEditor.Layout(gtx, t) }), + layout.Rigid(func(gtx C) D { return pp.unitList.Layout(gtx, t) }), + layout.Flexed(1, func(gtx C) D { return pp.unitEditor.Layout(gtx, t) }), ) })) } -func (ie *PatchPanel) Tags(curLevel int, yield TagYieldFunc) bool { - return ie.instrList.Tags(curLevel, yield) && - ie.tools.Tags(curLevel, yield) && - ie.unitList.Tags(curLevel, yield) && - ie.unitEditor.Tags(curLevel, yield) +func (pp *PatchPanel) Tags(level int, yield TagYieldFunc) bool { + return pp.instrList.Tags(level, yield) && + pp.tools.Tags(level, yield) && + pp.unitList.Tags(level, yield) && + pp.unitEditor.Tags(level, yield) } -func (ie *PatchPanel) TreeFocused(gtx C) bool { - return !ie.Tags(0, func(level int, tag event.Tag) bool { +func (pp *PatchPanel) TreeFocused(gtx C) bool { + return !pp.Tags(0, func(level int, tag event.Tag) bool { return !gtx.Focused(tag) }) } +// InstrumentTools methods + func MakeInstrumentTools(m *tracker.Model) InstrumentTools { ret := InstrumentTools{ Voices: NewNumericUpDownState(), @@ -232,6 +236,8 @@ func (it *InstrumentTools) Tags(curLevel int, yield TagYieldFunc) bool { return true } +// InstrumentList methods + func MakeInstrList(model *tracker.Model) InstrumentList { return InstrumentList{ instrumentDragList: NewDragList(model.Instruments().List(), layout.Horizontal), @@ -257,9 +263,7 @@ func (il *InstrumentList) Layout(gtx C, t *Tracker) D { addInstrumentBtn := ActionIconBtn(t.Model.AddInstrument(), t.Theme, il.newInstrumentBtn, icons.ContentAdd, il.addInstrumentHint) return layout.Flex{Axis: layout.Horizontal, Alignment: layout.Middle}.Layout( gtx, - layout.Flexed(1, func(gtx C) D { - return il.actualLayout(gtx, t) - }), + layout.Flexed(1, func(gtx C) D { return il.actualLayout(gtx, t) }), layout.Rigid(layout.Spacer{Width: 10}.Layout), layout.Rigid(Label(t.Theme, &t.Theme.InstrumentEditor.Octave, "Octave").Layout), layout.Rigid(layout.Spacer{Width: 4}.Layout), @@ -341,10 +345,12 @@ func (il *InstrumentList) update(gtx C, t *Tracker) { } } -func (il *InstrumentList) Tags(curLevel int, yield TagYieldFunc) bool { - return yield(curLevel, il.instrumentDragList) +func (il *InstrumentList) Tags(level int, yield TagYieldFunc) bool { + return yield(level, il.instrumentDragList) } +// UnitList methods + func MakeUnitList(m *tracker.Model) UnitList { ret := UnitList{ dragList: NewDragList(m.Units().List(), layout.Vertical), diff --git a/tracker/gioui/unit_editor.go b/tracker/gioui/unit_editor.go index 077fe2a..ab81fb2 100644 --- a/tracker/gioui/unit_editor.go +++ b/tracker/gioui/unit_editor.go @@ -220,8 +220,8 @@ func (pe *UnitEditor) command(gtx C, e key.Event, t *Tracker) { } } -func (t *UnitEditor) Tags(curLevel int, yield TagYieldFunc) bool { - return yield(curLevel, t.sliderList) && yield(curLevel+1, &t.commentEditor.widgetEditor) +func (t *UnitEditor) Tags(level int, yield TagYieldFunc) bool { + return yield(level, t.sliderList) && yield(level+1, &t.commentEditor.widgetEditor) } type ParameterWidget struct {