summaryrefslogtreecommitdiff
path: root/windowGeneric.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-22 06:52:40 -0600
committerJeff Carr <[email protected]>2025-02-22 06:52:40 -0600
commitba514f7827865b8503c50f8a3dde35433798bfb5 (patch)
tree9f0ae185a01d4fc9beb2dbbbe12ee73bc6997a93 /windowGeneric.go
parent3d58bc1c327a84f38516bce7da029493cb8beb4a (diff)
better instructions
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
+}