diff options
Diffstat (limited to 'smartwindow/postReady.go')
| -rw-r--r-- | smartwindow/postReady.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/smartwindow/postReady.go b/smartwindow/postReady.go new file mode 100644 index 0000000..bb3eab8 --- /dev/null +++ b/smartwindow/postReady.go @@ -0,0 +1,59 @@ +// This creates a 'smart window' +// it should work even when it is hidden +// from the gui toolkit plugins +package smartwindow + +import ( + "go.wit.com/log" + "go.wit.com/gui/gui" +) + +/* + all these functions run after the window is Ready() + so they should all start with that check +*/ + +// reports externally if something has changed +// since the last time it was asked about it +func (sw *SmartWindow) Changed() bool { + if ! sw.Ready() {return false} + + if sw.changed { + sw.changed = false + return true + } + return false +} + +func (sw *SmartWindow) Show() { + if ! sw.Ready() {return} + + log.Log(WARN, "Show() window ready =", sw.ready) + sw.window.Show() + sw.hidden = false +} + +func (sw *SmartWindow) Hide() { + if ! sw.Ready() {return} + + log.Log(WARN, "Hide() window ready =", sw.ready) + sw.window.Hide() + sw.hidden = true +} + +func (sw *SmartWindow) Toggle() { + if ! sw.Ready() {return} + + log.Log(WARN, "Toggle() window ready =", sw.ready) + if sw.hidden { + sw.Show() + } else { + sw.Hide() + } +} + +func (sw *SmartWindow) Box() *gui.Node { + if ! sw.Ready() {return nil} + + return sw.window.Box() +} |
