diff options
| -rw-r--r-- | toolkit/gocui/checkbox.go | 26 | ||||
| -rw-r--r-- | toolkit/gocui/click.go | 6 | ||||
| -rw-r--r-- | toolkit/gocui/plugin.go | 1 | ||||
| -rw-r--r-- | toolkit/gocui/view.go | 2 |
4 files changed, 34 insertions, 1 deletions
diff --git a/toolkit/gocui/checkbox.go b/toolkit/gocui/checkbox.go new file mode 100644 index 0000000..8e6abf1 --- /dev/null +++ b/toolkit/gocui/checkbox.go @@ -0,0 +1,26 @@ +package main + +import ( +// "github.com/awesome-gocui/gocui" + "git.wit.org/wit/gui/toolkit" +) + +func (w *cuiWidget) setCheckbox(b bool) { + if (w.widgetType != toolkit.Checkbox) { + return + } + if (b) { + w.b = b + w.text = "X " + w.name + } else { + w.b = b + w.text = " " + w.name + } + t := len(w.text) + 1 + w.realWidth = t + w.gocuiSize.width = t + + w.setWH() + w.deleteView() + w.drawView() +} diff --git a/toolkit/gocui/click.go b/toolkit/gocui/click.go index b014e16..0dadc8b 100644 --- a/toolkit/gocui/click.go +++ b/toolkit/gocui/click.go @@ -28,6 +28,12 @@ func (w *cuiWidget) doWidgetClick() { case toolkit.Group: w.placeWidgets() w.toggleTree() + case toolkit.Checkbox: + if (w.b) { + w.setCheckbox(false) + } else { + w.setCheckbox(true) + } case toolkit.Grid: me.rootNode.hideWidgets() w.placeGrid() diff --git a/toolkit/gocui/plugin.go b/toolkit/gocui/plugin.go index 396042b..eb3f2af 100644 --- a/toolkit/gocui/plugin.go +++ b/toolkit/gocui/plugin.go @@ -69,6 +69,7 @@ func (w *cuiWidget) Set(val any) { switch v := val.(type) { case bool: w.b = val.(bool) + w.setCheckbox(val.(bool)) case string: w.SetText(val.(string)) case int: diff --git a/toolkit/gocui/view.go b/toolkit/gocui/view.go index c1a514b..2f2cf47 100644 --- a/toolkit/gocui/view.go +++ b/toolkit/gocui/view.go @@ -81,7 +81,7 @@ func (w *cuiWidget) drawView() { me.baseGui.SetKeybinding(w.v.Name(), gocui.MouseLeft, gocui.ModNone, click) w.v.Wrap = true - fmt.Fprintln(w.v, " " + w.text) + fmt.Fprintln(w.v, w.text) w.setDefaultWidgetColor() } |
