From 37c09030bcebb819ec4cc1812dd2a36c6295c151 Mon Sep 17 00:00:00 2001 From: vsariola Date: Wed, 6 Jan 2021 14:52:36 +0200 Subject: [PATCH] feat(tracker): add dark lines separating UI elements --- tracker/layout.go | 26 ++++++++++++++++++++++++-- tracker/theme.go | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/tracker/layout.go b/tracker/layout.go index da95019..845af40 100644 --- a/tracker/layout.go +++ b/tracker/layout.go @@ -2,14 +2,19 @@ package tracker import ( "fmt" + "image" "gioui.org/layout" + "gioui.org/op" + "gioui.org/op/clip" + "gioui.org/op/paint" ) func (t *Tracker) Layout(gtx layout.Context) { layout.Flex{Axis: layout.Vertical}.Layout(gtx, layout.Rigid(t.layoutControls), - layout.Flexed(1, Lowered(t.layoutTracker)), + layout.Rigid(t.darkLine(true)), + layout.Flexed(1, Raised(t.layoutTracker)), ) } @@ -39,13 +44,30 @@ func (t *Tracker) layoutControls(gtx layout.Context) layout.Dimensions { gtx.Constraints.Min.Y = 200 gtx.Constraints.Max.Y = 200 return layout.Flex{Axis: layout.Horizontal}.Layout(gtx, - layout.Rigid(Lowered(t.layoutPatterns( + layout.Rigid(Raised(t.layoutPatterns( t.song.Tracks, t.ActiveTrack, t.DisplayPattern, t.CursorColumn, t.PlayPattern, ))), + layout.Rigid(t.darkLine(false)), layout.Flexed(1, Raised(Label(fmt.Sprintf("Current octave: %v", t.CurrentOctave), white))), ) } + +func (t *Tracker) darkLine(horizontal bool) layout.Widget { + return func(gtx layout.Context) layout.Dimensions { + if horizontal { + gtx.Constraints.Min.Y = 1 + gtx.Constraints.Max.Y = 1 + } else { + gtx.Constraints.Min.X = 1 + gtx.Constraints.Max.X = 1 + } + defer op.Push(gtx.Ops).Pop() + clip.Rect{Max: gtx.Constraints.Max}.Add(gtx.Ops) + paint.FillShape(gtx.Ops, black, clip.Rect{Max: image.Pt(gtx.Constraints.Max.X, gtx.Constraints.Max.Y)}.Op()) + return layout.Dimensions{Size: gtx.Constraints.Max} + } +} diff --git a/tracker/theme.go b/tracker/theme.go index 1121d41..c2b7d3f 100644 --- a/tracker/theme.go +++ b/tracker/theme.go @@ -20,7 +20,7 @@ var yellow = color.RGBA{R: 255, G: 255, B: 130, A: 255} var red = color.RGBA{R: 255, G: 0, B: 0, A: 255} var panelColor = neutral -var panelShadeColor = dark +var panelShadeColor = neutral var panelLightColor = light var labelFont = fontCollection[6].Font