From 59a796c1af89a6c7ddf537c6df46b0e7140e7527 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 2 Mar 2025 20:05:38 -0600 Subject: [PATCH] start switch to widgetpb --- Makefile | 8 ++++++-- widget.proto | 54 +++++++++++++++++++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index f83b728..32a9866 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -all: clean proto goimports vet +all: proto goimports vet redo: clean proto goimports vet @@ -9,8 +9,12 @@ vet: goimports: goimports -w *.go -proto: +proto: widget.pb.go table.pb.go + +widget.pb.go: widget.proto autogenpb --proto widget.proto + +table.pb.go: table.proto autogenpb --proto table.proto clean: diff --git a/widget.proto b/widget.proto index 5387413..8b85a33 100644 --- a/widget.proto +++ b/widget.proto @@ -9,33 +9,53 @@ import "google/protobuf/any.proto"; // Import 'Any' message Size { - int64 width = 1; - int64 height = 2; + int64 width = 1; + int64 height = 2; } message Location { - int64 x = 1; - int64 y = 2; + int64 x = 1; + int64 y = 2; } message Tree { - Widget parent = 1; - repeated Widget children = 2; + Widget parent = 1; + repeated Widget children = 2; } message Widget { - int64 id = 1; - string name = 2; - int64 size = 3; - google.protobuf.Any val = 4; - // Size size = 3; - // Location location = 4; - // string color = 5; - // google.protobuf.Any TK = 6; + int64 id = 1; + string name = 2; + int64 size = 3; + google.protobuf.Any val = 4; + google.protobuf.Any TK = 5; + WidgetType Type = 6; + Location location = 7; + // Size size = 3; + // string color = 5; } message Widgets { - string uuid = 1; // `autogenpb:uuid:0331fcd7-3c8c-43e4-be1b-77db6a6bc58c` - string version = 2; // `autogenpb:version:v1` - repeated Widget Widgets = 3; + string uuid = 1; // `autogenpb:uuid:0331fcd7-3c8c-43e4-be1b-77db6a6bc58c` + string version = 2; // `autogenpb:version:v1` + repeated Widget Widgets = 3; + Tree tree = 4; +} + +// todo: fix autogenpb to look for enum +enum WidgetType { + Root = 0; // the master 'root' node of the binary tree + Flag = 1; // + Window = 2; // + Tab = 3; // a tab like in firefox + Box = 4; // + Group = 5; // think 'Appetizers' on a restaurant menu + Grid = 6; // like drawers in a chest + Button = 7; // + Checkbox = 8; // + Dropdown = 9; // + Combobox = 10; // + Label = 11; // + Textbox = 12; // + TablePB = 13; // }