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:
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
// }

View File

@ -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,30 +262,24 @@ 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) Disable() {
if tk == nil {
log.Log(NOW, "widget is nil")
return
}
switch tk.node.WidgetType {
case widget.Box:
showDisable()
return
case widget.Button:
tk.setColorDisable()
return
default:
tk.dumpWidget("fixme: disable")
}
}
func (tk *guiWidget) Enable() {
@ -283,31 +287,15 @@ func (tk *guiWidget) Enable() {
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
/*
initTextbox()
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")
}
}

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) {
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

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 tk.color != nil {
tk.v.FrameColor = tk.color.frame