diff options
Diffstat (limited to 'treeAdd.go')
| -rw-r--r-- | treeAdd.go | 94 |
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()") +} |
