summaryrefslogtreecommitdiff
path: root/windowGeneric.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-23 01:36:42 -0600
committerJeff Carr <[email protected]>2025-02-23 13:13:30 -0600
commit3a62f10d20d7ed65ff46e4216180b107dfaa3039 (patch)
tree0d7327c81c118bb8d3e330983863e2213468244c /windowGeneric.go
parent69b0d4c01345b13955ea42115beef3072b082b39 (diff)
add GenericWindow()
Diffstat (limited to 'windowGeneric.go')
-rw-r--r--windowGeneric.go98
1 files changed, 51 insertions, 47 deletions
diff --git a/windowGeneric.go b/windowGeneric.go
index 967ca0a..a487574 100644
--- a/windowGeneric.go
+++ b/windowGeneric.go
@@ -3,6 +3,9 @@
package main
+// This model works for 99.9% of all windows
+// This is the Default Standard Window Model
+
import (
"go.wit.com/lib/gadgets"
"go.wit.com/log"
@@ -10,93 +13,94 @@ import (
"go.wit.com/gui"
)
-type genericWindow struct {
- win *gadgets.BasicWindow // the window widget itself
- box *gui.Node // the overall shelf
- shelf *gui.Node // the overall shelf
- stack *gui.Node // the first box is a shelf
- top *gui.Node // the first item in the stack is always a box
- group *gui.Node // the first item top box is always a group
- middle *gui.Node // the middle box
- bottom *gui.Node // the bottom box of the repolist window
+type GenericWindow struct {
+ Win *gadgets.BasicWindow // the window widget itself
+ Shelf *gui.Node // the overall box: the shelf
+ Stack *gui.Node // the first box is a stack
+ Top *gui.Node // the first item in the stack is always a shelf like box
+ Group *gui.Node // the first item top box is always a group
+ Middle *gui.Node // the middle box (shelf style)
+ Bottom *gui.Node // the bottom box (stack style)
}
-func (r *genericWindow) Hidden() bool {
- if r == nil {
+func (gw *GenericWindow) Hidden() bool {
+ if gw == nil {
return true
}
- if r.win == nil {
+ if gw.Win == nil {
return true
}
- return r.win.Hidden()
+ return gw.Win.Hidden()
}
-func (r *genericWindow) Toggle() {
- if r.Hidden() {
- r.Show()
+func (gw *GenericWindow) Toggle() {
+ if gw.Hidden() {
+ gw.Show()
} else {
- r.Hide()
+ gw.Hide()
}
}
-func (r *genericWindow) Show() {
- if r == nil {
+func (gw *GenericWindow) Show() {
+ if gw == nil {
return
}
- if r.win == nil {
+ if gw.Win == nil {
return
}
- r.win.Show()
+ gw.Win.Show()
}
-func (r *genericWindow) Hide() {
- if r == nil {
+func (gw *GenericWindow) Hide() {
+ if gw == nil {
return
}
- if r.win == nil {
+ if gw.Win == nil {
return
}
- r.win.Hide()
+ gw.Win.Hide()
}
-func (r *genericWindow) Disable() {
- if r == nil {
+func (gw *GenericWindow) Disable() {
+ if gw == nil {
return
}
- if r.box == nil {
+ if gw.Shelf == nil {
return
}
- r.box.Disable()
+ gw.Shelf.Disable()
}
-func (r *genericWindow) Enable() {
- if r == nil {
+func (gw *GenericWindow) Enable() {
+ if gw == nil {
return
}
- if r.box == nil {
+ if gw.Shelf == nil {
return
}
- r.box.Enable()
+ gw.Shelf.Enable()
}
-func initGenericWindow(title string, grouptxt string) *genericWindow {
- gw := new(genericWindow)
- gw.win = gadgets.RawBasicWindow(title)
- gw.win.Make()
+func NewGenericWindow(title string, grouptxt string) *GenericWindow {
+ gw := new(GenericWindow)
+ gw.Win = gadgets.RawBasicWindow(title)
+ gw.Win.Make()
- gw.win.Custom = func() {
+ 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.Win.Hide()
}
- gw.box = gw.win.Box()
- gw.shelf = gw.box
- gw.stack = gw.shelf.NewVerticalBox("STACKBOX") // a vertical box (like a stack of books)
- gw.top = gw.stack.Box()
- gw.group = gw.top.NewGroup(grouptxt)
- gw.middle = gw.stack.Box()
- gw.middle.Vertical()
- gw.bottom = gw.stack.Box()
+ gw.Shelf = gw.Win.Box()
+ // gw.Shelf.Vertical().SetProgName("ShelfBox")
+ gw.Stack = gw.Shelf.NewVerticalBox("Stackbox")
+
+ gw.Top = gw.Stack.NewVerticalBox("Stackbox")
+ gw.Middle = gw.Stack.Box()
+ gw.Bottom = gw.Stack.Box()
+
+ gw.Group = gw.Top.NewGroup(grouptxt)
+
gw.Show()
return gw