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): 30. 8.2022 Time (hh:mm): 15:22 */ 10 /*******************************************************************************/ 11 12 13 #ifndef _DEMO_GUIX_HOME_AUTOMATION_SPECIFICATIONS_H_ 14 #define _DEMO_GUIX_HOME_AUTOMATION_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_RADIAL_SLIDER 1 26 #define ID_CLOSE 2 27 #define ID_OPEN 3 28 #define ID_THERMOSTAT_SCREEN 4 29 #define ID_PAGINATION_1 5 30 #define ID_PAGINATION_2 6 31 #define ID_PAGINATION_3 7 32 #define ID_PAGINATION_4 8 33 #define ID_LIGHTS_SCREEN 9 34 #define ID_STATUS 10 35 #define ID_BUTTON_ENABLE_DISABLE 11 36 #define ID_BUTTON_LOCK_UNLOCK_ALL 12 37 #define ID_LOCK_BUTTON 13 38 #define ID_LOCKS_SCREEN 14 39 #define ID_WEATHER_BG 15 40 #define ID_TITLE 16 41 #define ID_WEATHER_WIN 17 42 #define ID_WIND_WIN 18 43 #define ID_HUMIDITY_WIN 19 44 #define ID_THU_WIN 20 45 #define ID_FRI_WIN 21 46 #define ID_SAT_WIN 22 47 #define ID_SUN_WIN 23 48 #define ID_MON_WIN 24 49 #define ID_TUE_WIN 25 50 #define ID_WED_WIN 26 51 #define ID_BOTTOM_INFO_WIN 27 52 #define ID_V_LINE 28 53 #define ID_WEATHER_SCREEN 29 54 #define ID_NUM_0 30 55 #define ID_NUM_1 31 56 #define ID_NUM_2 32 57 #define ID_NUM_3 33 58 #define ID_NUM_4 34 59 #define ID_NUM_5 35 60 #define ID_NUM_6 36 61 #define ID_NUM_7 37 62 #define ID_NUM_8 38 63 #define ID_NUM_9 39 64 #define ID_CLEAR 40 65 #define ID_OK 41 66 #define ID_ADD 42 67 #define ID_FOOTER_LIGHTS 43 68 #define ID_FOOTER_THERMOSTAT 44 69 #define ID_FOOTER_LOCKS 45 70 #define ID_FOOTER_WEATHER 46 71 #define ID_HOME 47 72 #define ID_SETTING 48 73 #define ID_LIGHTS 49 74 #define ID_THERMOSTAT 50 75 #define ID_WEATHER 51 76 #define ID_LOCKS 52 77 78 79 /* Define animation ids */ 80 81 #define GX_NEXT_ANIMATION_ID 1 82 83 84 /* Define user event ids */ 85 86 enum user_defined_events{ 87 USER_EVENT_FADE_OUT_HOME_WINDOW = GX_FIRST_USER_EVENT, 88 USER_EVENT_FADE_IN_HOME_WINDOW, 89 GX_NEXT_USER_EVENT_ID 90 }; 91 92 #define GX_ACTION_FLAG_DYNAMIC_TARGET 0x01 93 #define GX_ACTION_FLAG_DYNAMIC_PARENT 0x02 94 #define GX_ACTION_FLAG_POP_TARGET 0x04 95 #define GX_ACTION_FLAG_POP_PARENT 0x08 96 97 typedef struct GX_STUDIO_ACTION_STRUCT 98 { 99 GX_UBYTE opcode; 100 GX_UBYTE flags; 101 GX_CONST VOID *parent; 102 GX_CONST VOID *target; 103 GX_CONST GX_ANIMATION_INFO *animation; 104 } GX_STUDIO_ACTION; 105 106 typedef struct GX_STUDIO_EVENT_ENTRY_STRUCT 107 { 108 ULONG event_type; 109 USHORT event_sender; 110 GX_CONST GX_STUDIO_ACTION *action_list; 111 } GX_STUDIO_EVENT_ENTRY; 112 113 typedef struct GX_STUDIO_EVENT_PROCESS_STRUCT 114 { 115 GX_CONST GX_STUDIO_EVENT_ENTRY *event_table; 116 UINT (*chain_event_handler)(GX_WIDGET *, GX_EVENT *); 117 } GX_STUDIO_EVENT_PROCESS; 118 119 /* Declare properties structures for each utilized widget type */ 120 121 typedef struct GX_STUDIO_WIDGET_STRUCT 122 { 123 GX_CHAR *widget_name; 124 USHORT widget_type; 125 USHORT widget_id; 126 #if defined(GX_WIDGET_USER_DATA) 127 INT user_data; 128 #endif 129 ULONG style; 130 ULONG status; 131 ULONG control_block_size; 132 GX_RESOURCE_ID normal_fill_color_id; 133 GX_RESOURCE_ID selected_fill_color_id; 134 GX_RESOURCE_ID disabled_fill_color_id; 135 UINT (*create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *); 136 void (*draw_function) (GX_WIDGET *); 137 UINT (*event_function) (GX_WIDGET *, GX_EVENT *); 138 GX_RECTANGLE size; 139 GX_CONST struct GX_STUDIO_WIDGET_STRUCT *next_widget; 140 GX_CONST struct GX_STUDIO_WIDGET_STRUCT *child_widget; 141 ULONG control_block_offset; 142 GX_CONST void *properties; 143 } GX_STUDIO_WIDGET; 144 145 typedef struct 146 { 147 GX_CONST GX_STUDIO_WIDGET *widget_information; 148 GX_WIDGET *widget; 149 } GX_STUDIO_WIDGET_ENTRY; 150 151 typedef struct 152 { 153 GX_RESOURCE_ID string_id; 154 GX_RESOURCE_ID font_id; 155 GX_RESOURCE_ID normal_text_color_id; 156 GX_RESOURCE_ID selected_text_color_id; 157 GX_RESOURCE_ID disabled_text_color_id; 158 } GX_ML_TEXT_BUTTON_PROPERTIES; 159 160 typedef struct 161 { 162 GX_RESOURCE_ID string_id; 163 GX_RESOURCE_ID font_id; 164 GX_RESOURCE_ID normal_text_color_id; 165 GX_RESOURCE_ID selected_text_color_id; 166 GX_RESOURCE_ID disabled_text_color_id; 167 GX_RESOURCE_ID off_pixelmap_id; 168 GX_RESOURCE_ID on_pixelmap_id; 169 GX_RESOURCE_ID off_disabled_pixelmap_id; 170 GX_RESOURCE_ID on_disabled_pixelmap_id; 171 } GX_RADIO_BUTTON_PROPERTIES; 172 173 typedef struct 174 { 175 GX_RESOURCE_ID normal_pixelmap_id; 176 GX_RESOURCE_ID selected_pixelmap_id; 177 GX_RESOURCE_ID disabled_pixelmap_id; 178 } GX_PIXELMAP_BUTTON_PROPERTIES; 179 180 typedef struct 181 { 182 GX_RESOURCE_ID normal_pixelmap_id; 183 GX_RESOURCE_ID selected_pixelmap_id; 184 } GX_ICON_PROPERTIES; 185 186 typedef struct 187 { 188 GX_VALUE xcenter; 189 GX_VALUE ycenter; 190 USHORT radius; 191 USHORT track_width; 192 GX_VALUE current_angle; 193 GX_VALUE min_angle; 194 GX_VALUE max_angle; 195 GX_RESOURCE_ID background_pixelmap; 196 GX_RESOURCE_ID needle_pixelmap; 197 USHORT animation_total_steps; 198 USHORT animation_delay; 199 USHORT animation_style; 200 VOID (*animation_update_callback)(struct GX_RADIAL_SLIDER_STRUCT *slider); 201 } GX_RADIAL_SLIDER_PROPERTIES; 202 203 typedef struct 204 { 205 GX_RESOURCE_ID string_id; 206 GX_RESOURCE_ID font_id; 207 GX_RESOURCE_ID normal_text_color_id; 208 GX_RESOURCE_ID selected_text_color_id; 209 GX_RESOURCE_ID disabled_text_color_id; 210 } GX_PROMPT_PROPERTIES; 211 212 typedef struct 213 { 214 GX_RESOURCE_ID string_id; 215 GX_RESOURCE_ID font_id; 216 GX_RESOURCE_ID normal_text_color_id; 217 GX_RESOURCE_ID selected_text_color_id; 218 GX_RESOURCE_ID disabled_text_color_id; 219 VOID (*format_func)(GX_NUMERIC_PROMPT *, INT); 220 INT numeric_prompt_value; 221 } GX_NUMERIC_PROMPT_PROPERTIES; 222 223 typedef struct 224 { 225 GX_RESOURCE_ID wallpaper_id; 226 } GX_WINDOW_PROPERTIES; 227 228 typedef struct 229 { 230 GX_CONST GX_STUDIO_WIDGET *base_info; 231 UINT (*base_create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *); 232 GX_RECTANGLE size; 233 } GX_TEMPLATE_PROPERTIES; 234 235 236 /* Declare top-level control blocks */ 237 238 typedef struct WEATHER_BASE_CONTROL_BLOCK_STRUCT 239 { 240 GX_WINDOW_MEMBERS_DECLARE 241 GX_WINDOW weather_base_window_bg; 242 GX_PROMPT weather_base_city_name; 243 GX_NUMERIC_PROMPT weather_base_temperature; 244 GX_PROMPT weather_base_degree_lable; 245 GX_WINDOW weather_base_weather_win; 246 GX_ICON weather_base_weather_icon; 247 GX_PROMPT weather_base_weather_text; 248 GX_WINDOW weather_base_wind_win; 249 GX_ICON weather_base_wind_icon; 250 GX_PROMPT weather_base_prompt_14_1; 251 GX_PROMPT weather_base_prompt_14_3; 252 GX_NUMERIC_PROMPT weather_base_wind_speed; 253 GX_WINDOW weather_base_humdity_win; 254 GX_ICON weather_base_humidity_icon; 255 GX_PROMPT weather_base_prompt_14_2; 256 GX_NUMERIC_PROMPT weather_base_humidity_value; 257 GX_PROMPT weather_base_prompt_14_4; 258 GX_WINDOW weather_base_thu_win; 259 GX_PROMPT weather_base_thu; 260 GX_ICON weather_base_thu_wicon; 261 GX_NUMERIC_PROMPT weather_base_thu_hi_value; 262 GX_NUMERIC_PROMPT weather_base_thu_low_value; 263 GX_PROMPT weather_base_prompt_17; 264 GX_PROMPT weather_base_prompt_17_1; 265 GX_WINDOW weather_base_fri_win; 266 GX_PROMPT weather_base_prompt_14_5; 267 GX_ICON weather_base_fri_wicon; 268 GX_NUMERIC_PROMPT weather_base_fri_hi_value; 269 GX_NUMERIC_PROMPT weather_base_fri_low_value; 270 GX_PROMPT weather_base_prompt_17_2; 271 GX_PROMPT weather_base_prompt_17_3; 272 GX_WINDOW weather_base_sat_win; 273 GX_PROMPT weather_base_prompt_14_6; 274 GX_ICON weather_base_sat_wicon; 275 GX_NUMERIC_PROMPT weather_base_sat_hi_value; 276 GX_NUMERIC_PROMPT weather_base_sat_low_value; 277 GX_PROMPT weather_base_prompt_17_4; 278 GX_PROMPT weather_base_prompt_17_5; 279 GX_WINDOW weather_base_sun_win; 280 GX_PROMPT weather_base_prompt_14_7; 281 GX_ICON weather_base_sun_wicon; 282 GX_NUMERIC_PROMPT weather_base_sun_hi_value; 283 GX_NUMERIC_PROMPT weather_base_sun_low_value; 284 GX_PROMPT weather_base_prompt_17_6; 285 GX_PROMPT weather_base_prompt_17_7; 286 GX_WINDOW weather_base_mon_win; 287 GX_PROMPT weather_base_prompt_14_8; 288 GX_ICON weather_base_mon_wicon; 289 GX_NUMERIC_PROMPT weather_base_mon_hi_value; 290 GX_NUMERIC_PROMPT weather_base_mon_low_value; 291 GX_PROMPT weather_base_prompt_17_8; 292 GX_PROMPT weather_base_prompt_17_9; 293 GX_WINDOW weather_base_tue_win; 294 GX_PROMPT weather_base_prompt_14_9; 295 GX_ICON weather_base_tue_wicon; 296 GX_NUMERIC_PROMPT weather_base_tue_hi_value; 297 GX_NUMERIC_PROMPT weather_base_tue_low_value; 298 GX_PROMPT weather_base_prompt_17_10; 299 GX_PROMPT weather_base_prompt_17_11; 300 GX_WINDOW weather_base_wed_win; 301 GX_PROMPT weather_base_prompt_14_10; 302 GX_ICON weather_base_wed_wicon; 303 GX_NUMERIC_PROMPT weather_base_wed_hi_value; 304 GX_NUMERIC_PROMPT weather_base_wed_low_value; 305 GX_PROMPT weather_base_prompt_17_12; 306 GX_PROMPT weather_base_prompt_17_13; 307 GX_WINDOW weather_base_bottom_info_win; 308 GX_PROMPT weather_base_hi_label; 309 GX_NUMERIC_PROMPT weather_base_low_value; 310 GX_PROMPT weather_base_low_label; 311 GX_NUMERIC_PROMPT weather_base_rain_value; 312 GX_NUMERIC_PROMPT weather_base_hi_value; 313 GX_PROMPT weather_base_rain_label; 314 GX_PROMPT weather_base_percent_lable; 315 GX_WINDOW weather_base_v_line_left; 316 GX_WINDOW weather_base_v_line_right; 317 } WEATHER_BASE_CONTROL_BLOCK; 318 319 typedef struct PASSCODE_SCREEN_CONTROL_BLOCK_STRUCT 320 { 321 GX_WINDOW_MEMBERS_DECLARE 322 GX_ICON passcode_screen_passcode_1; 323 GX_ICON passcode_screen_passcode_4; 324 GX_ICON passcode_screen_passcode_3; 325 GX_ICON passcode_screen_passcode_2; 326 GX_WINDOW passcode_screen_num_pad; 327 GX_PIXELMAP_BUTTON passcode_screen_num_0; 328 GX_PROMPT passcode_screen_prompt_11_10; 329 GX_PIXELMAP_BUTTON passcode_screen_num_1; 330 GX_PROMPT passcode_screen_prompt_11; 331 GX_PIXELMAP_BUTTON passcode_screen_num_2; 332 GX_PROMPT passcode_screen_prompt_11_1; 333 GX_PIXELMAP_BUTTON passcode_screen_num_3; 334 GX_PROMPT passcode_screen_prompt_11_2; 335 GX_PIXELMAP_BUTTON passcode_screen_num_4; 336 GX_PROMPT passcode_screen_prompt_11_3; 337 GX_PIXELMAP_BUTTON passcode_screen_num_5; 338 GX_PROMPT passcode_screen_prompt_11_4; 339 GX_PIXELMAP_BUTTON passcode_screen_num_6; 340 GX_PROMPT passcode_screen_prompt_11_5; 341 GX_PIXELMAP_BUTTON passcode_screen_num_7; 342 GX_PROMPT passcode_screen_prompt_11_6; 343 GX_PIXELMAP_BUTTON passcode_screen_num_8; 344 GX_PROMPT passcode_screen_prompt_11_7; 345 GX_PIXELMAP_BUTTON passcode_screen_num_9; 346 GX_PROMPT passcode_screen_prompt_11_8; 347 GX_PIXELMAP_BUTTON passcode_screen_num_clear; 348 GX_PROMPT passcode_screen_prompt_11_9; 349 GX_PIXELMAP_BUTTON passcode_screen_close; 350 GX_PIXELMAP_BUTTON passcode_screen_ok; 351 GX_PROMPT passcode_screen_prompt_11_11; 352 GX_PROMPT passcode_screen_title; 353 } PASSCODE_SCREEN_CONTROL_BLOCK; 354 355 typedef struct CONTROLLER_BASE_CONTROL_BLOCK_STRUCT 356 { 357 GX_WINDOW_MEMBERS_DECLARE 358 GX_PROMPT controller_base_title; 359 } CONTROLLER_BASE_CONTROL_BLOCK; 360 361 typedef struct SCREEN_BASE_CONTROL_BLOCK_STRUCT 362 { 363 GX_WINDOW_MEMBERS_DECLARE 364 GX_PIXELMAP_BUTTON screen_base_button_light; 365 GX_PIXELMAP_BUTTON screen_base_light; 366 GX_PROMPT screen_base_light_text; 367 GX_PIXELMAP_BUTTON screen_base_button_thermostat; 368 GX_PIXELMAP_BUTTON screen_base_thermostat; 369 GX_PROMPT screen_base_thermostat_text; 370 GX_PIXELMAP_BUTTON screen_base_button_locks; 371 GX_PIXELMAP_BUTTON screen_base_locks; 372 GX_PROMPT screen_base_locks_text; 373 GX_PIXELMAP_BUTTON screen_base_button_weather; 374 GX_PROMPT screen_base_weather_text; 375 GX_PIXELMAP_BUTTON screen_base_weather; 376 GX_PIXELMAP_BUTTON screen_base_home; 377 GX_PIXELMAP_BUTTON screen_base_setting; 378 GX_WINDOW screen_base_slide_win; 379 GX_PIXELMAP_BUTTON screen_base_add; 380 GX_PROMPT screen_base_add_text; 381 GX_ICON screen_base_icon_6; 382 } SCREEN_BASE_CONTROL_BLOCK; 383 384 typedef struct MAIN_SCREEN_CONTROL_BLOCK_STRUCT 385 { 386 GX_WINDOW_MEMBERS_DECLARE 387 GX_WINDOW main_screen_window; 388 GX_PROMPT main_screen_weather_text; 389 GX_ICON main_screen_weather_icon; 390 GX_NUMERIC_PROMPT main_screen_t_value; 391 GX_NUMERIC_PROMPT main_screen_low_value; 392 GX_PROMPT main_screen_low_lable; 393 GX_PROMPT main_screen_hi_lable; 394 GX_NUMERIC_PROMPT main_screen_hi_value; 395 GX_PROMPT main_screen_dot; 396 GX_ICON main_screen_icon; 397 GX_WINDOW main_screen_home_window; 398 GX_PIXELMAP_BUTTON main_screen_lights; 399 GX_PROMPT main_screen_prompt; 400 GX_PIXELMAP_BUTTON main_screen_pixelmap_button_4; 401 GX_PIXELMAP_BUTTON main_screen_thermostat; 402 GX_PROMPT main_screen_prompt_1; 403 GX_PIXELMAP_BUTTON main_screen_pixelmap_button_5; 404 GX_PIXELMAP_BUTTON main_screen_weather; 405 GX_PROMPT main_screen_prompt_3; 406 GX_PIXELMAP_BUTTON main_screen_pixelmap_button_7; 407 GX_PIXELMAP_BUTTON main_screen_locks; 408 GX_PROMPT main_screen_prompt_2; 409 GX_PIXELMAP_BUTTON main_screen_pixelmap_button_6; 410 GX_WINDOW main_screen_time_window; 411 GX_PROMPT main_screen_am_pm; 412 GX_PROMPT main_screen_date; 413 GX_NUMERIC_PROMPT main_screen_hour; 414 GX_NUMERIC_PROMPT main_screen_minute; 415 GX_ICON main_screen_upper_dot; 416 GX_ICON main_screen_lower_dot; 417 } MAIN_SCREEN_CONTROL_BLOCK; 418 419 typedef struct THERMOSTAT_BASE_CONTROL_BLOCK_STRUCT 420 { 421 CONTROLLER_BASE_CONTROL_BLOCK base; 422 GX_ICON thermostat_base_ruller_thermostat; 423 GX_PROMPT thermostat_base_prompt_16; 424 GX_PROMPT thermostat_base_prompt_16_1; 425 GX_PROMPT thermostat_base_prompt_16_2; 426 GX_PROMPT thermostat_base_prompt_16_3; 427 GX_PROMPT thermostat_base_prompt_16_4; 428 GX_PROMPT thermostat_base_prompt_16_5; 429 GX_PROMPT thermostat_base_prompt_16_6; 430 GX_PROMPT thermostat_base_prompt_16_7; 431 GX_PROMPT thermostat_base_prompt_16_8; 432 GX_RADIAL_SLIDER thermostat_base_radial_slider; 433 GX_PROMPT thermostat_base_cold_heat_text; 434 GX_PROMPT thermostat_base_current_label; 435 GX_NUMERIC_PROMPT thermostat_base_center_value; 436 GX_PROMPT thermostat_base_dot_lable; 437 GX_PROMPT thermostat_base_prompt_15; 438 GX_ICON thermostat_base_cold_heat_icon; 439 GX_PROMPT thermostat_base_bottom_value; 440 GX_PIXELMAP_BUTTON thermostat_base_button_close; 441 GX_PIXELMAP_BUTTON thermostat_base_button_open; 442 } THERMOSTAT_BASE_CONTROL_BLOCK; 443 444 typedef struct THERMOSTAT_SCREEN_CONTROL_BLOCK_STRUCT 445 { 446 SCREEN_BASE_CONTROL_BLOCK base; 447 GX_RADIO_BUTTON thermostat_screen_pagination_1; 448 GX_RADIO_BUTTON thermostat_screen_pagination_2; 449 GX_RADIO_BUTTON thermostat_screen_pagination_3; 450 GX_RADIO_BUTTON thermostat_screen_pagination_4; 451 GX_WINDOW thermostat_screen_info_win; 452 GX_PROMPT thermostat_screen_on_lable; 453 GX_ICON thermostat_screen_icon; 454 GX_NUMERIC_PROMPT thermostat_screen_num_on; 455 GX_ICON thermostat_screen_icon_1; 456 GX_NUMERIC_PROMPT thermostat_screen_num_off; 457 GX_PROMPT thermostat_screen_off_lable; 458 GX_PROMPT thermostat_screen_kwh_lable; 459 GX_PROMPT thermostat_screen_kwh_lable_2; 460 GX_NUMERIC_PROMPT thermostat_screen_overall_today; 461 GX_NUMERIC_PROMPT thermostat_screen_energy_in_use; 462 GX_PROMPT thermostat_screen_energy_in_use_lable; 463 GX_PROMPT thermostat_screen_overall_today_lable; 464 } THERMOSTAT_SCREEN_CONTROL_BLOCK; 465 466 typedef struct LIGHTS_BASE_CONTROL_BLOCK_STRUCT 467 { 468 CONTROLLER_BASE_CONTROL_BLOCK base; 469 GX_PIXELMAP_BUTTON lights_base_button_open; 470 GX_ICON lights_base_icon_ruller; 471 GX_PROMPT lights_base_prompt_16; 472 GX_PROMPT lights_base_prompt_16_2; 473 GX_PROMPT lights_base_prompt_16_3; 474 GX_PROMPT lights_base_prompt_16_4; 475 GX_PROMPT lights_base_prompt_16_5; 476 GX_PROMPT lights_base_prompt_16_6; 477 GX_PROMPT lights_base_prompt_16_7; 478 GX_PROMPT lights_base_prompt_16_8; 479 GX_PROMPT lights_base_prompt_16_9; 480 GX_PROMPT lights_base_prompt_16_10; 481 GX_PROMPT lights_base_prompt_16_1; 482 GX_PIXELMAP_BUTTON lights_base_button_close; 483 GX_RADIAL_SLIDER lights_base_radial_slider; 484 GX_PROMPT lights_base_color_text; 485 GX_NUMERIC_PROMPT lights_base_power_value; 486 GX_PROMPT lights_base_power_lable; 487 GX_NUMERIC_PROMPT lights_base_power_percent_value; 488 GX_PROMPT lights_base_precent_lable; 489 } LIGHTS_BASE_CONTROL_BLOCK; 490 491 typedef struct LIGHTS_SCREEN_CONTROL_BLOCK_STRUCT 492 { 493 SCREEN_BASE_CONTROL_BLOCK base; 494 GX_RADIO_BUTTON lights_screen_pagination_1; 495 GX_RADIO_BUTTON lights_screen_pagination_2; 496 GX_RADIO_BUTTON lights_screen_pagination_3; 497 GX_RADIO_BUTTON lights_screen_pagination_4; 498 GX_WINDOW lights_screen_info_win; 499 GX_PROMPT lights_screen_on_lable; 500 GX_ICON lights_screen_icon; 501 GX_NUMERIC_PROMPT lights_screen_num_on; 502 GX_ICON lights_screen_icon_1; 503 GX_NUMERIC_PROMPT lights_screen_num_off; 504 GX_PROMPT lights_screen_off_lable; 505 GX_PROMPT lights_screen_kwh_lable; 506 GX_PROMPT lights_screen_kwh_lable_2; 507 GX_NUMERIC_PROMPT lights_screen_overall_today; 508 GX_NUMERIC_PROMPT lights_screen_energy_in_use; 509 GX_PROMPT lights_screen_energy_in_use_lable; 510 GX_PROMPT lights_screen_overall_today_lable; 511 } LIGHTS_SCREEN_CONTROL_BLOCK; 512 513 typedef struct LOCKS_DOOR_BASE_CONTROL_BLOCK_STRUCT 514 { 515 CONTROLLER_BASE_CONTROL_BLOCK base; 516 GX_ICON locks_door_base_status_icon; 517 GX_PROMPT locks_door_base_status_text; 518 GX_PIXELMAP_BUTTON locks_door_base_button_lock; 519 GX_ICON locks_door_base_lock_icon; 520 GX_PROMPT locks_door_base_lock_text; 521 GX_PIXELMAP_BUTTON locks_door_base_button_close; 522 GX_PIXELMAP_BUTTON locks_door_base_button_open; 523 } LOCKS_DOOR_BASE_CONTROL_BLOCK; 524 525 typedef struct LOCKS_SCREEN_CONTROL_BLOCK_STRUCT 526 { 527 SCREEN_BASE_CONTROL_BLOCK base; 528 GX_RADIO_BUTTON locks_screen_pagination_1; 529 GX_RADIO_BUTTON locks_screen_pagination_2; 530 GX_RADIO_BUTTON locks_screen_pagination_3; 531 } LOCKS_SCREEN_CONTROL_BLOCK; 532 533 typedef struct WIN_SAN_DIEGO_CONTROL_BLOCK_STRUCT 534 { 535 WEATHER_BASE_CONTROL_BLOCK base; 536 } WIN_SAN_DIEGO_CONTROL_BLOCK; 537 538 typedef struct WIN_NEW_YORK_CONTROL_BLOCK_STRUCT 539 { 540 WEATHER_BASE_CONTROL_BLOCK base; 541 } WIN_NEW_YORK_CONTROL_BLOCK; 542 543 typedef struct WIN_LAS_VEGAS_CONTROL_BLOCK_STRUCT 544 { 545 WEATHER_BASE_CONTROL_BLOCK base; 546 } WIN_LAS_VEGAS_CONTROL_BLOCK; 547 548 typedef struct WEATHER_SCREEN_CONTROL_BLOCK_STRUCT 549 { 550 SCREEN_BASE_CONTROL_BLOCK base; 551 GX_RADIO_BUTTON weather_screen_pagination_1; 552 GX_RADIO_BUTTON weather_screen_pagination_2; 553 GX_RADIO_BUTTON weather_screen_pagination_3; 554 } WEATHER_SCREEN_CONTROL_BLOCK; 555 556 typedef struct ADD_BASE_CONTROL_BLOCK_STRUCT 557 { 558 CONTROLLER_BASE_CONTROL_BLOCK base; 559 GX_PIXELMAP_BUTTON add_base_add; 560 } ADD_BASE_CONTROL_BLOCK; 561 562 typedef struct THERMOSTAT_PAGE_4_CONTROL_BLOCK_STRUCT 563 { 564 GX_WINDOW_MEMBERS_DECLARE 565 THERMOSTAT_BASE_CONTROL_BLOCK thermostat_page_4_office; 566 ADD_BASE_CONTROL_BLOCK thermostat_page_4_add_room; 567 } THERMOSTAT_PAGE_4_CONTROL_BLOCK; 568 569 typedef struct THERMOSTAT_PAGE_3_CONTROL_BLOCK_STRUCT 570 { 571 GX_WINDOW_MEMBERS_DECLARE 572 THERMOSTAT_BASE_CONTROL_BLOCK thermostat_page_3_dinning_room; 573 THERMOSTAT_BASE_CONTROL_BLOCK thermostat_page_3_outdoor_patio; 574 } THERMOSTAT_PAGE_3_CONTROL_BLOCK; 575 576 typedef struct THERMOSTAT_PAGE_2_CONTROL_BLOCK_STRUCT 577 { 578 GX_WINDOW_MEMBERS_DECLARE 579 THERMOSTAT_BASE_CONTROL_BLOCK thermostat_page_2_kids_bedroom; 580 THERMOSTAT_BASE_CONTROL_BLOCK thermostat_page_2_living_room; 581 } THERMOSTAT_PAGE_2_CONTROL_BLOCK; 582 583 typedef struct THERMOSTAT_PAGE_1_CONTROL_BLOCK_STRUCT 584 { 585 GX_WINDOW_MEMBERS_DECLARE 586 THERMOSTAT_BASE_CONTROL_BLOCK thermostat_page_1_kitchen; 587 THERMOSTAT_BASE_CONTROL_BLOCK thermostat_page_1_master_bedroom; 588 } THERMOSTAT_PAGE_1_CONTROL_BLOCK; 589 590 typedef struct LIGHTS_PAGE_3_CONTROL_BLOCK_STRUCT 591 { 592 GX_WINDOW_MEMBERS_DECLARE 593 LIGHTS_BASE_CONTROL_BLOCK lights_page_3_dinning_room; 594 LIGHTS_BASE_CONTROL_BLOCK lights_page_3_outdoor_patio; 595 } LIGHTS_PAGE_3_CONTROL_BLOCK; 596 597 typedef struct LIGHTS_PAGE_2_CONTROL_BLOCK_STRUCT 598 { 599 GX_WINDOW_MEMBERS_DECLARE 600 LIGHTS_BASE_CONTROL_BLOCK lights_page_2_kids_bedroom; 601 LIGHTS_BASE_CONTROL_BLOCK lights_page_2_living_room; 602 } LIGHTS_PAGE_2_CONTROL_BLOCK; 603 604 typedef struct LIGHTS_PAGE_4_CONTROL_BLOCK_STRUCT 605 { 606 GX_WINDOW_MEMBERS_DECLARE 607 LIGHTS_BASE_CONTROL_BLOCK lights_page_4_office; 608 ADD_BASE_CONTROL_BLOCK lights_page_4_add_light; 609 } LIGHTS_PAGE_4_CONTROL_BLOCK; 610 611 typedef struct LIGHTS_PAGE_1_CONTROL_BLOCK_STRUCT 612 { 613 GX_WINDOW_MEMBERS_DECLARE 614 LIGHTS_BASE_CONTROL_BLOCK lights_page_1_kitchen; 615 LIGHTS_BASE_CONTROL_BLOCK lights_page_1_master_bedroom; 616 } LIGHTS_PAGE_1_CONTROL_BLOCK; 617 618 typedef struct LOCKS_PAGE_3_CONTROL_BLOCK_STRUCT 619 { 620 GX_WINDOW_MEMBERS_DECLARE 621 LOCKS_DOOR_BASE_CONTROL_BLOCK locks_page_3_lower_deck_door; 622 ADD_BASE_CONTROL_BLOCK locks_page_3_add_lock; 623 } LOCKS_PAGE_3_CONTROL_BLOCK; 624 625 typedef struct LOCKS_PAGE_2_CONTROL_BLOCK_STRUCT 626 { 627 GX_WINDOW_MEMBERS_DECLARE 628 LOCKS_DOOR_BASE_CONTROL_BLOCK locks_page_2_upper_deck_door; 629 LOCKS_DOOR_BASE_CONTROL_BLOCK locks_page_2_patio_door; 630 } LOCKS_PAGE_2_CONTROL_BLOCK; 631 632 typedef struct LOCKS_PAGE_1_CONTROL_BLOCK_STRUCT 633 { 634 GX_WINDOW_MEMBERS_DECLARE 635 CONTROLLER_BASE_CONTROL_BLOCK locks_page_1_security_alarm; 636 GX_ICON locks_page_1_icon_3; 637 GX_PROMPT locks_page_1_prompt_15_1; 638 GX_PIXELMAP_BUTTON locks_page_1_button_enable_diable; 639 GX_ICON locks_page_1_icon_5; 640 GX_PROMPT locks_page_1_enable_disable_text; 641 GX_PIXELMAP_BUTTON locks_page_1_button_lock; 642 GX_ICON locks_page_1_lock_unlock_icon; 643 GX_PROMPT locks_page_1_lock_unlock_text; 644 GX_ICON locks_page_1_icon_1; 645 GX_ICON locks_page_1_icon_2; 646 GX_PROMPT locks_page_1_prompt_15_5; 647 GX_MULTI_LINE_TEXT_BUTTON locks_page_1_multi_line_button; 648 LOCKS_DOOR_BASE_CONTROL_BLOCK locks_page_1_front_door; 649 } LOCKS_PAGE_1_CONTROL_BLOCK; 650 651 652 /* extern statically defined control blocks */ 653 654 #ifndef GUIX_STUDIO_GENERATED_FILE 655 extern THERMOSTAT_PAGE_4_CONTROL_BLOCK thermostat_page_4; 656 extern THERMOSTAT_PAGE_3_CONTROL_BLOCK thermostat_page_3; 657 extern THERMOSTAT_PAGE_2_CONTROL_BLOCK thermostat_page_2; 658 extern THERMOSTAT_PAGE_1_CONTROL_BLOCK thermostat_page_1; 659 extern THERMOSTAT_BASE_CONTROL_BLOCK thermostat_base; 660 extern THERMOSTAT_SCREEN_CONTROL_BLOCK thermostat_screen; 661 extern LIGHTS_PAGE_3_CONTROL_BLOCK lights_page_3; 662 extern LIGHTS_PAGE_2_CONTROL_BLOCK lights_page_2; 663 extern LIGHTS_PAGE_4_CONTROL_BLOCK lights_page_4; 664 extern LIGHTS_PAGE_1_CONTROL_BLOCK lights_page_1; 665 extern LIGHTS_BASE_CONTROL_BLOCK lights_base; 666 extern LIGHTS_SCREEN_CONTROL_BLOCK lights_screen; 667 extern LOCKS_PAGE_3_CONTROL_BLOCK locks_page_3; 668 extern LOCKS_PAGE_2_CONTROL_BLOCK locks_page_2; 669 extern LOCKS_PAGE_1_CONTROL_BLOCK locks_page_1; 670 extern LOCKS_DOOR_BASE_CONTROL_BLOCK locks_door_base; 671 extern LOCKS_SCREEN_CONTROL_BLOCK locks_screen; 672 extern WIN_SAN_DIEGO_CONTROL_BLOCK win_San_Diego; 673 extern WIN_NEW_YORK_CONTROL_BLOCK win_New_York; 674 extern WIN_LAS_VEGAS_CONTROL_BLOCK win_Las_Vegas; 675 extern WEATHER_BASE_CONTROL_BLOCK weather_base; 676 extern WEATHER_SCREEN_CONTROL_BLOCK weather_screen; 677 extern PASSCODE_SCREEN_CONTROL_BLOCK passcode_screen; 678 extern ADD_BASE_CONTROL_BLOCK add_base; 679 extern CONTROLLER_BASE_CONTROL_BLOCK controller_base; 680 extern SCREEN_BASE_CONTROL_BLOCK screen_base; 681 extern MAIN_SCREEN_CONTROL_BLOCK main_screen; 682 #endif 683 684 /* Declare event process functions, draw functions, and callback functions */ 685 686 UINT thermostat_base_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 687 VOID thermostat_radial_slider_value_update(GX_RADIAL_SLIDER *slider); 688 VOID custom_radial_slider_draw(GX_RADIAL_SLIDER *widget); 689 VOID power_value_format(GX_NUMERIC_PROMPT *, INT); 690 UINT lights_base_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 691 VOID radial_slider_value_update(GX_RADIAL_SLIDER *slider); 692 UINT locks_page_1_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 693 UINT locks_door_base_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 694 UINT passcode_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 695 UINT screen_base_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 696 UINT slide_win_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 697 UINT main_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr); 698 VOID main_screen_draw(GX_WINDOW *widget); 699 VOID time_format(GX_NUMERIC_PROMPT *, INT); 700 701 /* Declare the GX_STUDIO_DISPLAY_INFO structure */ 702 703 704 typedef struct GX_STUDIO_DISPLAY_INFO_STRUCT 705 { 706 GX_CONST GX_CHAR *name; 707 GX_CONST GX_CHAR *canvas_name; 708 GX_CONST GX_THEME **theme_table; 709 GX_CONST GX_STRING **language_table; 710 USHORT theme_table_size; 711 USHORT language_table_size; 712 UINT string_table_size; 713 UINT x_resolution; 714 UINT y_resolution; 715 GX_DISPLAY *display; 716 GX_CANVAS *canvas; 717 GX_WINDOW_ROOT *root_window; 718 GX_COLOR *canvas_memory; 719 ULONG canvas_memory_size; 720 USHORT rotation_angle; 721 } GX_STUDIO_DISPLAY_INFO; 722 723 724 /* Declare Studio-generated functions for creating top-level widgets */ 725 726 UINT gx_studio_multi_line_text_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 727 UINT gx_studio_radio_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 728 UINT gx_studio_pixelmap_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 729 UINT gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 730 UINT gx_studio_radial_slider_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 731 UINT gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 732 UINT gx_studio_numeric_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 733 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 734 UINT gx_studio_template_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent); 735 GX_WIDGET *gx_studio_widget_create(GX_BYTE *storage, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent); 736 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget); 737 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *), GX_UBYTE language, USHORT theme, GX_WINDOW_ROOT **return_root); 738 UINT gx_studio_auto_event_handler(GX_WIDGET *widget, GX_EVENT *event_ptr, GX_CONST GX_STUDIO_EVENT_PROCESS *record); 739 740 /* Determine if a C++ compiler is being used. If so, complete the standard 741 C conditional started above. */ 742 #ifdef __cplusplus 743 } 744 #endif 745 746 #endif /* sentry */ 747