summaryrefslogtreecommitdiff
path: root/plugin.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-09 06:45:01 -0600
committerJeff Carr <[email protected]>2025-02-09 06:45:01 -0600
commit4a009f79a23b9ce1ac9198fee2fb36a12c13ac60 (patch)
treef2d62c251f55a0c18364ac6b26ffb55d53e4c964 /plugin.go
parent70452bdaac9a558c6266f1f46121222c38e17487 (diff)
fix panic in Enable() and Disable()
Diffstat (limited to 'plugin.go')
-rw-r--r--plugin.go45
1 files changed, 36 insertions, 9 deletions
diff --git a/plugin.go b/plugin.go
index 2cec989..5660e65 100644
--- a/plugin.go
+++ b/plugin.go
@@ -36,7 +36,6 @@ func newAdd(n *tree.Node) {
w = n.TK.(*guiWidget)
}
*/
- // w.setColor(&colorDisabled)
w := n.TK.(*guiWidget)
w.Show()
}
@@ -115,15 +114,9 @@ func newaction(n *tree.Node, atype widget.ActionType) {
log.Log(NOW, "attempting to close the plugin and release stdout and stderr")
standardClose()
case widget.Enable:
- w.enable = true
- w.node.State.Enable = true
- w.restoreEnableColor()
- log.Info("enable widget in gocui", atype, n.WidgetType, n.ProgName())
+ w.Enable()
case widget.Disable:
- w.enable = false
- w.node.State.Enable = false
- w.setColorDisable()
- log.Info("disable widget in gocui", atype, n.WidgetType, n.ProgName())
+ w.Disable()
case widget.Delete:
if w == nil {
return
@@ -218,3 +211,37 @@ func (tk *guiWidget) GetText() string {
}
return ""
}
+
+func (tk *guiWidget) Disable() {
+ if tk == nil {
+ log.Log(NOW, "widget is nil")
+ return
+ }
+ tk.enable = false
+ tk.node.State.Enable = false
+ log.Info("disable widget in gocui", tk.node.WidgetType, tk.node.ProgName())
+ switch tk.node.WidgetType {
+ case widget.Button:
+ tk.setColorDisable()
+ return
+ default:
+ log.Log(INFO, "don't know how to disable", tk.node.WidgetId, "w.name", tk.String())
+ }
+}
+
+func (tk *guiWidget) Enable() {
+ if tk == nil {
+ log.Log(NOW, "widget is nil")
+ return
+ }
+ tk.enable = true
+ tk.node.State.Enable = true
+ log.Info("disable widget in gocui", tk.node.WidgetType, tk.node.ProgName())
+ switch tk.node.WidgetType {
+ case widget.Button:
+ tk.restoreEnableColor()
+ return
+ default:
+ log.Log(INFO, "don't know how to disable", tk.node.WidgetId, "w.name", tk.String())
+ }
+}