summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-05-23 10:34:50 -0500
committerJeff Carr <[email protected]>2025-05-23 10:34:50 -0500
commit1068eb5aad207eea71ee5e51d1cc8be86e9410c8 (patch)
treecd7b86d821d727dc8f8fd1e437ba7447c5f860f3
parent1418d4652e7f296eb7de08ccc4b0394db5a54303 (diff)
more work on protobuf tablesv0.22.30
-rw-r--r--action.go31
-rw-r--r--table.go8
2 files changed, 39 insertions, 0 deletions
diff --git a/action.go b/action.go
index cfd629f..94a48f3 100644
--- a/action.go
+++ b/action.go
@@ -5,6 +5,8 @@
package tree
import (
+ "os"
+
"go.wit.com/lib/protobuf/guipb"
"go.wit.com/log"
"go.wit.com/widget"
@@ -27,6 +29,35 @@ func (me *TreeInfo) doAction(a widget.Action) {
me.ToolkitInit()
return
}
+ if a.WidgetPB != nil {
+ log.Log(TREEWARN, "tree: got a WidgetPB")
+ widgetpb := new(guipb.Widgets)
+ err := widgetpb.Unmarshal(a.WidgetPB)
+ if err != nil {
+ log.Log(TREEWARN, "WidgetPB unmarshal err", err)
+ return
+ }
+ log.Log(TREEWARN, "tree: unmarshal worked!")
+ var wind *Node
+ newa := new(widget.Action)
+ newa.WidgetType = widget.Window
+ newa.WidgetId = -234
+ newa.ParentId = -1234
+ newa.State.Enable = true
+ wind = addNode(newa)
+ if wind == nil {
+ log.Log(TREEWARN, "tree: addNode() failed to add win")
+ return
+ }
+ wind.State.ProgName = "WinPB"
+ wind.State.Label = "WinPB"
+ me.Add(wind)
+ me.doWidgetsPB(widgetpb.Tree)
+ me.ToolkitClose()
+ os.Exit(0)
+ // me.doTable(a)
+ return
+ }
if a.TablePB != nil {
log.Log(TREE, "tree: got a TablePB")
me.doTable(a)
diff --git a/table.go b/table.go
index 5d13d5a..8f981e9 100644
--- a/table.go
+++ b/table.go
@@ -18,6 +18,14 @@ import (
"google.golang.org/protobuf/types/known/wrapperspb"
)
+func (me *TreeInfo) doWidgetsPB(w *guipb.Widget) {
+ log.Log(TREEWARN, "tree:", w.Id, w.Name)
+
+ for _, child := range w.Children {
+ me.doWidgetsPB(child)
+ }
+}
+
func (me *TreeInfo) doTable(a widget.Action) {
if a.TablePB == nil {
log.Log(TREE, "tree: action didn't have a Table PB")