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