diff options
Diffstat (limited to 'action.go')
| -rw-r--r-- | action.go | 27 |
1 files changed, 19 insertions, 8 deletions
@@ -80,6 +80,11 @@ func ready(n *tree.Node) bool { return true } +func hide(n *tree.Node) { + show(n, false) + n.State.Hidden = true +} + func show(n *tree.Node, b bool) { if tkbad(n) { return @@ -102,14 +107,11 @@ func show(n *tree.Node, b bool) { } func enable(n *tree.Node, b bool) { - var tk *guiWidget - tk = n.TK.(*guiWidget) - if n == nil { - panic("WHAT? enable was passed nil. How does this even happen?") - } - if tk == nil { + if !ready(n) { return } + var tk *guiWidget + tk = n.TK.(*guiWidget) if tk.uiControl == nil { return } @@ -199,7 +201,16 @@ func processAction(a *widget.Action) { if a.ActionType == widget.Add { n := add(a) - show(n, !a.State.Hidden) + // show(n, !a.State.Hidden) + if a.State.Hidden { + hide(n) + } else { + if a.State.Enable { + // nothing to do + } else { + enable(n, false) + } + } // pad(n, n.State.Pad) // expand(n, a.State.Expand) return @@ -238,7 +249,7 @@ func processAction(a *widget.Action) { case widget.Show: show(n, true) case widget.Hide: - show(n, false) + hide(n) case widget.Enable: enable(n, true) case widget.Disable: |
