summaryrefslogtreecommitdiff
path: root/treeAdd.go
diff options
context:
space:
mode:
Diffstat (limited to 'treeAdd.go')
-rw-r--r--treeAdd.go94
1 files changed, 94 insertions, 0 deletions
diff --git a/treeAdd.go b/treeAdd.go
new file mode 100644
index 0000000..ea6103e
--- /dev/null
+++ b/treeAdd.go
@@ -0,0 +1,94 @@
+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
+ }
+}
+
+// set the widget start width & height
+// func (n *node) addWidget(n *tree.Node) {
+func addWidget(n *tree.Node) {
+ var nw *guiWidget
+ nw = 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())
+ nw.color = &colorRoot
+ setFake(n)
+ return
+ case widget.Flag:
+ nw.color = &colorFlag
+ setFake(n)
+ return
+ case widget.Window:
+ nw.frame = false
+ // nw.color = &colorWindow
+ nw.setColor(&colorWindow)
+ wRoot := me.treeRoot.TK.(*guiWidget)
+ wRoot.redoWindows(0, 0)
+ // TODO: record the first window here?
+ // do initial setup of helper widgets here:
+ if me.dropdownV == nil {
+ me.dropdownV = makeDropdownView("addWidget() ddview")
+ }
+ return
+ case widget.Tab:
+ nw.color = &colorTab
+ // redoWindows(0,0)
+ return
+ case widget.Button:
+ nw.color = &colorButton
+ case widget.Checkbox:
+ nw.color = &colorCheckbox
+ case widget.Dropdown:
+ nw.color = &colorDropdown
+ case widget.Combobox:
+ nw.color = &colorCombobox
+ case widget.Box:
+ nw.color = &colorBox
+ nw.isFake = true
+ setFake(n)
+ return
+ case widget.Grid:
+ nw.color = &colorGrid
+ nw.isFake = true
+ setFake(n)
+ return
+ case widget.Group:
+ nw.color = &colorGroup
+ nw.frame = false
+ return
+ case widget.Label:
+ nw.color = &colorLabel
+ nw.frame = false
+ return
+ default:
+ /*
+ if n.IsCurrent() {
+ n.updateCurrent()
+ }
+ */
+ }
+ nw.showWidgetPlacement("addWidget()")
+}