62 lines
2.0 KiB
Protocol Buffer
62 lines
2.0 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
// playing around with ideas here
|
|
|
|
package gitpb;
|
|
|
|
// import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp
|
|
import "google/protobuf/any.proto"; // Import 'Any'
|
|
|
|
|
|
message Size {
|
|
int64 width = 1;
|
|
int64 height = 2;
|
|
}
|
|
|
|
message Location {
|
|
int64 x = 1;
|
|
int64 y = 2;
|
|
}
|
|
|
|
message Tree {
|
|
Widget parent = 1;
|
|
repeated Widget children = 2;
|
|
}
|
|
|
|
message Widget {
|
|
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 { // `autogenpb:marshal`
|
|
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; //
|
|
}
|