diff options
| author | Jeff Carr <[email protected]> | 2025-02-09 06:45:01 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-02-09 06:45:01 -0600 |
| commit | 4a009f79a23b9ce1ac9198fee2fb36a12c13ac60 (patch) | |
| tree | f2d62c251f55a0c18364ac6b26ffb55d53e4c964 /plugin.go | |
| parent | 70452bdaac9a558c6266f1f46121222c38e17487 (diff) | |
fix panic in Enable() and Disable()
Diffstat (limited to 'plugin.go')
| -rw-r--r-- | plugin.go | 45 |
1 files changed, 36 insertions, 9 deletions
@@ -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()) + } +} |
