From 05eb9b5ad89073c2f58e9207a7560b019f9e3cbe Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 5 Jan 2024 12:24:29 -0600 Subject: [PATCH] BasicWindow Ready() and Title() Signed-off-by: Jeff Carr --- basicWindow.go | 33 ++++++++++++++++++++++++++++++--- logsettings/draw.go | 1 - 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/basicWindow.go b/basicWindow.go index ba4f0bf..2de8945 100644 --- a/basicWindow.go +++ b/basicWindow.go @@ -9,10 +9,11 @@ import ( ) type BasicWindow struct { + ready bool hidden bool name string - p *gui.Node // parent widget + parent *gui.Node win *gui.Node // window widget box *gui.Node // box @@ -20,18 +21,21 @@ type BasicWindow struct { } func (w *BasicWindow) Hide() { + if ! w.Ready() {return} w.win.Hide() w.hidden = true return } func (w *BasicWindow) Show() { + if ! w.Ready() {return} w.win.Show() w.hidden = false return } func (w *BasicWindow) Toggle() { + if ! w.Ready() {return} if w.hidden { w.Show() w.hidden = false @@ -42,19 +46,42 @@ func (w *BasicWindow) Toggle() { return } +func (w *BasicWindow) Title(title string) { + if ! w.Ready() {return} + w.win.SetText(title) + return +} + +// Returns true if the status is valid +func (w *BasicWindow) Ready() bool { + if w == nil {return false} + if w.parent == nil {return false} + if ! w.parent.Ready() {return false} + if (w.win == nil) { + w.Draw() + } + return w.ready +} + func (w *BasicWindow) Box() *gui.Node { return w.box } +func (w *BasicWindow) Draw() { + w.ready = true + return +} + + func NewBasicWindow(parent *gui.Node, name string) *BasicWindow { var w *BasicWindow w = &BasicWindow { - p: parent, + parent: parent, name: name, } // various timeout settings - w.win = w.p.NewWindow(name) + w.win = w.parent.NewWindow(name) w.win.Custom = func() { log.Println("BasicWindow.Custom() closed. TODO: handle this", w.name) } diff --git a/logsettings/draw.go b/logsettings/draw.go index 5321adc..3261f23 100644 --- a/logsettings/draw.go +++ b/logsettings/draw.go @@ -28,7 +28,6 @@ func (d *LogSettings) draw() { var g *gui.Node d.win = gadgets.NewBasicWindow(d.parent, "Debug Flags") - g = d.win.Box().NewGroup("Show").Pad() d.buttonG = g