1syntax = "proto3"; 2 3package androidx.glance.appwidget.proto; 4 5option java_package = "androidx.glance.appwidget.proto"; 6option java_outer_classname = "LayoutProto"; 7 8message LayoutConfig { 9 repeated LayoutDefinition layout = 1; 10 int32 next_index = 2; 11} 12 13message LayoutDefinition { 14 LayoutNode layout = 1; 15 int32 layout_index = 2; 16} 17 18message LayoutNode { 19 LayoutType type = 1; 20 DimensionType width = 2; 21 DimensionType height = 3; 22 HorizontalAlignment horizontal_alignment = 4; 23 VerticalAlignment vertical_alignment = 5; 24 ContentScale image_scale = 6; 25 NodeIdentity identity = 8; 26 bool hasAction = 9; 27 repeated LayoutNode children = 7; 28 bool has_image_description = 10; 29 bool has_image_color_filter = 11; 30 bool has_image_alpha = 12; 31} 32 33enum ContentScale { 34 UNSPECIFIED_CONTENT_SCALE = 0; 35 FIT = 1; 36 CROP = 2; 37 FILL_BOUNDS = 3; 38} 39 40enum HorizontalAlignment { 41 UNSPECIFIED_HORIZONTAL_ALIGNMENT = 0; 42 START = 1; 43 CENTER_HORIZONTALLY = 2; 44 END = 3; 45} 46 47enum VerticalAlignment { 48 UNSPECIFIED_VERTICAL_ALIGNMENT = 0; 49 TOP = 1; 50 CENTER_VERTICALLY = 2; 51 BOTTOM = 3; 52} 53 54enum DimensionType { 55 UNKNOWN_DIMENSION_TYPE = 0; 56 EXACT = 1; 57 WRAP = 2; 58 FILL = 3; 59 EXPAND = 4; 60} 61 62enum NodeIdentity { 63 DEFAULT_IDENTITY = 0; 64 BACKGROUND_NODE = 1; 65} 66 67enum LayoutType { 68 UNKNOWN_TYPE = 0; 69 ROW = 1; 70 COLUMN = 2; 71 BOX = 3; 72 TEXT = 4; 73 LAZY_COLUMN = 5; 74 LIST_ITEM = 6; 75 CHECK_BOX = 7; 76 BUTTON = 8; 77 SPACER = 9; 78 SWITCH = 10; 79 ANDROID_REMOTE_VIEWS = 11; 80 REMOTE_VIEWS_ROOT = 12; 81 IMAGE = 13; 82 LINEAR_PROGRESS_INDICATOR = 14; 83 CIRCULAR_PROGRESS_INDICATOR = 15; 84 LAZY_VERTICAL_GRID = 16; 85 VERTICAL_GRID_ITEM = 17; 86 RADIO_GROUP = 18; 87 RADIO_BUTTON = 19; 88 RADIO_ROW = 20; 89 RADIO_COLUMN = 21; 90 SIZE_BOX = 22; 91} 92