1 /*******************************************************************************/
2 /*  This file is auto-generated by Azure RTOS GUIX Studio. Do not edit this    */
3 /*  file by hand. Modifications to this file should only be made by running    */
4 /*  the Azure RTOS GUIX Studio application and re-generating the application   */
5 /*  specification file(s). For more information please refer to the Azure RTOS */
6 /*  GUIX Studio User Guide, or visit our web site at azure.com/rtos            */
7 /*                                                                             */
8 /*  GUIX Studio Revision 6.1.12.0                                              */
9 /*  Date (dd.mm.yyyy): 25. 8.2022   Time (hh:mm): 18:22                        */
10 /*******************************************************************************/
11 
12 
13 #ifndef _DEMO_GUIX_INDUSTRIAL_SPECIFICATIONS_H_
14 #define _DEMO_GUIX_INDUSTRIAL_SPECIFICATIONS_H_
15 
16 #include "gx_api.h"
17 
18 /* Determine if C++ compiler is being used, if so use standard C.              */
19 #ifdef __cplusplus
20 extern   "C" {
21 #endif
22 
23 /* Define widget ids                                                           */
24 
25 #define ID_COMPLETE_WINDOW 1
26 #define ID_SEQUENCE_WINDOW 2
27 #define ID_AUXILIARY 3
28 #define ID_PALLET_FRICTION 4
29 #define ID_UNIT_SET 5
30 #define ID_MAIN_SCREEN 6
31 #define ID_ON_OFF 7
32 #define ID_INSPECTING 8
33 #define ID_PALLETIZING 9
34 #define ID_WELDING 10
35 #define ID_ASSEMBLING 11
36 #define ID_START_WINDOW 12
37 #define ID_START 13
38 
39 
40 /* Define animation ids                                                        */
41 
42 #define ANI_ID_COMPLETE_WIN_FADE_IN 1
43 #define ANI_ID_COMPLETE_WIN_FADE_OUT 2
44 #define ANI_ID_MODE_WIN_SLIDE_IN 3
45 #define ANI_ID_SEQ_WIN_FADE_IN 4
46 #define ANI_ID_SEQ_WIN_FADE_OUT 5
47 #define ANI_ID_SPEED_WIN_FADE_IN 6
48 #define ANI_ID_START_BTN_SLIDE_IN 7
49 #define ANI_ID_START_BTN_SLIDE_OUT 8
50 #define ANI_ID_TIMER_WIN_SLIDE_IN 9
51 #define GX_NEXT_ANIMATION_ID 10
52 
53 
54 /* Define user event ids                                                       */
55 
56 enum user_defined_events{
57     USER_EVENT_SEQ_WIN_FADE_IN = GX_FIRST_USER_EVENT,
58     USER_EVENT_SEQ_WIN_FADE_OUT,
59     USER_EVENT_COMPLETE_WIN_FADE_IN,
60     USER_EVENT_COMPLETE_WIN_FADE_OUT,
61     USER_EVENT_START_WIN_FADE_OUT,
62     USER_EVENT_START_WIN_FADE_IN,
63     GX_NEXT_USER_EVENT_ID
64 };
65 
66 #define GX_ACTION_FLAG_DYNAMIC_TARGET 0x01
67 #define GX_ACTION_FLAG_DYNAMIC_PARENT 0x02
68 #define GX_ACTION_FLAG_POP_TARGET     0x04
69 #define GX_ACTION_FLAG_POP_PARENT     0x08
70 
71 typedef struct GX_STUDIO_ACTION_STRUCT
72 {
73     GX_UBYTE opcode;
74     GX_UBYTE flags;
75     GX_CONST VOID *parent;
76     GX_CONST VOID *target;
77     GX_CONST GX_ANIMATION_INFO  *animation;
78 } GX_STUDIO_ACTION;
79 
80 typedef struct GX_STUDIO_EVENT_ENTRY_STRUCT
81 {
82     ULONG event_type;
83     USHORT event_sender;
84     GX_CONST GX_STUDIO_ACTION *action_list;
85 } GX_STUDIO_EVENT_ENTRY;
86 
87 typedef struct GX_STUDIO_EVENT_PROCESS_STRUCT
88 {
89     GX_CONST GX_STUDIO_EVENT_ENTRY *event_table;
90     UINT (*chain_event_handler)(GX_WIDGET *, GX_EVENT *);
91 } GX_STUDIO_EVENT_PROCESS;
92 
93 /* Declare properties structures for each utilized widget type                 */
94 
95 typedef struct GX_STUDIO_WIDGET_STRUCT
96 {
97    GX_CHAR *widget_name;
98    USHORT  widget_type;
99    USHORT  widget_id;
100    #if defined(GX_WIDGET_USER_DATA)
101    INT   user_data;
102    #endif
103    ULONG style;
104    ULONG status;
105    ULONG control_block_size;
106    GX_RESOURCE_ID normal_fill_color_id;
107    GX_RESOURCE_ID selected_fill_color_id;
108    GX_RESOURCE_ID disabled_fill_color_id;
109    UINT (*create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
110    void (*draw_function) (GX_WIDGET *);
111    UINT (*event_function) (GX_WIDGET *, GX_EVENT *);
112    GX_RECTANGLE size;
113    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *next_widget;
114    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *child_widget;
115    ULONG control_block_offset;
116    GX_CONST void *properties;
117 } GX_STUDIO_WIDGET;
118 
119 typedef struct
120 {
121     GX_CONST GX_STUDIO_WIDGET *widget_information;
122     GX_WIDGET        *widget;
123 } GX_STUDIO_WIDGET_ENTRY;
124 
125 typedef struct
126 {
127     GX_RESOURCE_ID normal_pixelmap_id;
128     GX_RESOURCE_ID selected_pixelmap_id;
129     GX_RESOURCE_ID disabled_pixelmap_id;
130 } GX_PIXELMAP_BUTTON_PROPERTIES;
131 
132 typedef struct
133 {
134     GX_RESOURCE_ID normal_pixelmap_id;
135     GX_RESOURCE_ID selected_pixelmap_id;
136 } GX_ICON_PROPERTIES;
137 
138 typedef struct
139 {
140     GX_SPRITE_FRAME *frame_list;
141     USHORT           frame_count;
142 } GX_SPRITE_PROPERTIES;
143 
144 typedef struct
145 {
146     GX_RESOURCE_ID string_id;
147     GX_RESOURCE_ID font_id;
148     GX_RESOURCE_ID normal_text_color_id;
149     GX_RESOURCE_ID selected_text_color_id;
150     GX_RESOURCE_ID disabled_text_color_id;
151 } GX_PROMPT_PROPERTIES;
152 
153 typedef struct
154 {
155     GX_RESOURCE_ID string_id;
156     GX_RESOURCE_ID font_id;
157     GX_RESOURCE_ID normal_text_color_id;
158     GX_RESOURCE_ID selected_text_color_id;
159     GX_RESOURCE_ID disabled_text_color_id;
160     VOID (*format_func)(GX_NUMERIC_PROMPT *, INT);
161     INT            numeric_prompt_value;
162 } GX_NUMERIC_PROMPT_PROPERTIES;
163 
164 typedef struct
165 {
166     GX_RESOURCE_ID wallpaper_id;
167 } GX_WINDOW_PROPERTIES;
168 
169 
170 /* Declare top-level control blocks                                            */
171 
172 typedef struct SEQUENCE_NUMBER_CONTROL_BLOCK_STRUCT
173 {
174     GX_WINDOW_MEMBERS_DECLARE
175     GX_PROMPT sequence_number_prompt_18_2;
176     GX_PROMPT sequence_number_prompt_18_3;
177 } SEQUENCE_NUMBER_CONTROL_BLOCK;
178 
179 typedef struct COMPLETE_WINDOW_CONTROL_BLOCK_STRUCT
180 {
181     GX_WINDOW_MEMBERS_DECLARE
182     GX_ICON complete_window_icon_12_2;
183     GX_PROMPT complete_window_prompt_17_7;
184     GX_PROMPT complete_window_prompt_17;
185     GX_PROMPT complete_window_prompt_17_2;
186     GX_PROMPT complete_window_prompt_17_3;
187     GX_PROMPT complete_window_prompt_17_4;
188     GX_NUMERIC_PROMPT complete_window_countdown;
189     GX_ICON complete_window_icon_13_2;
190 } COMPLETE_WINDOW_CONTROL_BLOCK;
191 
192 typedef struct SEQUENCE_WINDOW_CONTROL_BLOCK_STRUCT
193 {
194     GX_WINDOW_MEMBERS_DECLARE
195     GX_WINDOW sequence_window_window_progress;
196     GX_PROGRESS_BAR sequence_window_bottom_progress;
197     GX_PROMPT sequence_window_prompt_7;
198     GX_PROMPT sequence_window_progress_1_title;
199     GX_PROMPT sequence_window_progress_2_title;
200     GX_PROMPT sequence_window_progress_3_title;
201     GX_PROMPT sequence_window_progress_4_title;
202     GX_PROGRESS_BAR sequence_window_progress_1;
203     GX_PROGRESS_BAR sequence_window_progress_2;
204     GX_PROGRESS_BAR sequence_window_progress_3;
205     GX_PROGRESS_BAR sequence_window_progress_4;
206     GX_ICON sequence_window_complete_icon_1;
207     GX_ICON sequence_window_complete_icon_2;
208     GX_ICON sequence_window_complete_icon_3;
209     GX_ICON sequence_window_complete_icon_4;
210     GX_WINDOW sequence_window_window_mode;
211     GX_PROMPT sequence_window_prompt_15_5;
212     GX_PROMPT sequence_window_prompt_15_6;
213     GX_PROMPT sequence_window_prompt_15_7;
214     GX_PROMPT sequence_window_prompt_15_8;
215     GX_PROMPT sequence_window_prompt_15_10_1;
216     GX_PROMPT sequence_window_prompt_15_11_5;
217     GX_RADIAL_PROGRESS_BAR sequence_window_radial_progress_speed;
218     GX_NUMERIC_PROMPT sequence_window_prompt_SX;
219     GX_NUMERIC_PROMPT sequence_window_prompt_SY;
220     GX_WINDOW sequence_window_window_rotation_angle;
221     GX_PROMPT sequence_window_prompt_15_13_2;
222     GX_PROMPT sequence_window_prompt_15_14_2;
223     GX_PROMPT sequence_window_prompt_15_15_2;
224     GX_RADIAL_PROGRESS_BAR sequence_window_radial_progress_rotation;
225     GX_NUMERIC_PROMPT sequence_window_prompt_RY;
226     GX_NUMERIC_PROMPT sequence_window_prompt_RX;
227     GX_PROMPT sequence_window_prompt_15_11_2;
228     GX_PROMPT sequence_window_prompt_15_11;
229     GX_WINDOW sequence_window_window_force_sensor;
230     GX_PROMPT sequence_window_prompt_15_13;
231     GX_PROMPT sequence_window_prompt_15_14;
232     GX_PROMPT sequence_window_prompt_15_15;
233     GX_NUMERIC_PROMPT sequence_window_prompt_DN;
234     GX_NUMERIC_PROMPT sequence_window_prompt_UP;
235     GX_PROMPT sequence_window_prompt_15_11_1;
236     GX_PROMPT sequence_window_prompt_15_11_3;
237     GX_RADIAL_PROGRESS_BAR sequence_window_radial_progress_force;
238     GX_NUMERIC_PROMPT sequence_window_progress_1_value;
239     GX_NUMERIC_PROMPT sequence_window_progress_2_value;
240     GX_NUMERIC_PROMPT sequence_window_progress_3_value;
241     GX_NUMERIC_PROMPT sequence_window_progress_4_value;
242     GX_ICON sequence_window_timer_icon;
243     GX_PROMPT sequence_window_overall_label;
244     GX_NUMERIC_PROMPT sequence_window_timer_tick;
245     GX_NUMERIC_PROMPT sequence_window_timer_minute;
246     GX_NUMERIC_PROMPT sequence_window_timer_second;
247     GX_PROMPT sequence_window_timer_colon;
248     GX_PROMPT sequence_window_timer_dot;
249     GX_ICON sequence_window_task_icon;
250     GX_PROMPT sequence_window_task_title;
251     GX_NUMERIC_PROMPT sequence_window_bottom_progress_value;
252     GX_WINDOW sequence_window_sprite_window;
253     GX_PROMPT sequence_window_prompt_X_label;
254     GX_NUMERIC_PROMPT sequence_window_prompt_X;
255     GX_PROMPT sequence_window_prompt_15_16_11;
256     GX_PROMPT sequence_window_prompt_Y_label;
257     GX_NUMERIC_PROMPT sequence_window_prompt_Y;
258     GX_PROMPT sequence_window_prompt_15_16_10_1;
259     GX_PROMPT sequence_window_prompt_Z_label;
260     GX_NUMERIC_PROMPT sequence_window_prompt_Z;
261     GX_PROMPT sequence_window_prompt_15_16_14;
262     GX_SPRITE sequence_window_sprite;
263     GX_PROMPT sequence_window_progress_1_percent_flag;
264     GX_PROMPT sequence_window_progress_2_percent_flag;
265     GX_PROMPT sequence_window_progress_3_percent_flag;
266     GX_PROMPT sequence_window_progress_4_percent_flag;
267 } SEQUENCE_WINDOW_CONTROL_BLOCK;
268 
269 typedef struct MAIN_SCREEN_CONTROL_BLOCK_STRUCT
270 {
271     GX_WINDOW_MEMBERS_DECLARE
272     GX_PIXELMAP_BUTTON main_screen_button_home;
273     GX_ICON main_screen_expresslogic_label;
274     GX_PIXELMAP_BUTTON main_screen_button_on_off;
275     GX_PROMPT main_screen_prompt_on_off;
276     GX_ICON main_screen_icon_9;
277     GX_WINDOW main_screen_button_window;
278     GX_PIXELMAP_BUTTON main_screen_button_inspecting;
279     GX_PROMPT main_screen_prompt_14_4;
280     GX_ICON main_screen_icon;
281     GX_PIXELMAP_BUTTON main_screen_button_palletizing;
282     GX_PROMPT main_screen_prompt_14;
283     GX_ICON main_screen_icon_1;
284     GX_ICON main_screen_button_indicator_dot;
285     GX_PIXELMAP_BUTTON main_screen_button_welding;
286     GX_PROMPT main_screen_prompt_14_3;
287     GX_ICON main_screen_icon_2;
288     GX_PIXELMAP_BUTTON main_screen_button_assembling;
289     GX_PROMPT main_screen_prompt_14_2;
290     GX_ICON main_screen_icon_3;
291     GX_WINDOW main_screen_start_window;
292     GX_PIXELMAP_BUTTON main_screen_button_start;
293     GX_ICON main_screen_icon_robot;
294     GX_PROMPT main_screen_prompt_initiate;
295     GX_PROMPT main_screen_prompt_Start;
296     GX_WINDOW main_screen_window_mode;
297     GX_PROMPT main_screen_prompt_3;
298     GX_PIXELMAP_BUTTON main_screen_pixelmap_button_2;
299     GX_PROMPT main_screen_prompt_4;
300     GX_PIXELMAP_BUTTON main_screen_pixelmap_button_3;
301     GX_PROMPT main_screen_prompt_5;
302     GX_PIXELMAP_BUTTON main_screen_pixelmap_button_4;
303     GX_PROMPT main_screen_prompt_6;
304     GX_WINDOW main_screen_window_speed;
305     GX_PROMPT main_screen_prompt;
306     GX_PIXELMAP_BUTTON main_screen_pixelmap_button;
307     GX_PROMPT main_screen_prompt_1;
308     GX_PIXELMAP_BUTTON main_screen_pixelmap_button_1;
309     GX_PROMPT main_screen_prompt_2;
310     GX_PIXELMAP_BUTTON main_screen_pixelmap_button_10;
311     GX_PROMPT main_screen_prompt_10;
312     GX_WINDOW main_screen_window_timer;
313     GX_PROMPT main_screen_prompt_11;
314     GX_PIXELMAP_BUTTON main_screen_pixelmap_button_11;
315     GX_PROMPT main_screen_prompt_12;
316     GX_PIXELMAP_BUTTON main_screen_pixelmap_button_12;
317     GX_PROMPT main_screen_prompt_13;
318     GX_PROMPT main_screen_prompt_initiate_1;
319 } MAIN_SCREEN_CONTROL_BLOCK;
320 
321 
322 /* extern statically defined control blocks                                    */
323 
324 #ifndef GUIX_STUDIO_GENERATED_FILE
325 extern SEQUENCE_NUMBER_CONTROL_BLOCK sequence_number;
326 extern COMPLETE_WINDOW_CONTROL_BLOCK complete_window;
327 extern SEQUENCE_WINDOW_CONTROL_BLOCK sequence_window;
328 extern MAIN_SCREEN_CONTROL_BLOCK main_screen;
329 #endif
330 
331 /* Declare event process functions, draw functions, and callback functions     */
332 
333 UINT complete_window_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
334 UINT sequence_window_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
335 VOID mode_value_format(GX_NUMERIC_PROMPT *, INT);
336 VOID timer_value_format(GX_NUMERIC_PROMPT *, INT);
337 VOID task_icon_draw(GX_ICON *widget);
338 VOID task_title_draw(GX_PROMPT *widget);
339 VOID position_value_format(GX_NUMERIC_PROMPT *, INT);
340 UINT main_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
341 VOID main_screen_draw(GX_WINDOW *widget);
342 VOID mode_button_draw(GX_PIXELMAP_BUTTON *widget);
343 
344 /* Declare the GX_STUDIO_DISPLAY_INFO structure                                */
345 
346 
347 typedef struct GX_STUDIO_DISPLAY_INFO_STRUCT
348 {
349     GX_CONST GX_CHAR *name;
350     GX_CONST GX_CHAR *canvas_name;
351     GX_CONST GX_THEME **theme_table;
352     GX_CONST GX_STRING **language_table;
353     USHORT   theme_table_size;
354     USHORT   language_table_size;
355     UINT     string_table_size;
356     UINT     x_resolution;
357     UINT     y_resolution;
358     GX_DISPLAY *display;
359     GX_CANVAS  *canvas;
360     GX_WINDOW_ROOT *root_window;
361     GX_COLOR   *canvas_memory;
362     ULONG      canvas_memory_size;
363     USHORT     rotation_angle;
364 } GX_STUDIO_DISPLAY_INFO;
365 
366 
367 /* Declare Studio-generated functions for creating top-level widgets           */
368 
369 UINT gx_studio_pixelmap_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
370 UINT gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
371 UINT gx_studio_progress_bar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
372 UINT gx_studio_radial_progress_bar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
373 UINT gx_studio_sprite_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
374 UINT gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
375 UINT gx_studio_numeric_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
376 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
377 GX_WIDGET *gx_studio_widget_create(GX_BYTE *storage, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent);
378 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget);
379 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *), GX_UBYTE language, USHORT theme, GX_WINDOW_ROOT **return_root);
380 UINT gx_studio_auto_event_handler(GX_WIDGET *widget, GX_EVENT *event_ptr, GX_CONST GX_STUDIO_EVENT_PROCESS *record);
381 
382 /* Determine if a C++ compiler is being used.  If so, complete the standard
383   C conditional started above.                                                 */
384 #ifdef __cplusplus
385 }
386 #endif
387 
388 #endif                                       /* sentry                         */
389