summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-02 20:05:38 -0600
committerJeff Carr <[email protected]>2025-03-02 20:05:38 -0600
commit59a796c1af89a6c7ddf537c6df46b0e7140e7527 (patch)
tree7877e0362cec31d93bad26f49cd731e5516d704f
parent339265e31a013dfe9248d498d4c5188d771ec1ab (diff)
start switch to widgetpb
-rw-r--r--Makefile8
-rw-r--r--widget.proto54
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; //
}