diff options
Diffstat (limited to 'add.go')
| -rw-r--r-- | add.go | 49 |
1 files changed, 33 insertions, 16 deletions
@@ -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) + } + } } |
