summaryrefslogtreecommitdiff
path: root/action.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-18 00:11:03 -0600
committerJeff Carr <[email protected]>2024-01-18 00:11:03 -0600
commit66f87e34481df249b238d2b1490b6a0c1a3402e0 (patch)
tree22f4effacd5463609ac4bd82a3d31c2c0cd7527d /action.go
just a "gui" from <STDIN>v0.0.1
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'action.go')
-rw-r--r--action.go89
1 files changed, 89 insertions, 0 deletions
diff --git a/action.go b/action.go
new file mode 100644
index 0000000..ea1a6fa
--- /dev/null
+++ b/action.go
@@ -0,0 +1,89 @@
+package main
+
+/*
+ a simple function to handle widget actions
+
+ You can tie this into your toolkit here.
+*/
+
+import (
+ "go.wit.com/log"
+ "go.wit.com/lib/widget"
+ // "go.wit.com/gui/toolkits/tree"
+)
+
+func doAction(a widget.Action) {
+ log.Log(INFO, "doAction() START a.ActionType =", a.ActionType)
+ log.Log(INFO, "doAction() START a.ProgName =", a.ProgName)
+
+ if (a.ActionType == widget.ToolkitInit) {
+ return
+ }
+
+ log.Log(INFO, "doAction() START a.WidgetId =", a.WidgetId, "a.ParentId =", a.ParentId)
+ switch a.WidgetType {
+ case widget.Root:
+ me.treeRoot = me.myTree.AddNode(&a)
+ log.Log(INFO, "doAction() found treeRoot")
+ return
+ }
+
+ switch a.ActionType {
+ case widget.Add:
+ me.myTree.AddNode(&a)
+ return
+ }
+
+ n := me.treeRoot.FindWidgetId(a.WidgetId)
+ if n == nil {
+ log.Warn("FindId() n == nil", a.WidgetId, a.ActionType)
+ log.Warn("FindId() n == nil", a.WidgetId, a.ActionType)
+ log.Warn("FindId() n == nil", a.WidgetId, a.ActionType)
+ log.Warn("Aaaaa!, return")
+ return
+ }
+
+ switch a.ActionType {
+ case widget.Show:
+ n.State.Visable = true
+ case widget.Hide:
+ n.State.Visable = false
+ case widget.Enable:
+ n.State.Visable = true
+ case widget.Disable:
+ n.State.Visable = false
+ case widget.Get:
+ log.Warn("value =", n.State.Value)
+ case widget.GetText:
+ log.Warn("value =", n.String())
+ case widget.Set:
+ n.State.Value = a.State.Value
+ case widget.SetText:
+ log.Warn("GOT TO SetText()", a.WidgetId)
+ log.Warn("GOT TO SetText()", a.WidgetId)
+ log.Warn("GOT TO SetText()", a.WidgetId)
+ log.Warn("GOT TO SetText()", a.WidgetId)
+ if n == nil {
+ log.Warn("HOT DIGGITY. n == nil")
+ }
+ n.State.Value = a.State.Value
+ case widget.AddText:
+ n.State.Strings = append(a.State.Strings, widget.GetString(a.State.Value))
+ case widget.Margin:
+ n.State.Pad = true
+ case widget.Unmargin:
+ n.State.Pad = false
+ case widget.Pad:
+ n.State.Pad = true
+ case widget.Unpad:
+ n.State.Pad = false
+ case widget.Delete:
+ log.Warn("doAction() TODO: Delete()")
+ // n.Delete()
+ case widget.Move:
+ log.Warn("doAction() TODO: Move()")
+ default:
+ log.Log(ERROR, "doAction() Unknown =", a.ActionType, a.WidgetType)
+ }
+ log.Log(INFO, "doAction() END =", a.ActionType, a.WidgetType)
+}