summaryrefslogtreecommitdiff
path: root/plugin.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-02-05 09:04:38 -0600
committerJeff Carr <[email protected]>2024-02-05 09:04:38 -0600
commite317478e6a568a380bf5f0459f66ca4d08db9ea7 (patch)
tree5092e17540269fe4cd5454698a72e6795c379466 /plugin.go
parentcf72809e26d25380be0e9a05f81c8780f7538d37 (diff)
compiles. slightly works
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'plugin.go')
-rw-r--r--plugin.go112
1 files changed, 108 insertions, 4 deletions
diff --git a/plugin.go b/plugin.go
index 673f184..d5176a5 100644
--- a/plugin.go
+++ b/plugin.go
@@ -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)