diff options
| author | Jeff Carr <[email protected]> | 2024-01-18 00:11:03 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-18 00:11:03 -0600 |
| commit | 66f87e34481df249b238d2b1490b6a0c1a3402e0 (patch) | |
| tree | 22f4effacd5463609ac4bd82a3d31c2c0cd7527d /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.go | 89 |
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) +} |
