summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--table.go41
1 files changed, 35 insertions, 6 deletions
diff --git a/table.go b/table.go
index 4b51509..523c257 100644
--- a/table.go
+++ b/table.go
@@ -17,12 +17,6 @@ import (
"google.golang.org/protobuf/types/known/timestamppb"
)
-// repeated string order = 1;
-//
-// repeated StringRow StringRows = 2;
-// repeated IntRow IntRows = 3;
-// repeated TimeRow TimeRows = 4;
-// repeated BoolRow BoolRows = 5;
func (me *TreeInfo) doTable(a widget.Action) {
if a.TablePB == nil {
log.Log(TREE, "tree: action didn't have a Table PB")
@@ -89,6 +83,21 @@ func (grid *Node) makeGridLabel(pb *guipb.Widget, w int, h int) *Node {
return addNode(a)
}
+func (grid *Node) makeGridButton(pb *guipb.Widget, w int, h int) *Node {
+ a := new(widget.Action)
+ a.WidgetType = widget.Button
+ a.WidgetId = int(pb.Id)
+ a.ParentId = grid.WidgetId
+ a.State.Enable = true
+ a.State.Label = pb.Name
+ a.State.AtW = w
+ a.State.AtH = h
+ a.State.GridOffset.X = w
+ a.State.GridOffset.Y = h
+ // log.Info("makeGridLabel()", a.State)
+ return addNode(a)
+}
+
func (me *TreeInfo) updateTable(t *guipb.Table) {
grid := FindWidgetId(int(t.Grid.Id))
if grid == nil {
@@ -114,6 +123,7 @@ func (me *TreeInfo) updateTable(t *guipb.Table) {
}
}
+/*
func (me *TreeInfo) updateRow(t *guipb.Table, name string) {
for _, r := range t.StringRows {
if name == r.Header.Name {
@@ -175,6 +185,7 @@ func (me *TreeInfo) updateRow(t *guipb.Table, name string) {
return
}
}
+*/
func (me *TreeInfo) makeTable(t *guipb.Table) {
var grid *Node
@@ -226,6 +237,24 @@ func (me *TreeInfo) addTableRow(t *guipb.Table, grid *Node, name string, w int)
return true
}
+ for _, r := range t.ButtonRows {
+ if name != r.Header.Name {
+ // log.Info("skip string row:", r.Header.Name, "!=", name)
+ continue
+ }
+ // log.Info("tree: Add()ing to grid here", r.Header.Id, r.Header.Name, w, h)
+ head := grid.makeGridLabel(r.Header, w, h)
+ me.Add(head)
+ h += 1
+ for _, v := range r.Widgets {
+ // log.Info("tree: Add()ing to grid here", v.Id, v.Name, w, h)
+ lab := grid.makeGridButton(v, w, h)
+ me.Add(lab)
+ h += 1
+ }
+ return true
+ }
+
for _, r := range t.IntRows {
if name != r.Header.Name {
// log.Info("skip sint row:", r.Header.Name, "!=", name)