diff options
Diffstat (limited to 'action.go')
| -rw-r--r-- | action.go | 50 |
1 files changed, 42 insertions, 8 deletions
@@ -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) + } + } } |
