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