summaryrefslogtreecommitdiff
path: root/table.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-05 12:11:46 -0600
committerJeff Carr <[email protected]>2025-03-05 12:42:50 -0600
commitf984dd3a9fe7cf319ea2f0837eb8d0fc2af37b70 (patch)
treefeeded637a6ab8ab6ceda7a53fa79d783bb0ea8c /table.go
parente93d9586929b5ac50628180b45e010bf898ec7bb (diff)
passes mouse clicks to gitpb
Diffstat (limited to 'table.go')
-rw-r--r--table.go57
1 files changed, 48 insertions, 9 deletions
diff --git a/table.go b/table.go
index 08418ae..aa8da77 100644
--- a/table.go
+++ b/table.go
@@ -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
}