diff options
| author | Jeff Carr <[email protected]> | 2025-02-12 00:19:15 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-02-12 00:19:15 -0600 |
| commit | 0a6027244078ce36de31af64dfd01e561420d4e5 (patch) | |
| tree | 1542d1906d744e54b5326d115cb0c22c98812d9c | |
| parent | a575a08bccc666c776cfb5192528249039dcfbed (diff) | |
working on button disable
| -rw-r--r-- | place.go | 12 | ||||
| -rw-r--r-- | plugin.go | 98 | ||||
| -rw-r--r-- | treeAdd.go | 8 | ||||
| -rw-r--r-- | treeDraw.go | 13 |
4 files changed, 68 insertions, 63 deletions
@@ -145,9 +145,15 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) { case widget.Button: if tk.isWindowDense() && tk.isInGrid() { tk.frame = false - tk.color = nil - tk.defaultColor = nil - tk.setColorButtonDense() + // tk.color = nil + // tk.defaultColor = nil + /* + if tk.node.IsEnabled() { + tk.setColorButtonDense() + } else { + tk.setColorDisable() + } + */ // if tk.full.Height() > 0 { tk.full.h1 = tk.full.h0 // } @@ -220,13 +220,23 @@ func (tk *guiWidget) GetText() string { return "" } -func (tk *guiWidget) Disable() { - if tk == nil { - log.Log(NOW, "widget is nil") - return +func hideDisable() { + if me.textbox.tk == nil { + initTextbox() + me.textbox.tk.prepTextbox() + } + + me.textbox.tk.Hide() + me.textbox.tk.enable = false + me.textbox.tk.node.State.Enable = false + me.textbox.active = false +} + +func showDisable() { + if me.textbox.tk == nil { + initTextbox() + me.textbox.tk.prepTextbox() } - initTextbox() - tk.prepTextbox() r := new(rectType) r.w0 = 2 r.h0 = 1 @@ -252,62 +262,40 @@ func (tk *guiWidget) Disable() { me.baseGui.SetKeybinding(me.textbox.tk.v.Name(), gocui.KeyEnter, gocui.ModNone, theCloseTheTextbox) me.textbox.active = true - - /* - 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.Box: - // log.Info("todo: blank out the window here", tk.String()) - r := new(rectType) - // startW, startH := tk.Position() - r.w0 = 0 - r.h0 = 0 - r.w1 = r.w0 + 24 - r.h1 = r.h0 + 2 - me.textbox.tk.forceSizes(r) - showTextbox("Running...") - return - case widget.Button: - tk.setColorDisable() - return - default: - tk.dumpWidget("fixme: disable") - } - */ } -func (tk *guiWidget) Enable() { +func (tk *guiWidget) Disable() { if tk == nil { log.Log(NOW, "widget is nil") return } - initTextbox() - tk.prepTextbox() - me.textbox.tk.Hide() - me.textbox.tk.enable = false - me.textbox.tk.node.State.Enable = false + switch tk.node.WidgetType { + case widget.Box: + showDisable() + return + case widget.Button: + tk.setColorDisable() + return + default: + tk.dumpWidget("fixme: disable") + } +} - /* - initTextbox() +func (tk *guiWidget) Enable() { + if tk == nil { + log.Log(NOW, "widget is nil") + return + } - tk.enable = true - tk.node.State.Enable = true - // log.Info("enable widget in gocui", tk.node.WidgetType, tk.node.ProgName()) - switch tk.node.WidgetType { - case widget.Box: - // log.Info("todo: un blank the window here") - me.textbox.tk.Hide() - me.textbox.active = false - // log.Info("escaped from textbox") - return - case widget.Button: - tk.restoreEnableColor() - return - default: - tk.dumpWidget("fixme: enable") - } - */ + switch tk.node.WidgetType { + case widget.Box: + hideDisable() + return + case widget.Button: + tk.restoreEnableColor() + return + default: + tk.dumpWidget("fixme: enable") + } } @@ -28,7 +28,7 @@ func setFake(n *tree.Node) { } } -// func (n *node) addWidget(n *tree.Node) { +// mostly just sets the colors of things func addWidget(n *tree.Node) { if !me.ok { log.Log(INFO, "addWidget() START NOT OKAY") @@ -36,8 +36,7 @@ func addWidget(n *tree.Node) { log.Log(INFO, "addWidget() START NOT OKAY") waitOK() } - var tk *guiWidget - tk = n.TK.(*guiWidget) + tk := n.TK.(*guiWidget) log.Log(INFO, "setStartWH() w.id =", n.WidgetId, "n.name", n.String()) switch n.WidgetType { case widget.Root: @@ -67,10 +66,9 @@ func addWidget(n *tree.Node) { // tk.color = &colorTab return case widget.Button: + tk.setColorButton() if tk.node.IsEnabled() { - tk.setColorButton() } else { - tk.setColorButton() tk.setColorDisable() } return diff --git a/treeDraw.go b/treeDraw.go index 1f3ab11..52fb416 100644 --- a/treeDraw.go +++ b/treeDraw.go @@ -182,6 +182,19 @@ func (tk *guiWidget) drawView() { } } + switch tk.node.WidgetType { + case widget.Button: + if tk.node.IsEnabled() { + if tk.isWindowDense() && tk.isInGrid() { + tk.setColorButtonDense() + } else { + tk.setColorButton() + } + } else { + tk.setColorDisable() + } + default: + } // if you don't do this here, it will be black & white only if tk.color != nil { tk.v.FrameColor = tk.color.frame |
