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 };