lib/gui/src/surface/command.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 pub const CommandOptionalF32 = extern struct {
2 is_set: u8,
3 value: f32,
4 };
5
6 pub const CommandUiInsets = extern struct {
7 top: CommandOptionalF32,
8 left: CommandOptionalF32,
9 right: CommandOptionalF32,
10 bottom: CommandOptionalF32,
11 };
12
13 pub const CommandUiDimensions = extern struct {
14 width: CommandOptionalF32,
15 height: CommandOptionalF32,
16 };
17
18 pub const CommandUiColor = extern struct {
19 r: u8,
20 g: u8,
21 b: u8,
22 a: u8,
23 };
24
25 pub const CommandUiOptionalColor = extern struct {
26 is_set: u8,
27 value: CommandUiColor,
28 };
29
30 pub const CommandUiPoint = extern struct {
31 x: f32,
32 y: f32,
33 };
34
35 pub const CommandUiRect = extern struct {
36 x: f32,
37 y: f32,
38 width: f32,
39 height: f32,
40 };
41
42 pub const CommandUiLinearGradient = extern struct {
43 is_set: u8,
44 start: CommandUiPoint,
45 end: CommandUiPoint,
46 start_color: CommandUiColor,
47 end_color: CommandUiColor,
48 };
49
50 pub const CommandUiImagePaint = extern struct {
51 is_set: u8,
52 index: u32,
53 source: CommandUiRect,
54 tint: CommandUiOptionalColor,
55 opacity: u8,
56 };
57
58 pub const CommandUiPaint = extern struct {
59 background: CommandUiOptionalColor,
60 linear_gradient: CommandUiLinearGradient,
61 foreground: CommandUiOptionalColor,
62 border: CommandUiOptionalColor,
63 border_width: f32,
64 corner_roundness: f32,
65 border_edges: CommandUiBorderPaint,
66 shadow: CommandUiShadowPaint,
67 image: CommandUiImagePaint,
68 };
69
70 pub const CommandUiBorderEdgePaint = extern struct {
71 color: CommandUiOptionalColor,
72 width: f32,
73 };
74
75 pub const CommandUiBorderPaint = extern struct {
76 top: CommandUiBorderEdgePaint,
77 right: CommandUiBorderEdgePaint,
78 bottom: CommandUiBorderEdgePaint,
79 left: CommandUiBorderEdgePaint,
80 };
81
82 pub const CommandUiShadowPaint = extern struct {
83 color: CommandUiOptionalColor,
84 offset_x: f32,
85 offset_y: f32,
86 blur_radius: f32,
87 spread: f32,
88 };
89
90 pub const CommandUiStyle = extern struct {
91 flex_direction: u8,
92 wrap: u8,
93 justify_content: u8,
94 align_items: u8,
95 align_self: u8,
96 position: u8,
97 gap: f32,
98 padding: CommandUiInsets,
99 flex_grow: f32,
100 flex_shrink: f32,
101 flex_basis: CommandOptionalF32,
102 min_width: CommandOptionalF32,
103 min_height: CommandOptionalF32,
104 max_width: CommandOptionalF32,
105 max_height: CommandOptionalF32,
106 inset: CommandUiInsets,
107 overflow_x: u8,
108 overflow_y: u8,
109 scroll_x: f32,
110 scroll_y: f32,
111 };
112
113 pub const CommandUiText = extern struct {
114 content_ptr: ?[*]const u8,
115 content_len: usize,
116 runs_ptr: ?[*]const CommandUiTextRun,
117 runs_len: usize,
118 styles_ptr: ?[*]const CommandUiTextStyle,
119 styles_len: usize,
120 font_asset_id: u64,
121 font_weight: u16,
122 point_size: f64,
123 line_height: f64,
124 wrap_width: f64,
125 horizontal_align: u8,
126 vertical_align: u8,
127 };
128
129 pub const CommandUiTextStyle = extern struct {
130 font_asset_id: u64,
131 point_size: f64,
132 };
133
134 pub const CommandUiTextRun = extern struct {
135 byte_start: usize,
136 byte_end: usize,
137 style_slot: u16,
138 foreground: CommandUiOptionalColor,
139 background: CommandUiOptionalColor,
140 underline: u8,
141 strikethrough: u8,
142 };
143
144 pub const CommandUiTextSelection = extern struct {
145 cursor_visible: u8,
146 cursor_byte_offset: usize,
147 selection_active: u8,
148 selection_anchor_byte_offset: usize,
149 selection_focus_byte_offset: usize,
150 };
151
152 pub const CommandUiNode = extern struct {
153 widget_id: u64,
154 kind: u8,
155 focusable: u8,
156 style: CommandUiStyle,
157 size: CommandUiDimensions,
158 paint: CommandUiPaint,
159 text_ptr: ?*const CommandUiText,
160 children_ptr: ?[*]const CommandUiNode,
161 children_len: usize,
162 action_ptr: ?[*]const u8,
163 action_len: usize,
164 role_ptr: ?[*]const u8,
165 role_len: usize,
166 state_flags: u64,
167 text_selection: CommandUiTextSelection,
168 };
169
170 pub const CommandUiImage = extern struct {
171 width: u32,
172 height: u32,
173 pixels_ptr: ?[*]const u32,
174 pixels_len: usize,
175 };
176
177 pub const CommandUiSurface = extern struct {
178 available_width: f32,
179 available_height: f32,
180 root_ptr: ?*const CommandUiNode,
181 images_ptr: ?[*]const CommandUiImage,
182 images_len: usize,
183 };