summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-04-06 15:00:37 -0500
committerJeff Carr <[email protected]>2023-04-06 15:00:37 -0500
commit70f8797122741ef61951d3400317173a1d9974da (patch)
treeb30dee396b571cd66655fd1f7f68c9f5eaf7a8a1
parent789beceb913cc6132931c0e245cad78d3ae7d9b8 (diff)
gogui: checkboxes
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--toolkit/gocui/checkbox.go26
-rw-r--r--toolkit/gocui/click.go6
-rw-r--r--toolkit/gocui/plugin.go1
-rw-r--r--toolkit/gocui/view.go2
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()
}