summaryrefslogtreecommitdiff
path: root/action.go
diff options
context:
space:
mode:
Diffstat (limited to 'action.go')
-rw-r--r--action.go27
1 files changed, 19 insertions, 8 deletions
diff --git a/action.go b/action.go
index 4e7c636..f61c218 100644
--- a/action.go
+++ b/action.go
@@ -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: