From 16767ac97fa35e653fcaf0cb2286d78246e46514 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 7 Jan 2024 09:52:20 -0600 Subject: [PATCH] start a window for errors to fix Signed-off-by: Jeff Carr --- fix.go | 17 +++++++++++++++ smartwindow/common.go | 8 +++---- smartwindow/new.go | 6 ------ smartwindow/postReady.go | 21 +++++++++++++++++- smartwindow/preReady.go | 46 +++++++++++++++------------------------- smartwindow/structs.go | 4 ++-- 6 files changed, 59 insertions(+), 43 deletions(-) diff --git a/fix.go b/fix.go index 27444f3..0931709 100644 --- a/fix.go +++ b/fix.go @@ -9,6 +9,21 @@ import ( func fix() bool { log.Log(CHANGE, "") + + // make and toggle the fixWindow display + if me.fixWindow == nil { + me.fixWindow = smartwindow.New() + me.fixWindow.SetParent(me.myGui) + me.fixWindow.Title("fix window") + me.fixWindow.SetDraw(drawFixWindow) + me.fixWindow.Make() + me.fixWindow.Draw() + me.fixWindow.Hide() + // me.fixWindow.Draw2() + return false + } + me.fixWindow.Toggle() + if ! me.statusDNS.Ready() { log.Log(CHANGE, "The IPv6 Control Panel is not Ready() yet") return false @@ -148,4 +163,6 @@ func addToFixWindow(t string, ip string) { func drawFixWindow(sw *smartwindow.SmartWindow) { log.Log(WARN, "drawFixWindow() START") + box := sw.Box() + box.NewLabel("test") } diff --git a/smartwindow/common.go b/smartwindow/common.go index 772a790..5c55c34 100644 --- a/smartwindow/common.go +++ b/smartwindow/common.go @@ -8,17 +8,15 @@ import ( ) func (sw *SmartWindow) Ready() bool { - log.Log(WARN, "Ready() maybe not ready? sw =", sw) - if sw == nil {return false} + log.Log(INFO, "Ready() START") if sw == nil {return false} if sw.window == nil {return false} + log.Log(INFO, "Ready() END sw.ready =", sw.ready) return sw.ready } func (sw *SmartWindow) Initialized() bool { - log.Log(WARN, "checking Initialized()") + log.Log(INFO, "checking Initialized()") if sw == nil {return false} - if sw == nil {return false} - if sw.parent == nil {return false} return true } diff --git a/smartwindow/new.go b/smartwindow/new.go index 016d10b..35e9df5 100644 --- a/smartwindow/new.go +++ b/smartwindow/new.go @@ -2,8 +2,6 @@ package smartwindow import ( "go.wit.com/log" - - "go.wit.com/gui/gadgets" ) func New() *SmartWindow { @@ -25,8 +23,4 @@ func (sw *SmartWindow) InitWindow() { sw.ready = true return } - - log.Log(WARN, "Creating the Window") - sw.window = gadgets.NewBasicWindow(sw.parent, sw.title) - sw.ready = true } diff --git a/smartwindow/postReady.go b/smartwindow/postReady.go index bb3eab8..99349ff 100644 --- a/smartwindow/postReady.go +++ b/smartwindow/postReady.go @@ -55,5 +55,24 @@ func (sw *SmartWindow) Toggle() { func (sw *SmartWindow) Box() *gui.Node { if ! sw.Ready() {return nil} - return sw.window.Box() + return sw.box +} + +func (sw *SmartWindow) Draw() { + if ! sw.Ready() {return} + + log.Log(WARN, "Draw() window ready") + sw.window.Draw() + + if sw.vertical { + sw.box = sw.window.NewBox("bw vbox", false) + log.Log(WARN, "BasicWindow.Custom() made vbox") + } else { + sw.box = sw.window.NewBox("bw hbox", true) + log.Log(WARN, "BasicWindow.Custom() made hbox") + } + if (sw.populate != nil) { + log.Log(WARN, "Make() trying to run Custom sw.populate() here") + sw.populate(sw) + } } diff --git a/smartwindow/preReady.go b/smartwindow/preReady.go index 5009d54..0fe23fd 100644 --- a/smartwindow/preReady.go +++ b/smartwindow/preReady.go @@ -36,49 +36,37 @@ func (sw *SmartWindow) SetParent(p *gui.Node) { } func (sw *SmartWindow) SetDraw(f func(*SmartWindow)) { - if ! sw.Initialized() {return} - if sw.Ready() {return} + log.Log(WARN, "SetDraw() START") + if ! sw.Initialized() { + log.Log(WARN, "SetDraw() Failed. sw.Initialized == false") + return + } + if sw.Ready() { + log.Log(WARN, "SetDraw() Failed. sw.Ready() == true") + return + } sw.populate = f + log.Log(WARN, "SetDraw() END sw.populate is set") } func (sw *SmartWindow) Make() { if ! sw.Initialized() {return} if sw.Ready() {return} + log.Log(WARN, "Make() START") - log.Log(WARN, "Make() window ready =", sw.ready) - sw.window.Make() - if (sw.populate != nil) { - log.Log(WARN, "Make() trying to run Custom sw.populate() here") - sw.populate(sw) + sw.window = sw.parent.RawWindow(sw.title) + sw.window.Custom = func() { + log.Warn("BasicWindow.Custom() closed. TODO: handle this", sw.title) } + log.Log(WARN, "Make() END sw.window = RawWindow() (not sent to toolkits)") sw.ready = true } -func (sw *SmartWindow) Draw() { - if ! sw.Initialized() {return} - if sw.Ready() {return} - - log.Log(WARN, "Draw() window ready =", sw.ready) - sw.window.Draw() - if (sw.populate != nil) { - log.Log(WARN, "Make() trying to run Custom sw.populate() here") - sw.populate(sw) - } - sw.ready = true -} - - func (sw *SmartWindow) Vertical() { if ! sw.Initialized() {return} if sw.Ready() {return} - log.Log(WARN, "Draw() window ready =", sw.ready) - sw.window.Draw() - if (sw.populate != nil) { - log.Log(WARN, "Make() trying to run Custom sw.populate() here") - sw.populate(sw) - } - sw.ready = true + log.Log(WARN, "Vertical() setting vertical = true") + sw.vertical = true } - diff --git a/smartwindow/structs.go b/smartwindow/structs.go index d70ea3c..ac0bea7 100644 --- a/smartwindow/structs.go +++ b/smartwindow/structs.go @@ -2,19 +2,19 @@ package smartwindow import ( "go.wit.com/gui/gui" - "go.wit.com/gui/gadgets" ) type SmartWindow struct { ready bool // track if the window is ready hidden bool // track if the window is hidden from the toolkits changed bool // track if something changed in the window + vertical bool title string // what the user sees as the name name string // the programatic name aka: "CALANDAR" parent *gui.Node // where to place the window if you try to draw it - window *gadgets.BasicWindow // the underlying BasicWindow + window *gui.Node // the underlying window box *gui.Node // the box inside the window // get this from BasicWindow() ? populate func(*SmartWindow) // the function to generate the widgets