summaryrefslogtreecommitdiff
path: root/add.go
diff options
context:
space:
mode:
Diffstat (limited to 'add.go')
-rw-r--r--add.go49
1 files changed, 33 insertions, 16 deletions
diff --git a/add.go b/add.go
index 641d16c..fd373a7 100644
--- a/add.go
+++ b/add.go
@@ -6,16 +6,7 @@ import (
"go.wit.com/widget"
)
-func add(a *widget.Action) *tree.Node {
- log.Log(ANDLABS, "add()", a.WidgetId, a.WidgetType, a.State.ProgName)
- if a.WidgetType == widget.Root {
- if me.treeRoot == nil {
- me.treeRoot = me.myTree.AddNode(a)
- }
- return me.treeRoot
- }
- n := me.myTree.AddNode(a)
-
+func add(n *tree.Node) {
p := n.Parent
switch n.WidgetType {
case widget.Window:
@@ -32,27 +23,53 @@ func add(a *widget.Action) *tree.Node {
newButton(p, n)
case widget.Checkbox:
newCheckbox(p, n)
- setChecked(n, a.State.Checked)
+ setChecked(n, n.State.Checked)
case widget.Spinner:
newSpinner(p, n)
case widget.Slider:
newSlider(p, n)
case widget.Dropdown:
newDropdown(p, n)
- setText(n, a)
+ setText(n, widget.GetString(n.State.Value))
case widget.Combobox:
newCombobox(p, n)
- setText(n, a)
+ setText(n, widget.GetString(n.State.Value))
case widget.Textbox:
newTextbox(p, n)
- setText(n, a)
+ setText(n, widget.GetString(n.State.Value))
/*
case widget.Image:
newImage(p, n)
*/
default:
- log.Log(ERROR, "add() error TODO: ", n.WidgetType, n.State.ProgName)
+ log.Log(ERROR, "add() error TODO: ", n.WidgetType, n.ProgName())
}
+}
- return n
+func newAdd(n *tree.Node) {
+ if n == nil {
+ log.Warn("Tree Error: Add() sent n == nil")
+ return
+ }
+ if n.WidgetType == widget.Root {
+ me.treeRoot = n
+ return
+ }
+ add(n)
+ if n.TK == nil {
+ log.Warn("Tree sent an action on a widget we didn't seem to have.")
+ // do this init here again? Probably something
+ // went wrong and we should reset the our while gocui.View tree
+ n.TK = initWidget(n)
+ }
+ // show(n, !a.State.Hidden)
+ if n.Hidden() {
+ hide(n)
+ } else {
+ if n.State.Enable {
+ // nothing to do
+ } else {
+ enable(n, false)
+ }
+ }
}