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)