diff options
Diffstat (limited to 'plugin.go')
| -rw-r--r-- | plugin.go | 112 |
1 files changed, 108 insertions, 4 deletions
@@ -4,15 +4,119 @@ import ( // if you include more than just this import // then your plugin might be doing something un-ideal (just a guess from 2023/02/27) "go.wit.com/log" + "go.wit.com/toolkits/tree" "go.wit.com/widget" ) -/* +func newAdd(n *tree.Node) { + if n == nil { + log.Warn("Tree Error: Add() sent n == nil") + return + } + if n.TK != nil { + log.Warn("Tree Add() sent a widget we aleady seem to have") + // this is done to protect the plugin being 'refreshed' with the + // widget binary tree. TODO: find a way to keep them in sync + return + } + n.TK = initWidget(n) + if n.WidgetType == widget.Root { + me.treeRoot = n + } + addWidget(n) + /* + TODO: removed while refactoring tree + if w.enable { + // don't change the color + } else { + w = n.TK.(*guiWidget) + } + */ + // w.setColor(&colorDisabled) + w := n.TK.(*guiWidget) + w.Show() +} + +func newSetTitle(n *tree.Node, s string) { + newSetText(n, s) +} + +func newSetLabel(n *tree.Node, s string) { + newSetText(n, s) +} + +func newSetText(n *tree.Node, s string) { + if n == nil { + log.Warn("Tree Error: Add() sent n == nil") + return + } + if n.TK == nil { + log.Warn("Tree sent an action on a widget we didn't seem to have.") + return + } + w := n.TK.(*guiWidget) + w.SetText(s) +} + +func newAddText(n *tree.Node, s string) { + if n == nil { + log.Warn("Tree Error: Add() sent n == nil") + return + } + if n.TK == nil { + log.Warn("Tree sent an action on a widget we didn't seem to have.") + return + } + w := n.TK.(*guiWidget) + w.AddText(s) +} + func newaction(n *tree.Node, atype widget.ActionType) { - switch a.ActionType { - case widget.Add: + log.Log(INFO, "newaction() START", atype) + if n == nil { + log.Warn("Tree Error: Add() sent n == nil") + return + } + if n.TK == nil { + log.Warn("Tree sent an action on a widget we didn't seem to have.") + // do this init here again? Probably something + // went wrong and we should reset the our while gocui.View tree + n.TK = initWidget(n) + } + w := n.TK.(*guiWidget) + switch atype { + case widget.Show: + log.Log(NOW, "Show() HERE. a.Hidden() was =", n.Hidden()) + w.Show() + case widget.Hide: + log.Log(NOW, "Hide() HERE. a.State.Hidden was =", n.Hidden()) + w.Hide() + case widget.Move: + log.Log(NOW, "attempt to move() =", atype, n.WidgetType, n.ProgName()) + case widget.ToolkitClose: + log.Log(NOW, "attempting to close the plugin and release stdout and stderr") + standardClose() + case widget.Enable: + w.enable = true + w.enableColor() + case widget.Disable: + w.enable = false + w.disableColor() + case widget.Delete: + if w == nil { + return + } else { + w.hideWidgets() + w.deleteNode() + } + n.DeleteNode() + wRoot := me.treeRoot.TK.(*guiWidget) + wRoot.redoWindows(0, 0) + default: + log.Log(ERROR, "newaction() UNHANDLED Action Type =", atype, "WidgetType =", n.WidgetType, "Name =", n.ProgName()) + } + log.Log(INFO, "newaction() END", atype, n.String()) } -*/ func action(a widget.Action) { log.Log(INFO, "action() START", a.WidgetId, a.ActionType, a.WidgetType, a.ProgName) |
