working on button disable

This commit is contained in:
Jeff Carr 2025-02-12 00:19:15 -06:00
parent a575a08bcc
commit 0a60272440
4 changed files with 68 additions and 63 deletions

View File

@ -145,9 +145,15 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) {
case widget.Button: case widget.Button:
if tk.isWindowDense() && tk.isInGrid() { if tk.isWindowDense() && tk.isInGrid() {
tk.frame = false tk.frame = false
tk.color = nil // tk.color = nil
tk.defaultColor = nil // tk.defaultColor = nil
tk.setColorButtonDense() /*
if tk.node.IsEnabled() {
tk.setColorButtonDense()
} else {
tk.setColorDisable()
}
*/
// if tk.full.Height() > 0 { // if tk.full.Height() > 0 {
tk.full.h1 = tk.full.h0 tk.full.h1 = tk.full.h0
// } // }

View File

@ -220,13 +220,23 @@ func (tk *guiWidget) GetText() string {
return "" return ""
} }
func (tk *guiWidget) Disable() { func hideDisable() {
if tk == nil { if me.textbox.tk == nil {
log.Log(NOW, "widget is nil") initTextbox()
return 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 := new(rectType)
r.w0 = 2 r.w0 = 2
r.h0 = 1 r.h0 = 1
@ -252,30 +262,24 @@ func (tk *guiWidget) Disable() {
me.baseGui.SetKeybinding(me.textbox.tk.v.Name(), gocui.KeyEnter, gocui.ModNone, theCloseTheTextbox) me.baseGui.SetKeybinding(me.textbox.tk.v.Name(), gocui.KeyEnter, gocui.ModNone, theCloseTheTextbox)
me.textbox.active = true me.textbox.active = true
}
/* func (tk *guiWidget) Disable() {
tk.enable = false if tk == nil {
tk.node.State.Enable = false log.Log(NOW, "widget is nil")
// log.Info("disable widget in gocui", tk.node.WidgetType, tk.node.ProgName()) return
switch tk.node.WidgetType { }
case widget.Box:
// log.Info("todo: blank out the window here", tk.String()) switch tk.node.WidgetType {
r := new(rectType) case widget.Box:
// startW, startH := tk.Position() showDisable()
r.w0 = 0 return
r.h0 = 0 case widget.Button:
r.w1 = r.w0 + 24 tk.setColorDisable()
r.h1 = r.h0 + 2 return
me.textbox.tk.forceSizes(r) default:
showTextbox("Running...") tk.dumpWidget("fixme: disable")
return }
case widget.Button:
tk.setColorDisable()
return
default:
tk.dumpWidget("fixme: disable")
}
*/
} }
func (tk *guiWidget) Enable() { func (tk *guiWidget) Enable() {
@ -283,31 +287,15 @@ func (tk *guiWidget) Enable() {
log.Log(NOW, "widget is nil") log.Log(NOW, "widget is nil")
return return
} }
initTextbox()
tk.prepTextbox()
me.textbox.tk.Hide() switch tk.node.WidgetType {
me.textbox.tk.enable = false case widget.Box:
me.textbox.tk.node.State.Enable = false hideDisable()
return
/* case widget.Button:
initTextbox() tk.restoreEnableColor()
return
tk.enable = true default:
tk.node.State.Enable = true tk.dumpWidget("fixme: enable")
// 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")
}
*/
} }

View File

@ -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) { func addWidget(n *tree.Node) {
if !me.ok { if !me.ok {
log.Log(INFO, "addWidget() START NOT OKAY") log.Log(INFO, "addWidget() START NOT OKAY")
@ -36,8 +36,7 @@ func addWidget(n *tree.Node) {
log.Log(INFO, "addWidget() START NOT OKAY") log.Log(INFO, "addWidget() START NOT OKAY")
waitOK() waitOK()
} }
var tk *guiWidget tk := n.TK.(*guiWidget)
tk = n.TK.(*guiWidget)
log.Log(INFO, "setStartWH() w.id =", n.WidgetId, "n.name", n.String()) log.Log(INFO, "setStartWH() w.id =", n.WidgetId, "n.name", n.String())
switch n.WidgetType { switch n.WidgetType {
case widget.Root: case widget.Root:
@ -67,10 +66,9 @@ func addWidget(n *tree.Node) {
// tk.color = &colorTab // tk.color = &colorTab
return return
case widget.Button: case widget.Button:
tk.setColorButton()
if tk.node.IsEnabled() { if tk.node.IsEnabled() {
tk.setColorButton()
} else { } else {
tk.setColorButton()
tk.setColorDisable() tk.setColorDisable()
} }
return return

View File

@ -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 you don't do this here, it will be black & white only
if tk.color != nil { if tk.color != nil {
tk.v.FrameColor = tk.color.frame tk.v.FrameColor = tk.color.frame