summaryrefslogtreecommitdiff
path: root/protobuf/widget.proto
diff options
context:
space:
mode:
Diffstat (limited to 'protobuf/widget.proto')
-rw-r--r--protobuf/widget.proto117
1 files changed, 117 insertions, 0 deletions
diff --git a/protobuf/widget.proto b/protobuf/widget.proto
new file mode 100644
index 0000000..e20354b
--- /dev/null
+++ b/protobuf/widget.proto
@@ -0,0 +1,117 @@
+syntax = "proto3";
+package guiProtobuf;
+
+message Action {
+ WidgetType widgetType = 1;
+ ActionType actionType = 2;
+ int64 widgetId = 3;
+ int64 parentId = 4;
+ string text = 5; // what is visable to the user
+ string name = 6; // a name useful for programming
+
+ // This is how the values are passed back and forth
+ // values from things like checkboxes & dropdown's
+ bool b = 7;
+ int64 i = 8;
+ string s = 9;
+
+ // This is used for things like a slider(0,100)
+ int64 x = 10;
+ int64 y = 11;
+
+ // This is for the grid size & widget position
+ int64 w = 12;
+ int64 h = 13;
+ int64 atw = 14;
+ int64 ath = 15;
+
+ bool margin = 16; // Put space around elements to improve look & feel
+ bool expand = 17; // Make widgets fill up the space available
+
+ repeated Response results = 18;
+ repeated Network networks = 19;
+ repeated VM vms = 20;
+
+ enum WidgetType {
+ Unknown = 0;
+ Root = 1; // the master 'root' node of the binary tree
+ Flag = 2; // used to send configuration values to plugins
+ Window = 3; // in certain gui's (ncurses), these are tabs
+ Tab = 4; // internally, this is a window
+ Frame = 5; // deprecate?
+ Grid = 6; // like drawers in a chest
+ Group = 7; // like the 'Appetizers' section on a menu
+ Box = 8; // a vertical or horizontal stack of widgets
+ Button = 9;
+ Checkbox = 10; // select 'on' or 'off'
+ Dropdown = 11;
+ Combobox = 12; // dropdown with edit=true
+ Label = 13;
+ Textbox = 14; // is this a Label with edit=true
+ Slider = 15; // like a progress bar
+ Spinner = 16; // like setting the oven temperature
+ Separator = 17; // TODO
+ Image = 18; // TODO
+ Area = 19; // TODO
+ Form = 20; // TODO
+ Font = 21; // TODO
+ Color = 22; // TODO
+ Dialog = 23; // TODO
+ Stdout = 24; // can be used to capture and display log output
+ }
+
+ enum ActionType {
+ Health = 0;
+ Add = 1;
+ Delete = 2;
+ Get = 3;
+ Set = 4;
+ GetText = 5;
+ SetText = 6;
+ AddText = 7;
+ Show = 8;
+ Hide = 9;
+ Enable = 10;
+ Disable = 11;
+ Margin = 12;
+ Unmargin = 13;
+ Pad = 14;
+ Unpad = 15;
+ Append = 16;
+ Move = 17;
+ Dump = 18;
+ User = 19; // the user did something (mouse, keyboard, etc)
+ InitToolkit = 20; // initializes the toolkit
+ CloseToolkit = 21; // closes the toolkit
+ UserQuit = 22; // the user closed the GUI
+ EnableDebug = 23; // open the debugging window
+ }
+
+ message Response {
+ // ActionType type = 1;
+ int64 id = 2;
+ string name = 3;
+ string error = 4;
+ repeated string snippets = 5;
+ }
+
+ message Network {
+ int64 id = 1;
+ string name = 2;
+ int64 total_cpu = 3;
+ int64 total_mem = 4;
+ string login_url = 5;
+ }
+
+ message VM {
+ int64 id = 1;
+ string name = 2;
+ string hostname = 3;
+ int64 cpus = 4;
+ int64 memory = 5;
+ int64 disk = 6;
+ string IPv6 = 7;
+ string role = 8;
+ string baseImage = 9;
+ }
+}