From 15c9618700dc681e6b94e83a1aaeea6cbcd0c2c2 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Fri, 10 May 2024 13:17:02 -0400 Subject: separate label widget and style constants --- gui/widget/label.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 gui/widget/label.go (limited to 'gui/widget/label.go') diff --git a/gui/widget/label.go b/gui/widget/label.go new file mode 100644 index 0000000..cc2010f --- /dev/null +++ b/gui/widget/label.go @@ -0,0 +1,31 @@ +package widget + +import ( + "sync" + "image" + "image/draw" + + "volute/gui" + "volute/gui/text" + "volute/gui/win" +) + +func Label(str string, r image.Rectangle, env gui.Env, wg *sync.WaitGroup) { + defer wg.Done() + defer close(env.Draw()) + + redraw := func(drw draw.Image) image.Rectangle { + text.Draw([]byte(str), drw, r, BLACK, WHITE) + return r + } + + env.Draw() <- redraw + for event := range env.Events() { + switch event := event.(type) { + case win.WiFocus: + if event.Focused { + env.Draw() <- redraw + } + } + } +} -- cgit v1.2.3