summaryrefslogtreecommitdiff
path: root/widgetAdd.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-25 07:27:37 -0500
committerJeff Carr <[email protected]>2025-03-25 13:17:00 -0500
commit1552eedc185e85b46498898e68867afaef308301 (patch)
tree8fc5cdfbc77cde184842197b2cde5cce8d85d34b /widgetAdd.go
parent4523eda0fa2372d97fb5db800b79b53c218ef627 (diff)
save the output window state
Diffstat (limited to 'widgetAdd.go')
-rw-r--r--widgetAdd.go117
1 files changed, 117 insertions, 0 deletions
diff --git a/widgetAdd.go b/widgetAdd.go
new file mode 100644
index 0000000..6bb459b
--- /dev/null
+++ b/widgetAdd.go
@@ -0,0 +1,117 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+import (
+ log "go.wit.com/log"
+ "go.wit.com/toolkits/tree"
+ "go.wit.com/widget"
+)
+
+var fakeStartWidth int = me.FakeW
+var fakeStartHeight int = me.TabH + me.FramePadH
+
+// setup fake labels for non-visible things off screen
+func setFake(n *tree.Node) {
+ var w *guiWidget
+ w = n.TK.(*guiWidget)
+ w.isFake = true
+
+ w.gocuiSetWH(fakeStartWidth, fakeStartHeight)
+
+ fakeStartHeight += w.gocuiSize.Height()
+ // TODO: use the actual max hight of the terminal window
+ if fakeStartHeight > 24 {
+ fakeStartHeight = me.TabH
+ fakeStartWidth += me.FakeW
+ }
+}
+
+// mostly just sets the colors of things
+func addWidget(n *tree.Node) {
+ if !me.ok {
+ log.Log(INFO, "addWidget() START NOT OKAY")
+ log.Log(INFO, "addWidget() START NOT OKAY")
+ log.Log(INFO, "addWidget() START NOT OKAY")
+ waitOK()
+ }
+ tk := n.TK.(*guiWidget)
+ log.Log(INFO, "setStartWH() w.id =", n.WidgetId, "n.name", n.String())
+ switch n.WidgetType {
+ case widget.Root:
+ log.Log(INFO, "setStartWH() rootNode w.id =", n.WidgetId, "w.name", n.String())
+ // tk.color = &colorRoot
+ setFake(n)
+ return
+ case widget.Flag:
+ // tk.color = &colorFlag
+ setFake(n)
+ return
+ case widget.Window:
+ tk.frame = false
+ tk.labelN = tk.GetText() + " X"
+ // tk.setColor(&colorWindow)
+ me.newWindowTrigger <- tk
+ redoWindows(0, 0)
+ return
+ case widget.Stdout:
+ tk.labelN = "moreSTDOUT"
+ n.State.ProgName = "moreSTDOUT"
+ n.State.Label = "moreSTDOUT"
+ tk.isFake = true
+ return
+ case widget.Tab:
+ // tk.color = &colorTab
+ return
+ case widget.Button:
+ tk.setColorButton()
+ if tk.IsEnabled() {
+ } else {
+ tk.setColorDisable()
+ }
+ return
+ case widget.Checkbox:
+ tk.setColorInput()
+ tk.labelN = "X " + n.State.Label
+ return
+ case widget.Dropdown:
+ tk.setColorInput()
+ return
+ case widget.Textbox:
+ n.State.Label = ""
+ tk.labelN = " "
+ // tk.color = &colorDropdown
+ tk.setColorInput()
+ return
+ case widget.Combobox:
+ // tk.color = &colorCombobox
+ tk.setColorInput()
+ return
+ case widget.Box:
+ // tk.color = &colorBox
+ tk.isFake = true
+ setFake(n)
+ return
+ case widget.Grid:
+ // tk.color = &colorGrid
+ tk.isFake = true
+ setFake(n)
+ return
+ case widget.Group:
+ tk.setColorLabel()
+ tk.frame = false
+ return
+ case widget.Label:
+ tk.setColorLabel()
+ tk.frame = false
+ return
+ default:
+ /*
+ if n.IsCurrent() {
+ n.updateCurrent()
+ }
+ */
+ }
+ tk.dumpWidget("addWidget()unknown")
+}