checkbox works

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-02-01 11:59:21 -06:00
parent 6fb1a5802a
commit 732f3c60e9
3 changed files with 25 additions and 21 deletions

View File

@ -1,33 +1,30 @@
package main package main
import ( import (
log "go.wit.com/log"
"go.wit.com/widget" "go.wit.com/widget"
) )
func (w *guiWidget) setCheckbox(b any) { // redraw the checkbox
func (w *guiWidget) setCheckbox() {
if w.node.WidgetType != widget.Checkbox { if w.node.WidgetType != widget.Checkbox {
log.Log(WARN, "setCheckbox() being run on widget:", w.node.WidgetType)
return return
} }
if w.node.State.Label == "" { if w.node.State.Label == "" {
w.node.State.Label = "BLANK" w.node.State.Label = "BLANK"
} }
if widget.GetBool(b) { if w.node.State.Checked {
w.checked = widget.GetBool(b) log.Log(WARN, "setCheckbox() got true", w.node.State.Checked)
w.labelN = "X " + w.node.State.Label w.labelN = "X " + w.node.State.Label
// w.changed = true
} else { } else {
w.checked = widget.GetBool(b) log.Log(WARN, "setCheckbox() got false", w.node.State.Checked)
w.labelN = " " + w.node.State.Label w.labelN = " " + w.node.State.Label
// w.changed = true
} }
t := len(w.labelN) + 1 // t := len(w.labelN) + 3
w.gocuiSize.w1 = w.gocuiSize.w0 + t // w.gocuiSize.w1 = w.gocuiSize.w0 + t
// w.realWidth = w.gocuiSize.Width() + me.PadW
// w.realHeight = w.gocuiSize.Height() + me.PadH
// if w.frame {
// w.realWidth += me.FramePadW
// w.realHeight += me.FramePadH
// }
w.deleteView() w.deleteView()
w.showView() w.showView()

View File

@ -150,13 +150,16 @@ func (w *guiWidget) doWidgetClick() {
} }
// w.dumpTree("click end") // w.dumpTree("click end")
case widget.Checkbox: case widget.Checkbox:
if widget.GetBool(w.value) { if w.node.State.Checked {
w.setCheckbox(false) log.Log(WARN, "checkbox is being set to false")
w.node.State.Checked = false
w.setCheckbox()
} else { } else {
w.setCheckbox(true) log.Log(WARN, "checkbox is being set to true")
w.node.State.Checked = true
w.setCheckbox()
} }
// n.doUserEvent() me.myTree.SendUserEvent(w.node)
me.myTree.SendUserEvent(me.treeRoot)
case widget.Grid: case widget.Grid:
newR := w.realGocuiSize() newR := w.realGocuiSize()

View File

@ -174,7 +174,11 @@ func (w *guiWidget) Set(val any) {
log.Log(INFO, "Set() value =", val) log.Log(INFO, "Set() value =", val)
w.value = val.(string) w.value = val.(string)
if w.node.WidgetType != widget.Checkbox { if w.node.WidgetType == widget.Checkbox {
w.setCheckbox(val) w.node.State.Checked = widget.GetBool(val)
w.setCheckbox()
}
if w.node.WidgetType == widget.Label {
w.labelN = widget.GetString(val)
} }
} }