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:23                        */
10 /*******************************************************************************/
11 
12 
13 #ifndef _GUIX_SMART_WATCH_SPECIFICATIONS_H_
14 #define _GUIX_SMART_WATCH_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_HOME_BUTTON 1
26 #define ID_PAGE_3_CONTAINER_SCREEN 2
27 #define ID_PAGE_2_CONTAINER_SCREEN 3
28 #define ID_PAGE_1_CONTAINER_SCREEN 4
29 #define ID_CALORIE_BUTTON 5
30 #define ID_RUNNING_BUTTON 6
31 #define ID_EKG_BUTTON 7
32 #define ID_BELL_BUTTON 8
33 #define ID_PLAY_BUTTON 9
34 #define ID_REVERSE_BUTTON 10
35 #define ID_FORWARD_BUTTON 11
36 #define ID_SAN_FRANCISCO_SCREEN 12
37 #define ID_LOS_ANGELES_SCREEN 13
38 #define ID_SAN_DIEGO_SCREEN 14
39 #define ID_TEMPLATE 15
40 #define ID_SCREEN_TEMPLATE 16
41 #define ID_STAND_SCREEN 17
42 #define ID_RUN_SCREEN 18
43 #define ID_CALORIES_SCREEN 19
44 #define ID_STANDING_BUTTON 20
45 #define ID_CLOCK_2_SCREEN 21
46 #define ID_CLOCK_1_SCREEN 22
47 
48 
49 /* Define animation ids                                                        */
50 
51 #define GX_NEXT_ANIMATION_ID 1
52 
53 
54 /* Define user event ids                                                       */
55 
56 #define GX_NEXT_USER_EVENT_ID GX_FIRST_USER_EVENT
57 
58 
59 /* Declare properties structures for each utilized widget type                 */
60 
61 typedef struct GX_STUDIO_WIDGET_STRUCT
62 {
63    GX_CHAR *widget_name;
64    USHORT  widget_type;
65    USHORT  widget_id;
66    #if defined(GX_WIDGET_USER_DATA)
67    INT   user_data;
68    #endif
69    ULONG style;
70    ULONG status;
71    ULONG control_block_size;
72    GX_RESOURCE_ID normal_fill_color_id;
73    GX_RESOURCE_ID selected_fill_color_id;
74    GX_RESOURCE_ID disabled_fill_color_id;
75    UINT (*create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
76    void (*draw_function) (GX_WIDGET *);
77    UINT (*event_function) (GX_WIDGET *, GX_EVENT *);
78    GX_RECTANGLE size;
79    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *next_widget;
80    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *child_widget;
81    ULONG control_block_offset;
82    GX_CONST void *properties;
83 } GX_STUDIO_WIDGET;
84 
85 typedef struct
86 {
87     GX_CONST GX_STUDIO_WIDGET *widget_information;
88     GX_WIDGET        *widget;
89 } GX_STUDIO_WIDGET_ENTRY;
90 
91 typedef struct
92 {
93     GX_RESOURCE_ID normal_pixelmap_id;
94     GX_RESOURCE_ID selected_pixelmap_id;
95     GX_RESOURCE_ID disabled_pixelmap_id;
96 } GX_PIXELMAP_BUTTON_PROPERTIES;
97 
98 typedef struct
99 {
100     GX_RESOURCE_ID normal_pixelmap_id;
101     GX_RESOURCE_ID selected_pixelmap_id;
102 } GX_ICON_PROPERTIES;
103 
104 typedef struct
105 {
106     GX_SPRITE_FRAME *frame_list;
107     USHORT           frame_count;
108 } GX_SPRITE_PROPERTIES;
109 
110 typedef struct
111 {
112     GX_RESOURCE_ID string_id;
113     GX_RESOURCE_ID font_id;
114     GX_RESOURCE_ID normal_text_color_id;
115     GX_RESOURCE_ID selected_text_color_id;
116     GX_RESOURCE_ID disabled_text_color_id;
117 } GX_PROMPT_PROPERTIES;
118 
119 typedef struct
120 {
121     GX_RESOURCE_ID string_id;
122     GX_RESOURCE_ID font_id;
123     GX_RESOURCE_ID normal_text_color_id;
124     GX_RESOURCE_ID selected_text_color_id;
125     GX_RESOURCE_ID disabled_text_color_id;
126     VOID (*format_func)(GX_NUMERIC_PROMPT *, INT);
127     INT            numeric_prompt_value;
128 } GX_NUMERIC_PROMPT_PROPERTIES;
129 
130 typedef struct
131 {
132     GX_RESOURCE_ID wallpaper_id;
133 } GX_WINDOW_PROPERTIES;
134 
135 typedef struct
136 {
137     GX_RESOURCE_ID string_id;
138     GX_RESOURCE_ID font_id;
139     GX_RESOURCE_ID normal_text_color_id;
140     GX_RESOURCE_ID selected_text_color_id;
141     GX_RESOURCE_ID disabled_text_color_id;
142     GX_UBYTE       whitespace;
143     GX_BYTE        line_space;
144 } GX_ML_TEXT_VIEW_PROPERTIES;
145 
146 typedef struct
147 {
148     GX_VALUE start_angle;
149     GX_VALUE animation_steps;
150     GX_VALUE animation_delay;
151     GX_VALUE needle_xpos;
152     GX_VALUE needle_ypos;
153     GX_VALUE needle_xcor;
154     GX_VALUE needle_ycor;
155     GX_RESOURCE_ID normal_pixelmap_id;
156     GX_RESOURCE_ID selected_pixelmap_id;
157     GX_RESOURCE_ID needle_pixelmap_id;
158 } GX_CIRCULAR_GAUGE_PROPERTIES;
159 
160 typedef struct
161 {
162    GX_CONST GX_STUDIO_WIDGET *base_info;
163    UINT (*base_create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
164    GX_RECTANGLE size;
165 } GX_TEMPLATE_PROPERTIES;
166 
167 
168 /* Declare top-level control blocks                                            */
169 
170 typedef struct SCREEN_SLIDE_PARENT_CONTROL_BLOCK_STRUCT
171 {
172     GX_WINDOW_MEMBERS_DECLARE
173 } SCREEN_SLIDE_PARENT_CONTROL_BLOCK;
174 
175 typedef struct HOME_BUTTON_CONTROL_BLOCK_STRUCT
176 {
177     GX_PIXELMAP_BUTTON_MEMBERS_DECLARE
178 } HOME_BUTTON_CONTROL_BLOCK;
179 
180 typedef struct PAGE_3_CONTAINER_SCREEN_CONTROL_BLOCK_STRUCT
181 {
182     GX_WINDOW_MEMBERS_DECLARE
183 } PAGE_3_CONTAINER_SCREEN_CONTROL_BLOCK;
184 
185 typedef struct PAGE_2_CONTAINER_SCREEN_CONTROL_BLOCK_STRUCT
186 {
187     GX_WINDOW_MEMBERS_DECLARE
188 } PAGE_2_CONTAINER_SCREEN_CONTROL_BLOCK;
189 
190 typedef struct PAGE_1_CONTAINER_SCREEN_CONTROL_BLOCK_STRUCT
191 {
192     GX_WINDOW_MEMBERS_DECLARE
193 } PAGE_1_CONTAINER_SCREEN_CONTROL_BLOCK;
194 
195 typedef struct MAIN_SCREEN_CONTROL_BLOCK_STRUCT
196 {
197     GX_WINDOW_MEMBERS_DECLARE
198 } MAIN_SCREEN_CONTROL_BLOCK;
199 
200 typedef struct WEATHER_SCREEN_CONTROL_BLOCK_STRUCT
201 {
202     GX_WINDOW_MEMBERS_DECLARE
203     GX_BUTTON weather_screen_calorie_button;
204     GX_RADIAL_PROGRESS_BAR weather_screen_calorie_burned_progress;
205     GX_ICON weather_screen_calorie_icon;
206     GX_NUMERIC_PROMPT weather_screen_calorie_burned_progress_val;
207     GX_PROMPT weather_screen_prompt;
208     GX_BUTTON weather_screen_running_button;
209     GX_RADIAL_PROGRESS_BAR weather_screen_running_progress;
210     GX_ICON weather_screen_icon_5;
211     GX_NUMERIC_PROMPT weather_screen_running_progress_val;
212     GX_PROMPT weather_screen_prompt_9;
213     GX_BUTTON weather_screen_ekg_button;
214     GX_RADIAL_PROGRESS_BAR weather_screen_ekg_progress;
215     GX_ICON weather_screen_icon_6;
216     GX_NUMERIC_PROMPT weather_screen_ekg_progress_val;
217     GX_PROMPT weather_screen_prompt_11;
218     GX_WINDOW weather_screen_window;
219     GX_ICON weather_screen_weather_icon;
220     GX_NUMERIC_PROMPT weather_screen_temperature_val;
221     GX_PROMPT weather_screen_prompt_1;
222     GX_PROMPT weather_screen_day_of_week;
223     GX_PROMPT weather_screen_date;
224     GX_PROMPT weather_screen_city;
225     GX_PROMPT weather_screen_second;
226     GX_NUMERIC_PROMPT weather_screen_hour;
227     GX_NUMERIC_PROMPT weather_screen_minute;
228     GX_PROMPT weather_screen_am_pm;
229     GX_PIXELMAP_BUTTON weather_screen_bell_button;
230     GX_PROMPT weather_screen_singer;
231     GX_PROMPT weather_screen_song;
232     GX_RADIAL_PROGRESS_BAR weather_screen_music_play_progress;
233     GX_PIXELMAP_BUTTON weather_screen_play_button;
234 } WEATHER_SCREEN_CONTROL_BLOCK;
235 
236 typedef struct CLOCK_SCREEN_TEMPLATE_CONTROL_BLOCK_STRUCT
237 {
238     GX_WINDOW_MEMBERS_DECLARE
239     GX_CIRCULAR_GAUGE clock_screen_template_gauge;
240 } CLOCK_SCREEN_TEMPLATE_CONTROL_BLOCK;
241 
242 typedef struct MESSAGE_TEMPLATE_CONTROL_BLOCK_STRUCT
243 {
244     GX_WINDOW_MEMBERS_DECLARE
245     GX_WINDOW message_template_message_bar;
246     GX_PROMPT message_template_second;
247     GX_NUMERIC_PROMPT message_template_hour;
248     GX_NUMERIC_PROMPT message_template_minute;
249     GX_PROMPT message_template_am_pm;
250     GX_PROMPT message_template_day_of_week;
251     GX_PROMPT message_template_comma;
252     GX_MULTI_LINE_TEXT_VIEW message_template_text_view;
253 } MESSAGE_TEMPLATE_CONTROL_BLOCK;
254 
255 typedef struct WEATHER_INFO_TEMPLATE_CONTROL_BLOCK_STRUCT
256 {
257     GX_WINDOW_MEMBERS_DECLARE
258     GX_PROMPT weather_info_template_day_of_week;
259     GX_PROMPT weather_info_template_prompt_6;
260     GX_ICON weather_info_template_weather_icon;
261     GX_NUMERIC_PROMPT weather_info_template_high_temperature;
262     GX_NUMERIC_PROMPT weather_info_template_low_temperature;
263     GX_PROMPT weather_info_template_prompt_1;
264 } WEATHER_INFO_TEMPLATE_CONTROL_BLOCK;
265 
266 typedef struct SCREEN_TEMPLATE_CONTROL_BLOCK_STRUCT
267 {
268     GX_WINDOW_MEMBERS_DECLARE
269     GX_WINDOW screen_template_title_bar;
270     GX_PROMPT screen_template_title;
271     GX_NUMERIC_PROMPT screen_template_hour;
272     GX_NUMERIC_PROMPT screen_template_minute;
273     GX_PROMPT screen_template_second;
274     GX_ICON screen_template_icon;
275 } SCREEN_TEMPLATE_CONTROL_BLOCK;
276 
277 typedef struct EKG_SCREEN_CONTROL_BLOCK_STRUCT
278 {
279     SCREEN_TEMPLATE_CONTROL_BLOCK base;
280     GX_RADIAL_PROGRESS_BAR ekg_screen_progress;
281     GX_NUMERIC_PROMPT ekg_screen_systole_blood_pressure;
282     GX_ICON ekg_screen_heart_icon;
283     GX_NUMERIC_PROMPT ekg_screen_diastole_blood_pressure;
284     GX_PROMPT ekg_screen_prompt_21;
285     GX_PROMPT ekg_screen_prompt_21_1;
286     GX_ICON ekg_screen_icon_21;
287     GX_NUMERIC_PROMPT ekg_screen_heart_rate;
288     GX_PROMPT ekg_screen_prompt_20;
289 } EKG_SCREEN_CONTROL_BLOCK;
290 
291 typedef struct YOGA_SCREEN_CONTROL_BLOCK_STRUCT
292 {
293     SCREEN_TEMPLATE_CONTROL_BLOCK base;
294     GX_RADIAL_PROGRESS_BAR yoga_screen_progress;
295     GX_NUMERIC_PROMPT yoga_screen_calories_burned;
296     GX_ICON yoga_screen_divide_line;
297     GX_ICON yoga_screen_yoga_icon;
298     GX_PROMPT yoga_screen_prompt_22;
299     GX_NUMERIC_PROMPT yoga_screen_yoga_minute;
300     GX_NUMERIC_PROMPT yoga_screen_yoga_hour;
301     GX_PROMPT yoga_screen_calorie_label;
302     GX_ICON yoga_screen_calorie_icon;
303     GX_ICON yoga_screen_icon_18;
304     GX_NUMERIC_PROMPT yoga_screen_progress_val;
305     GX_PROMPT yoga_screen_prompt_18;
306 } YOGA_SCREEN_CONTROL_BLOCK;
307 
308 typedef struct STAND_SCREEN_CONTROL_BLOCK_STRUCT
309 {
310     SCREEN_TEMPLATE_CONTROL_BLOCK base;
311     GX_RADIAL_PROGRESS_BAR stand_screen_progress;
312     GX_ICON stand_screen_divide_line;
313     GX_ICON stand_screen_stand_icon;
314     GX_PROMPT stand_screen_min_label;
315     GX_ICON stand_screen_clock_icon;
316     GX_NUMERIC_PROMPT stand_screen_stand_minute_target;
317     GX_PROMPT stand_screen_prompt_22;
318     GX_NUMERIC_PROMPT stand_screen_stand_hour_target;
319     GX_ICON stand_screen_icon_8;
320     GX_NUMERIC_PROMPT stand_screen_stand_hour;
321     GX_NUMERIC_PROMPT stand_screen_stand_minute;
322     GX_ICON stand_screen_icon;
323     GX_ICON stand_screen_icon_15;
324     GX_NUMERIC_PROMPT stand_screen_progress_val;
325     GX_PROMPT stand_screen_prompt_16;
326 } STAND_SCREEN_CONTROL_BLOCK;
327 
328 typedef struct RUN_SCREEN_CONTROL_BLOCK_STRUCT
329 {
330     SCREEN_TEMPLATE_CONTROL_BLOCK base;
331     GX_RADIAL_PROGRESS_BAR run_screen_progress;
332     GX_NUMERIC_PROMPT run_screen_running_distance;
333     GX_NUMERIC_PROMPT run_screen_running_minutes;
334     GX_ICON run_screen_divide_line;
335     GX_ICON run_screen_running_icon;
336     GX_NUMERIC_PROMPT run_screen_running_seconds;
337     GX_PROMPT run_screen_second_label;
338     GX_ICON run_screen_distance_icon;
339     GX_PROMPT run_screen_mile_label;
340     GX_NUMERIC_PROMPT run_screen_running_distance_fraction_part;
341     GX_ICON run_screen_icon_8;
342     GX_ICON run_screen_icon_12;
343     GX_NUMERIC_PROMPT run_screen_progress_val;
344     GX_PROMPT run_screen_prompt_14;
345 } RUN_SCREEN_CONTROL_BLOCK;
346 
347 typedef struct CALORIES_SCREEN_CONTROL_BLOCK_STRUCT
348 {
349     SCREEN_TEMPLATE_CONTROL_BLOCK base;
350     GX_RADIAL_PROGRESS_BAR calories_screen_progress;
351     GX_NUMERIC_PROMPT calories_screen_calories_burned;
352     GX_NUMERIC_PROMPT calories_screen_calories_burned_target;
353     GX_ICON calories_screen_divide_line;
354     GX_ICON calories_screen_calories_icon;
355     GX_ICON calories_screen_icon_7;
356     GX_NUMERIC_PROMPT calories_screen_progress_val;
357     GX_PROMPT calories_screen_percent_label;
358 } CALORIES_SCREEN_CONTROL_BLOCK;
359 
360 typedef struct FITNESS_SCREEN_CONTROL_BLOCK_STRUCT
361 {
362     SCREEN_TEMPLATE_CONTROL_BLOCK base;
363     GX_ICON fitness_screen_icon;
364     GX_ICON fitness_screen_icon_1;
365     GX_ICON fitness_screen_icon_2;
366     GX_ICON fitness_screen_icon_3;
367     GX_NUMERIC_PROMPT fitness_screen_running_steps;
368     GX_NUMERIC_PROMPT fitness_screen_running_distance;
369     GX_NUMERIC_PROMPT fitness_screen_prompt_3;
370     GX_PROMPT fitness_screen_prompt_4;
371     GX_PROMPT fitness_screen_prompt_5;
372     GX_PROMPT fitness_screen_prompt_2;
373     GX_ICON fitness_screen_ekd_dot_guide_bg;
374     GX_ICON fitness_screen_ekg_dot_icon;
375     GX_WINDOW fitness_screen_ekg_waveform_win;
376     GX_BUTTON fitness_screen_calorie_button;
377     GX_RADIAL_PROGRESS_BAR fitness_screen_calorie_burned_progress;
378     GX_ICON fitness_screen_calorie_icon;
379     GX_NUMERIC_PROMPT fitness_screen_calorie_burned_progress_val;
380     GX_PROMPT fitness_screen_prompt_7;
381     GX_BUTTON fitness_screen_standing_button;
382     GX_RADIAL_PROGRESS_BAR fitness_screen_standing_progress;
383     GX_ICON fitness_screen_icon_6;
384     GX_NUMERIC_PROMPT fitness_screen_standing_progress_val;
385     GX_PROMPT fitness_screen_prompt_11;
386     GX_BUTTON fitness_screen_running_button;
387     GX_RADIAL_PROGRESS_BAR fitness_screen_running_progress;
388     GX_ICON fitness_screen_icon_5;
389     GX_NUMERIC_PROMPT fitness_screen_running_progress_val;
390     GX_PROMPT fitness_screen_prompt_9;
391 } FITNESS_SCREEN_CONTROL_BLOCK;
392 
393 typedef struct CLOCK_2_SCREEN_CONTROL_BLOCK_STRUCT
394 {
395     CLOCK_SCREEN_TEMPLATE_CONTROL_BLOCK base;
396 } CLOCK_2_SCREEN_CONTROL_BLOCK;
397 
398 typedef struct CLOCK_1_SCREEN_CONTROL_BLOCK_STRUCT
399 {
400     CLOCK_SCREEN_TEMPLATE_CONTROL_BLOCK base;
401 } CLOCK_1_SCREEN_CONTROL_BLOCK;
402 
403 typedef struct CLOCK_5_SCREEN_CONTROL_BLOCK_STRUCT
404 {
405     GX_WINDOW_MEMBERS_DECLARE
406     GX_NUMERIC_PROMPT clock_5_screen_hour;
407     GX_NUMERIC_PROMPT clock_5_screen_minute;
408 } CLOCK_5_SCREEN_CONTROL_BLOCK;
409 
410 typedef struct CLOCK_3_SCREEN_CONTROL_BLOCK_STRUCT
411 {
412     GX_WINDOW_MEMBERS_DECLARE
413     GX_NUMERIC_PROMPT clock_3_screen_hour;
414     GX_NUMERIC_PROMPT clock_3_screen_minute;
415 } CLOCK_3_SCREEN_CONTROL_BLOCK;
416 
417 typedef struct CLOCK_4_SCREEN_CONTROL_BLOCK_STRUCT
418 {
419     GX_WINDOW_MEMBERS_DECLARE
420     GX_NUMERIC_PROMPT clock_4_screen_hour;
421     GX_NUMERIC_PROMPT clock_4_screen_minute;
422 } CLOCK_4_SCREEN_CONTROL_BLOCK;
423 
424 typedef struct HOME_SCREEN_CONTROL_BLOCK_STRUCT
425 {
426     GX_WINDOW_MEMBERS_DECLARE
427     GX_SPRITE home_screen_sprite;
428     GX_NUMERIC_PROMPT home_screen_time_hour;
429     GX_NUMERIC_PROMPT home_screen_time_minute;
430     GX_ICON home_screen_time_second_up;
431     GX_ICON home_screen_time_second_down;
432     GX_PROMPT home_screen_am_pm;
433     GX_PROMPT home_screen_day_of_week;
434     GX_PROMPT home_screen_date;
435 } HOME_SCREEN_CONTROL_BLOCK;
436 
437 typedef struct MUSIC_SCREEN_CONTROL_BLOCK_STRUCT
438 {
439     SCREEN_TEMPLATE_CONTROL_BLOCK base;
440     GX_RADIAL_PROGRESS_BAR music_screen_play_progress;
441     GX_PIXELMAP_BUTTON music_screen_play_button;
442     GX_PROMPT music_screen_singer;
443     GX_PROMPT music_screen_song;
444     GX_PIXELMAP_BUTTON music_screen_reverse_button;
445     GX_PIXELMAP_BUTTON music_screen_forward_button;
446     GX_NUMERIC_PROMPT music_screen_hour;
447     GX_NUMERIC_PROMPT music_screen_minute;
448     GX_PROMPT music_screen_second;
449     GX_WINDOW music_screen_play_mode_win;
450     GX_PIXELMAP_BUTTON music_screen_play_list_button;
451     GX_PIXELMAP_BUTTON music_screen_play_randon_button;
452     GX_PIXELMAP_BUTTON music_screen_play_repeat_button;
453 } MUSIC_SCREEN_CONTROL_BLOCK;
454 
455 typedef struct MESSAGE_SCREEN_CONTROL_BLOCK_STRUCT
456 {
457     SCREEN_TEMPLATE_CONTROL_BLOCK base;
458     GX_WINDOW message_screen_message_frame;
459     GX_SCROLLBAR message_screen_vertical_scroll_1;
460 } MESSAGE_SCREEN_CONTROL_BLOCK;
461 
462 typedef struct WEATHER_SCREEN_TEMPLATE_CONTROL_BLOCK_STRUCT
463 {
464     SCREEN_TEMPLATE_CONTROL_BLOCK base;
465     GX_WINDOW weather_screen_template_weather_frame;
466     GX_SCROLLBAR weather_screen_template_vertical_scroll;
467     WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_screen_template_day_win_7;
468     WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_screen_template_day_win_6;
469     WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_screen_template_day_win_5;
470     WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_screen_template_day_win_4;
471     WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_screen_template_day_win_3;
472     WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_screen_template_day_win_2;
473     WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_screen_template_day_win_1;
474 } WEATHER_SCREEN_TEMPLATE_CONTROL_BLOCK;
475 
476 typedef struct SANFRANCISCO_WEATHER_SCREEN_CONTROL_BLOCK_STRUCT
477 {
478     WEATHER_SCREEN_TEMPLATE_CONTROL_BLOCK base;
479 } SANFRANCISCO_WEATHER_SCREEN_CONTROL_BLOCK;
480 
481 typedef struct LOSANGELES_WEATHER_SCREEN_CONTROL_BLOCK_STRUCT
482 {
483     WEATHER_SCREEN_TEMPLATE_CONTROL_BLOCK base;
484 } LOSANGELES_WEATHER_SCREEN_CONTROL_BLOCK;
485 
486 typedef struct SANDIEGO_WEATHER_SCREEN_CONTROL_BLOCK_STRUCT
487 {
488     WEATHER_SCREEN_TEMPLATE_CONTROL_BLOCK base;
489 } SANDIEGO_WEATHER_SCREEN_CONTROL_BLOCK;
490 
491 
492 /* extern statically defined control blocks                                    */
493 
494 #ifndef GUIX_STUDIO_GENERATED_FILE
495 extern SCREEN_SLIDE_PARENT_CONTROL_BLOCK screen_slide_parent;
496 extern HOME_BUTTON_CONTROL_BLOCK home_button;
497 extern PAGE_3_CONTAINER_SCREEN_CONTROL_BLOCK page_3_container_screen;
498 extern PAGE_2_CONTAINER_SCREEN_CONTROL_BLOCK page_2_container_screen;
499 extern PAGE_1_CONTAINER_SCREEN_CONTROL_BLOCK page_1_container_screen;
500 extern MAIN_SCREEN_CONTROL_BLOCK main_screen;
501 extern WEATHER_SCREEN_CONTROL_BLOCK weather_screen;
502 extern MUSIC_SCREEN_CONTROL_BLOCK music_screen;
503 extern MESSAGE_SCREEN_CONTROL_BLOCK message_screen;
504 extern SANFRANCISCO_WEATHER_SCREEN_CONTROL_BLOCK SanFrancisco_weather_screen;
505 extern LOSANGELES_WEATHER_SCREEN_CONTROL_BLOCK LosAngeles_weather_screen;
506 extern SANDIEGO_WEATHER_SCREEN_CONTROL_BLOCK SanDiego_weather_screen;
507 extern CLOCK_SCREEN_TEMPLATE_CONTROL_BLOCK clock_screen_template;
508 extern MESSAGE_TEMPLATE_CONTROL_BLOCK message_template;
509 extern WEATHER_INFO_TEMPLATE_CONTROL_BLOCK weather_info_template;
510 extern WEATHER_SCREEN_TEMPLATE_CONTROL_BLOCK weather_screen_template;
511 extern SCREEN_TEMPLATE_CONTROL_BLOCK screen_template;
512 extern EKG_SCREEN_CONTROL_BLOCK ekg_screen;
513 extern YOGA_SCREEN_CONTROL_BLOCK yoga_screen;
514 extern STAND_SCREEN_CONTROL_BLOCK stand_screen;
515 extern RUN_SCREEN_CONTROL_BLOCK run_screen;
516 extern CALORIES_SCREEN_CONTROL_BLOCK calories_screen;
517 extern FITNESS_SCREEN_CONTROL_BLOCK fitness_screen;
518 extern CLOCK_2_SCREEN_CONTROL_BLOCK clock_2_screen;
519 extern CLOCK_1_SCREEN_CONTROL_BLOCK clock_1_screen;
520 extern CLOCK_5_SCREEN_CONTROL_BLOCK clock_5_screen;
521 extern CLOCK_3_SCREEN_CONTROL_BLOCK clock_3_screen;
522 extern CLOCK_4_SCREEN_CONTROL_BLOCK clock_4_screen;
523 extern HOME_SCREEN_CONTROL_BLOCK home_screen;
524 #endif
525 
526 /* Declare event process functions, draw functions, and callback functions     */
527 
528 VOID root_home_button_draw(GX_PIXELMAP_BUTTON *widget);
529 UINT main_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
530 UINT weather_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
531 VOID time_format(GX_NUMERIC_PROMPT *, INT);
532 UINT music_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
533 VOID custom_pixelmap_button_draw(GX_PIXELMAP_BUTTON *widget);
534 UINT message_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
535 UINT clock_screen_template_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
536 UINT weather_screen_template_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
537 UINT screen_template_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
538 UINT ekg_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
539 UINT yoga_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
540 UINT stand_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
541 UINT run_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
542 UINT calories_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
543 UINT fitness_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
544 VOID ekg_waveform_win_draw(GX_WINDOW *widget);
545 UINT clock_5_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
546 VOID clock_5_screen_draw(GX_WINDOW *widget);
547 UINT clock_3_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
548 VOID clock_3_screen_draw(GX_WINDOW *widget);
549 UINT clock_4_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
550 UINT home_screen_event_handler(GX_WINDOW *widget, GX_EVENT *event_ptr);
551 
552 /* Declare the GX_STUDIO_DISPLAY_INFO structure                                */
553 
554 
555 typedef struct GX_STUDIO_DISPLAY_INFO_STRUCT
556 {
557     GX_CONST GX_CHAR *name;
558     GX_CONST GX_CHAR *canvas_name;
559     GX_CONST GX_THEME **theme_table;
560     GX_CONST GX_STRING **language_table;
561     USHORT   theme_table_size;
562     USHORT   language_table_size;
563     UINT     string_table_size;
564     UINT     x_resolution;
565     UINT     y_resolution;
566     GX_DISPLAY *display;
567     GX_CANVAS  *canvas;
568     GX_WINDOW_ROOT *root_window;
569     GX_COLOR   *canvas_memory;
570     ULONG      canvas_memory_size;
571     USHORT     rotation_angle;
572 } GX_STUDIO_DISPLAY_INFO;
573 
574 
575 /* Declare Studio-generated functions for creating top-level widgets           */
576 
577 UINT gx_studio_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
578 UINT gx_studio_pixelmap_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
579 UINT gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
580 UINT gx_studio_radial_progress_bar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
581 UINT gx_studio_sprite_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
582 UINT gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
583 UINT gx_studio_numeric_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
584 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
585 UINT gx_studio_multi_line_text_view_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
586 UINT gx_studio_vertical_scrollbar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
587 UINT gx_studio_circular_gauge_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
588 UINT gx_studio_template_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
589 GX_WIDGET *gx_studio_widget_create(GX_BYTE *storage, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent);
590 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget);
591 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *), GX_UBYTE language, USHORT theme, GX_WINDOW_ROOT **return_root);
592 
593 /* Determine if a C++ compiler is being used.  If so, complete the standard
594   C conditional started above.                                                 */
595 #ifdef __cplusplus
596 }
597 #endif
598 
599 #endif                                       /* sentry                         */
600