summaryrefslogtreecommitdiff
path: root/windowGeneric.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-22 13:40:30 -0600
committerJeff Carr <[email protected]>2025-02-22 13:50:27 -0600
commit49d2653fd41b1d3caa54950892a3a6d11a5abfff (patch)
tree4f1f4bcb25dc650b640334b36ef241b927525ce0 /windowGeneric.go
parente9f7b99846f6afa0ccdf0f026476b367dc7cfcec (diff)
convert to pb grid
Diffstat (limited to 'windowGeneric.go')
-rw-r--r--windowGeneric.go92
1 files changed, 92 insertions, 0 deletions
diff --git a/windowGeneric.go b/windowGeneric.go
new file mode 100644
index 0000000..7daae01
--- /dev/null
+++ b/windowGeneric.go
@@ -0,0 +1,92 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+import (
+ "go.wit.com/lib/gadgets"
+ "go.wit.com/log"
+
+ "go.wit.com/gui"
+)
+
+type genericWindow struct {
+ win *gadgets.BasicWindow // the window widget itself
+ box *gui.Node // the top box of the repolist window
+ group *gui.Node // the default group
+}
+
+func (r *genericWindow) Hidden() bool {
+ if r == nil {
+ return true
+ }
+ if r.win == nil {
+ return true
+ }
+ return r.win.Hidden()
+}
+
+func (r *genericWindow) Toggle() {
+ if r.Hidden() {
+ r.Show()
+ } else {
+ r.Hide()
+ }
+}
+
+func (r *genericWindow) Show() {
+ if r == nil {
+ return
+ }
+ if r.win == nil {
+ return
+ }
+ r.win.Show()
+}
+
+func (r *genericWindow) Hide() {
+ if r == nil {
+ return
+ }
+ if r.win == nil {
+ return
+ }
+ r.win.Hide()
+}
+
+func (r *genericWindow) Disable() {
+ if r == nil {
+ return
+ }
+ if r.box == nil {
+ return
+ }
+ r.box.Disable()
+}
+
+func (r *genericWindow) Enable() {
+ if r == nil {
+ return
+ }
+ if r.box == nil {
+ return
+ }
+ r.box.Enable()
+}
+
+func initGenericWindow(title string, grouptxt string) *genericWindow {
+ gw := new(genericWindow)
+ gw.win = gadgets.RawBasicWindow(title)
+ gw.win.Make()
+
+ gw.box = gw.win.Box().Vertical() // a vertical box (like a stack of books)
+ gw.win.Custom = func() {
+ log.Warn("Found Window close. setting hidden=true")
+ // sets the hidden flag to false so Toggle() works
+ gw.win.Hide()
+ }
+ gw.group = gw.box.NewGroup(grouptxt)
+ gw.Show()
+
+ return gw
+}