summaryrefslogtreecommitdiff
path: root/init.go
diff options
context:
space:
mode:
Diffstat (limited to 'init.go')
-rw-r--r--init.go34
1 files changed, 28 insertions, 6 deletions
diff --git a/init.go b/init.go
index 02d2623..67b5d18 100644
--- a/init.go
+++ b/init.go
@@ -10,18 +10,40 @@ import (
var muAction sync.Mutex
-/*
-func (me *TreeInfo) newAction(a widget.Action) *tree.Node {
+func (me *TreeInfo) newAction(a widget.Action) {
+ n := me.treeRoot.FindWidgetId(a.WidgetId)
switch a.ActionType {
case widget.Add:
- n := me.treeRoot.FindWidgetId(a.WidgetId)
if n == nil {
n := me.AddNode(&a)
- me.ActionFromChannel(n, a.ActionType)
+ me.Add(n)
+ return
}
+ case widget.SetText:
+ switch n.WidgetType {
+ case widget.Dropdown:
+ me.SetText(n, widget.GetString(a.State.Value))
+ case widget.Combobox:
+ me.SetText(n, widget.GetString(a.State.Value))
+ case widget.Window:
+ me.SetTitle(n, a.State.Label)
+ default:
+ // buttons, checkboxes, groups, etc
+ me.SetLabel(n, a.State.Label)
+ }
+ case widget.AddText:
+ switch n.WidgetType {
+ case widget.Dropdown:
+ me.AddText(n, widget.GetString(a.State.Value))
+ case widget.Combobox:
+ me.AddText(n, widget.GetString(a.State.Value))
+ default:
+ log.Warn("AddText() not supported on widget", n.WidgetType, n.String())
+ }
+ default:
+ me.NodeAction(n, a.ActionType)
}
}
-*/
func (me *TreeInfo) catchActionChannel() {
defer func() {
@@ -42,8 +64,8 @@ func (me *TreeInfo) catchActionChannel() {
log.Error(errors.New("toolkit ActionFromChannel == nil"), a.WidgetId, a.ActionType, a.WidgetType)
} else {
// send this to the toolkit
+ me.newAction(a)
me.ActionFromChannel(a)
- // me.newAction(a)
}
muAction.Unlock()
}