From 2609e5c2ee21366110a4146648fff8b84d892c2f Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Thu, 9 May 2024 16:12:29 -0400 Subject: refactor output widget draw function --- gui/widget/widget.go | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/gui/widget/widget.go b/gui/widget/widget.go index 53be0b5..0908942 100644 --- a/gui/widget/widget.go +++ b/gui/widget/widget.go @@ -48,7 +48,6 @@ func Input(val chan<- uint, r image.Rectangle, focus FocusSlave, env gui.Env, wg text := []byte{'0'} focused := false - env.Draw() <- inputDraw(text, focused, r) Loop: for { @@ -67,7 +66,7 @@ Loop: focused = false env.Draw() <- inputDraw(text, focused, r) case event, ok := <-env.Events(): - if !ok { // channel closed + if !ok { break Loop } switch event := event.(type) { @@ -107,31 +106,31 @@ func Output(val <-chan float64, r image.Rectangle, env gui.Env, wg *sync.WaitGro defer wg.Done() defer close(env.Draw()) - redraw := func(v float64) func(draw.Image) image.Rectangle { - return func(drw draw.Image) image.Rectangle { - drawText([]byte(fmt.Sprintf("%.3f", v)), drw, r, BLACK, WHITE) - return r - } - } var v float64 = 0.0 - - env.Draw() <- redraw(v) + env.Draw() <- outputDraw(v, r) Loop: for { select { case v = <-val: - env.Draw() <- redraw(v) + env.Draw() <- outputDraw(v, r) case event, ok := <-env.Events(): if !ok { // channel closed break Loop } if event, ok := event.(win.WiFocus); ok && event.Focused { - env.Draw() <- redraw(v) + env.Draw() <- outputDraw(v, r) } } } } +func outputDraw(v float64, r image.Rectangle) func(draw.Image) image.Rectangle { + return func(drw draw.Image) image.Rectangle { + drawText([]byte(fmt.Sprintf("%.3f", v)), drw, r, BLACK, WHITE) + return r + } +} + func Image(imChan <-chan image.Image, r image.Rectangle, env gui.Env, wg *sync.WaitGroup) { defer wg.Done() defer close(env.Draw()) -- cgit v1.2.3