diff options
| author | Jeff Carr <[email protected]> | 2025-03-05 12:11:46 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-03-05 12:42:50 -0600 |
| commit | f984dd3a9fe7cf319ea2f0837eb8d0fc2af37b70 (patch) | |
| tree | feeded637a6ab8ab6ceda7a53fa79d783bb0ea8c /table.go | |
| parent | e93d9586929b5ac50628180b45e010bf898ec7bb (diff) | |
passes mouse clicks to gitpb
Diffstat (limited to 'table.go')
| -rw-r--r-- | table.go | 57 |
1 files changed, 48 insertions, 9 deletions
@@ -12,6 +12,7 @@ import ( "google.golang.org/protobuf/types/known/anypb" ) +/* // makes a grid inside an existing Widget func (n *Node) NewTable(title string) *NodeTable { t := new(NodeTable) @@ -35,6 +36,23 @@ type NodeTable struct { Custom func() } +func (parent *Node) ShowTableCallback(pb *guipb.Table, f func(id int)) { +} +*/ + +func (n *Node) isWidgetInTable() (bool, *guipb.Table) { + if n.id == 0 { + return false, nil + } + if n.progname == "gridtablePB" { + return true, n.tablepb + } + if n.parent == nil { + return false, nil + } + return n.parent.isWidgetInTable() +} + func (parent *Node) ShowTable(pb *guipb.Table) { // make a new action and populate the current node state // this should be parent and not rootNode? @@ -44,7 +62,8 @@ func (parent *Node) ShowTable(pb *guipb.Table) { pb.Parent.Id = int64(parent.id) pb.Parent.Name = pb.Title - makeTableGrid(pb) + grid := parent.makeTableGrid(pb) + grid.tablepb = pb nt := guipb.NewTables() nt.Append(pb) @@ -85,19 +104,17 @@ func (parent *Node) DeleteTable(pb *guipb.Table) { sendActionToPlugin(a) } -func makeTableGrid(pb *guipb.Table) { +func (parent *Node) makeTableGrid(pb *guipb.Table) *Node { grid := addNode() + grid.progname = "gridtablePB" + grid.WidgetType = widget.Grid + pb.Grid = new(guipb.Widget) pb.Grid.Id = int64(grid.id) pb.Grid.Name = "gridtablePB" - /* - // get unique widget ID numbers for the headers - for i, r := range pb.Order { - n := addNode() - r.Id = int64(n.id) - } - */ + parent.children = append(parent.children, grid) + grid.parent = parent for _, r := range pb.StringRows { // log.Info("gui: got string row:", pb.Title, i, r.Header, r.Vals) @@ -105,6 +122,11 @@ func makeTableGrid(pb *guipb.Table) { r.Header.Id = int64(header.id) for _, v := range r.Vals { label := addNode() + label.WidgetType = widget.Label + label.parent = grid + label.enabled = true + grid.children = append(grid.children, label) + pbwidget := new(guipb.Widget) pbwidget.Id = int64(label.id) pbwidget.Name = v @@ -119,6 +141,11 @@ func makeTableGrid(pb *guipb.Table) { r.Header.Id = int64(header.id) for _, v := range r.Vals { label := addNode() + label.WidgetType = widget.Button + label.parent = grid + label.enabled = true + grid.children = append(grid.children, label) + pbwidget := new(guipb.Widget) pbwidget.Id = int64(label.id) pbwidget.Name = v @@ -133,6 +160,11 @@ func makeTableGrid(pb *guipb.Table) { r.Header.Id = int64(header.id) for _, v := range r.Vals { label := addNode() + label.WidgetType = widget.Label + label.parent = grid + label.enabled = true + grid.children = append(grid.children, label) + pbwidget := new(guipb.Widget) pbwidget.Id = int64(label.id) pbwidget.Size = v @@ -147,6 +179,11 @@ func makeTableGrid(pb *guipb.Table) { r.Header.Id = int64(header.id) for _, v := range r.Vals { label := addNode() + label.WidgetType = widget.Label + label.parent = grid + label.enabled = true + grid.children = append(grid.children, label) + pbwidget := new(guipb.Widget) pbwidget.Id = int64(label.id) anyValue, err := anypb.New(v) @@ -159,4 +196,6 @@ func makeTableGrid(pb *guipb.Table) { // log.Info("gui: added new val", pbwidget) } } + + return grid } |
