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; // }