summaryrefslogtreecommitdiff
path: root/action.go
diff options
context:
space:
mode:
Diffstat (limited to 'action.go')
-rw-r--r--action.go50
1 files changed, 42 insertions, 8 deletions
diff --git a/action.go b/action.go
index 0bf52c7..8dd6a33 100644
--- a/action.go
+++ b/action.go
@@ -7,6 +7,8 @@ package main
*/
import (
+ "slices"
+
"go.wit.com/lib/protobuf/guipb"
"go.wit.com/log"
"go.wit.com/toolkits/tree"
@@ -105,22 +107,54 @@ func addText(n *tree.Node, s string) {
// w.AddText(s)
}
-func enableWidget(n *tree.Node) {
+func setChecked(n *tree.Node, b bool) {
log.Info("do enable() here")
}
-func disableWidget(n *tree.Node) {
+func toolkitClose() {
log.Info("do enable() here")
}
-func setChecked(n *tree.Node, b bool) {
- log.Info("do enable() here")
+func showTable(t *guipb.Table) {
+ log.Info("gocui: should show table here")
+ if t == nil {
+ return
+ }
+ log.Info("gocui: table.Title", t.Title)
}
-func showTable(n *guipb.Table) {
- log.Info("do enable() here")
+func enableWidget(n *tree.Node) {
+ tk := n.TK.(*guiWidget)
+ tk.Enable()
}
-func toolkitClose() {
- log.Info("do enable() here")
+func disableWidget(n *tree.Node) {
+ tk := n.TK.(*guiWidget)
+ tk.Disable()
+}
+
+func showWidget(n *tree.Node) {
+ tk := n.TK.(*guiWidget)
+ tk.Show()
+}
+
+func hideWidget(n *tree.Node) {
+ tk := n.TK.(*guiWidget)
+ if n.WidgetType == widget.Window {
+ // tk.windowFrame.Hide()
+ // tk.hideWidgets()
+ }
+ tk.Hide()
+ tk.deleteWidget()
+}
+
+func (tk *guiWidget) deleteWidget() {
+ log.Info("gocui deleteWidget() looking for child to delete:", tk.cuiName)
+ p := tk.parent
+ for i, child := range p.children {
+ if tk == child {
+ log.Info("deleteWidget() found parent with child to delete:", i, child.cuiName)
+ p.children = slices.Delete(p.children, i, i+1)
+ }
+ }
}