| // gtx.proto |
| // Definitions for protobufs used by GTXiLib. |
| |
| syntax = "proto3"; |
| |
| package gtxilib.oopclasses.protos; |
| |
| import "enums.proto"; |
| |
| option java_multiple_files = true; |
| option objc_class_prefix = "GTX"; |
| |
| // Definition for Point data in 2D space. |
| // Next index: 3 |
| message Point { |
| optional float x = 1; |
| optional float y = 2; |
| } |
| |
| // Definition for 2D size data. |
| // Next index: 3 |
| message Size { |
| optional float width = 1; |
| optional float height = 2; |
| } |
| |
| // Definition for 2D rectangle data. |
| // Next index: 3 |
| message Rect { |
| optional Point origin = 1; |
| optional Size size = 2; |
| } |
| |
| // An RGBA color. |
| // Next index: 5 |
| message Color { |
| optional float r = 1; |
| optional float g = 2; |
| optional float b = 3; |
| optional float a = 4; |
| } |
| |
| // Definition for UI element data. Note that the properties are intentionally |
| // named to differ from UIAccessibility properties of NSObject to avoid |
| // conflicts when proto is used in Objective-C. |
| // Next index: 36 |
| message UIElement { |
| optional int32 id = 1; |
| optional int32 parent_id = 2; |
| repeated int32 child_ids = 3; |
| |
| // Accessibility properties |
| optional bool is_ax_element = 4; |
| optional uint64 ax_traits = 5; |
| optional string ax_label = 6; |
| optional string ax_hint = 7; |
| optional Rect ax_frame = 8; |
| optional string ax_identifier = 9; |
| |
| // XCUIElement |
| optional bool hittable = 10; |
| optional bool exists = 11; |
| optional bool xc_selected = 12; |
| optional bool xc_enabled = 13; |
| optional ElementType.ElementTypeEnum element_type = 14; |
| |
| // UIView |
| repeated string class_names_hierarchy = 15; |
| optional Color background_color = 16; |
| optional bool hidden = 17; |
| optional float alpha = 18; |
| optional bool opaque = 20; |
| optional Color tint_color = 21; |
| optional bool clips_to_bounds = 22; |
| optional bool user_interaction_enabled = 23; |
| optional bool multiple_touch_enabled = 24; |
| optional bool exclusive_touch = 25; |
| optional Rect frame = 26; |
| optional Rect bounds = 27; |
| |
| // UIControl |
| optional uint64 control_state = 28; |
| optional bool enabled = 29; |
| optional bool selected = 30; |
| optional bool highlighted = 31; |
| optional string title = 32; |
| optional string text = 33; // UITextField and UITextView |
| optional bool on = 34; // UISwitch |
| optional float value = 35; // UIStepper and UISlider |
| } |
| |
| // Metrics about the device, such as screen dimensions. |
| // Next index: 4. |
| message DisplayMetrics { |
| optional int32 screen_width = 1; |
| optional int32 screen_height = 2; |
| optional float screen_scale = 3; |
| } |
| |
| // Global device state at a snapshot in time. |
| // Next index: 3. |
| message DeviceState { |
| optional DisplayMetrics display_metrics = 1; |
| optional string ios_version = 2; |
| } |
| |
| // The state of the accessibility hierarchy of an app at a snapshot in time. |
| // Contains a tree of accessibility elements and related device metrics. |
| // Next index: 3. |
| message AccessibilityHierarchy { |
| optional DeviceState device_state = 1; |
| repeated UIElement elements = 2; |
| } |