2025-02-12 15:26:24 -06:00
|
|
|
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
|
|
|
|
// Use of this source code is governed by the GPL 3.0
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2025-02-19 06:54:36 -06:00
|
|
|
"fmt"
|
2025-02-18 15:39:28 -06:00
|
|
|
"slices"
|
|
|
|
|
2025-02-13 20:10:55 -06:00
|
|
|
"go.wit.com/lib/protobuf/guipb"
|
|
|
|
"go.wit.com/log"
|
2025-02-13 21:04:37 -06:00
|
|
|
"go.wit.com/toolkits/tree"
|
2025-02-18 14:58:42 -06:00
|
|
|
"go.wit.com/widget"
|
2025-02-12 15:26:24 -06:00
|
|
|
)
|
|
|
|
|
2025-02-19 06:54:36 -06:00
|
|
|
func initWindowPB(pb *guipb.Widget) *guiWidget {
|
|
|
|
var w *guiWidget
|
|
|
|
w = new(guiWidget)
|
|
|
|
|
|
|
|
w.pb = pb
|
|
|
|
w.parent = me.treeRoot.TK.(*guiWidget)
|
|
|
|
w.wtype = widget.Window
|
|
|
|
w.cuiName = fmt.Sprintf("%d %s", pb.Id, "TK")
|
|
|
|
w.labelN = pb.Name
|
|
|
|
return w
|
|
|
|
}
|
|
|
|
|
|
|
|
func initGridPB(pb *guipb.Widget) *guiWidget {
|
|
|
|
var w *guiWidget
|
|
|
|
w = new(guiWidget)
|
|
|
|
|
|
|
|
w.pb = pb
|
|
|
|
w.wtype = widget.Grid
|
|
|
|
w.cuiName = fmt.Sprintf("%d %s", pb.Id, "TK")
|
|
|
|
w.labelN = pb.Name
|
|
|
|
return w
|
|
|
|
}
|
|
|
|
|
2025-02-13 20:10:55 -06:00
|
|
|
func showTable(t *guipb.Table) {
|
2025-02-19 02:48:56 -06:00
|
|
|
log.Info("gocui: should show table here")
|
|
|
|
if t == nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
log.Info("gocui: table.Title", t.Title)
|
2025-02-19 06:54:36 -06:00
|
|
|
if t.Window == nil {
|
|
|
|
log.Info("gocui: missing window widget. tree plugin error")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
log.Info("gocui: need to add window here id =", t.Window.Id, t.Window.Name)
|
|
|
|
if t.Grid == nil {
|
|
|
|
log.Info("gocui: missing grid widget. tree plugin error")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
log.Info("gocui: need to add grid here id =", t.Grid.Id)
|
|
|
|
win := initWindowPB(t.Window)
|
|
|
|
grid := initWindowPB(t.Window)
|
|
|
|
grid.parent = win
|
2025-02-12 15:26:24 -06:00
|
|
|
}
|
2025-02-13 21:04:37 -06:00
|
|
|
|
|
|
|
func enableWidget(n *tree.Node) {
|
|
|
|
tk := n.TK.(*guiWidget)
|
|
|
|
tk.Enable()
|
|
|
|
}
|
|
|
|
|
|
|
|
func disableWidget(n *tree.Node) {
|
|
|
|
tk := n.TK.(*guiWidget)
|
|
|
|
tk.Disable()
|
|
|
|
}
|
2025-02-18 14:58:42 -06:00
|
|
|
|
|
|
|
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()
|
2025-02-18 15:39:28 -06:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
2025-02-18 14:58:42 -06:00
|
|
|
}
|