aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-05-09 16:12:29 -0400
committerSam Anthony <sam@samanthony.xyz>2024-05-09 16:12:29 -0400
commit2609e5c2ee21366110a4146648fff8b84d892c2f (patch)
treeac1a692aefc1ff089f1da76b7405b51f02c2d4e0
parentbcf781ad03595de88d280cb6f6cec5af05242193 (diff)
downloadvolute-2609e5c2ee21366110a4146648fff8b84d892c2f.zip
refactor output widget draw function
-rw-r--r--gui/widget/widget.go23
1 files 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())