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:21                        */
10 /*******************************************************************************/
11 
12 
13 #ifndef _DEMO_GUIX_CAR_INFOTAINMENT_SPECIFICATIONS_H_
14 #define _DEMO_GUIX_CAR_INFOTAINMENT_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_VOLUME_PROGRESS_BAR 1
26 #define ID_BTN_MUTE 2
27 #define ID_SCREEN_WEATHER_WIN 3
28 #define ID_HOME_BTN 4
29 #define ID_LOGO 5
30 #define ID_VIDEO_SCREEN 6
31 #define ID_PLAY_BTN_SMALL 7
32 #define ID_PLAY_BTN_BIG 8
33 #define ID_AUDIO_SCREEN 9
34 #define ID_BTN_KEYPAD 10
35 #define ID_BTN_END_CALL 11
36 #define ID_PREVIOUS 12
37 #define ID_NEXT 13
38 #define ID_PLAY_BTN 14
39 #define ID_PHONE_SCREEN 15
40 #define ID_CLIMATE_SCREEN 16
41 #define ID_RIGHT_PROGRESS_BAR 17
42 #define ID_LEFT_PROGRESS_BAR 18
43 #define ID_LEFT_FAN_BUTTON 19
44 #define ID_LEFT_SMALL_FAN_BUTTON 20
45 #define ID_RIGHT_SMALL_FAN_BUTTON 21
46 #define ID_RIGHT_FAN_BUTTON 22
47 #define ID_VEHICLE_SCREEN 23
48 #define ID_MODE_ECO_BTN 24
49 #define ID_MODE_COMFORT_BTN 25
50 #define ID_MODE_SPORT_BTN 26
51 #define ID_LIGHT_SPRITE_LEFT 27
52 #define ID_LIGHT_SPRITE_RIGHT 28
53 #define ID_MAIN_SCREEN 29
54 #define ID_MAIN_WEATHER_WIN 30
55 #define ID_BTN_WIN 31
56 #define ID_VEHICLE_BTN 32
57 #define ID_CLIMATE_BTN 33
58 #define ID_PHONE_BTN 34
59 #define ID_AUDIO_BTN 35
60 #define ID_VIDEO_BTN 36
61 #define ID_VEHICLE_MODE_BUTTON 37
62 #define ID_ON_OFF_BTN 38
63 
64 
65 /* Define animation ids                                                        */
66 
67 #define ID_ANI_SLIDE_IN_PROGRESS_BAR_WIN 1
68 #define GX_NEXT_ANIMATION_ID 2
69 
70 
71 /* Define user event ids                                                       */
72 
73 enum user_defined_events{
74     USER_EVENT_SLIDE_IN_MUSIC_INFO_WIN = GX_FIRST_USER_EVENT,
75     GX_NEXT_USER_EVENT_ID
76 };
77 
78 #define GX_ACTION_FLAG_DYNAMIC_TARGET 0x01
79 #define GX_ACTION_FLAG_DYNAMIC_PARENT 0x02
80 #define GX_ACTION_FLAG_POP_TARGET     0x04
81 #define GX_ACTION_FLAG_POP_PARENT     0x08
82 
83 typedef struct GX_STUDIO_ACTION_STRUCT
84 {
85     GX_UBYTE opcode;
86     GX_UBYTE flags;
87     GX_CONST VOID *parent;
88     GX_CONST VOID *target;
89     GX_CONST GX_ANIMATION_INFO  *animation;
90 } GX_STUDIO_ACTION;
91 
92 typedef struct GX_STUDIO_EVENT_ENTRY_STRUCT
93 {
94     ULONG event_type;
95     USHORT event_sender;
96     GX_CONST GX_STUDIO_ACTION *action_list;
97 } GX_STUDIO_EVENT_ENTRY;
98 
99 typedef struct GX_STUDIO_EVENT_PROCESS_STRUCT
100 {
101     GX_CONST GX_STUDIO_EVENT_ENTRY *event_table;
102     UINT (*chain_event_handler)(GX_WIDGET *, GX_EVENT *);
103 } GX_STUDIO_EVENT_PROCESS;
104 
105 /* Declare properties structures for each utilized widget type                 */
106 
107 typedef struct GX_STUDIO_WIDGET_STRUCT
108 {
109    GX_CHAR *widget_name;
110    USHORT  widget_type;
111    USHORT  widget_id;
112    #if defined(GX_WIDGET_USER_DATA)
113    INT   user_data;
114    #endif
115    ULONG style;
116    ULONG status;
117    ULONG control_block_size;
118    GX_RESOURCE_ID normal_fill_color_id;
119    GX_RESOURCE_ID selected_fill_color_id;
120    GX_RESOURCE_ID disabled_fill_color_id;
121    UINT (*create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
122    void (*draw_function) (GX_WIDGET *);
123    UINT (*event_function) (GX_WIDGET *, GX_EVENT *);
124    GX_RECTANGLE size;
125    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *next_widget;
126    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *child_widget;
127    ULONG control_block_offset;
128    GX_CONST void *properties;
129 } GX_STUDIO_WIDGET;
130 
131 typedef struct
132 {
133     GX_CONST GX_STUDIO_WIDGET *widget_information;
134     GX_WIDGET        *widget;
135 } GX_STUDIO_WIDGET_ENTRY;
136 
137 typedef struct
138 {
139     GX_RESOURCE_ID pixelmap_id;
140 } GX_ICON_BUTTON_PROPERTIES;
141 
142 typedef struct
143 {
144     GX_RESOURCE_ID normal_pixelmap_id;
145     GX_RESOURCE_ID selected_pixelmap_id;
146     GX_RESOURCE_ID disabled_pixelmap_id;
147 } GX_PIXELMAP_BUTTON_PROPERTIES;
148 
149 typedef struct
150 {
151     GX_RESOURCE_ID normal_pixelmap_id;
152     GX_RESOURCE_ID selected_pixelmap_id;
153 } GX_ICON_PROPERTIES;
154 
155 typedef struct
156 {
157     GX_VALUE       xcenter;
158     GX_VALUE       ycenter;
159     USHORT         radius;
160     USHORT         track_width;
161     GX_VALUE       current_angle;
162     GX_VALUE       min_angle;
163     GX_VALUE       max_angle;
164     GX_RESOURCE_ID background_pixelmap;
165     GX_RESOURCE_ID needle_pixelmap;
166     USHORT         animation_total_steps;
167     USHORT         animation_delay;
168     USHORT         animation_style;
169     VOID         (*animation_update_callback)(struct GX_RADIAL_SLIDER_STRUCT *slider);
170 } GX_RADIAL_SLIDER_PROPERTIES;
171 
172 typedef struct
173 {
174     GX_SPRITE_FRAME *frame_list;
175     USHORT           frame_count;
176 } GX_SPRITE_PROPERTIES;
177 
178 typedef struct
179 {
180     GX_RESOURCE_ID string_id;
181     GX_RESOURCE_ID font_id;
182     GX_RESOURCE_ID normal_text_color_id;
183     GX_RESOURCE_ID selected_text_color_id;
184     GX_RESOURCE_ID disabled_text_color_id;
185 } GX_PROMPT_PROPERTIES;
186 
187 typedef struct
188 {
189     GX_RESOURCE_ID string_id;
190     GX_RESOURCE_ID font_id;
191     GX_RESOURCE_ID normal_text_color_id;
192     GX_RESOURCE_ID selected_text_color_id;
193     GX_RESOURCE_ID disabled_text_color_id;
194     VOID (*format_func)(GX_NUMERIC_PROMPT *, INT);
195     INT            numeric_prompt_value;
196 } GX_NUMERIC_PROMPT_PROPERTIES;
197 
198 typedef struct
199 {
200     GX_RESOURCE_ID wallpaper_id;
201 } GX_WINDOW_PROPERTIES;
202 
203 typedef struct
204 {
205    GX_CONST GX_STUDIO_WIDGET *base_info;
206    UINT (*base_create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
207    GX_RECTANGLE size;
208 } GX_TEMPLATE_PROPERTIES;
209 
210 
211 /* Declare top-level control blocks                                            */
212 
213 typedef struct BASE_CONTROL_BLOCK_STRUCT
214 {
215     GX_WINDOW_MEMBERS_DECLARE
216     GX_ICON base_logo;
217 } BASE_CONTROL_BLOCK;
218 
219 typedef struct MAIN_SCREEN_CONTROL_BLOCK_STRUCT
220 {
221     BASE_CONTROL_BLOCK base;
222     GX_ICON main_screen_speedometer;
223     GX_NUMERIC_PROMPT main_screen_MPH_val;
224     GX_PROMPT main_screen_MPH_label;
225     GX_ICON main_screen_gear_position;
226     GX_PROMPT main_screen_prompt_11_4;
227     GX_PROMPT main_screen_prompt_11_5;
228     GX_PROMPT main_screen_prompt_11_6;
229     GX_PROMPT main_screen_prompt_11_7;
230     GX_WINDOW main_screen_weather_win;
231     GX_NUMERIC_PROMPT main_screen_time_hour;
232     GX_NUMERIC_PROMPT main_screen_time_minute;
233     GX_ICON main_screen_weather_icon;
234     GX_NUMERIC_PROMPT main_screen_temperature;
235     GX_ICON main_screen_second_dot_up;
236     GX_ICON main_screen_second_dot_down;
237     GX_WINDOW main_screen_btn_window;
238     GX_PIXELMAP_BUTTON main_screen_vehicle_btn;
239     GX_ICON main_screen_icon;
240     GX_PROMPT main_screen_prompt;
241     GX_PIXELMAP_BUTTON main_screen_climate_btn;
242     GX_ICON main_screen_icon_1;
243     GX_PROMPT main_screen_prompt_1;
244     GX_PIXELMAP_BUTTON main_screen_phone_btn;
245     GX_ICON main_screen_icon_2;
246     GX_PROMPT main_screen_prompt_2;
247     GX_PIXELMAP_BUTTON main_screen_audio_btn;
248     GX_ICON main_screen_icon_3;
249     GX_PROMPT main_screen_prompt_3;
250     GX_PIXELMAP_BUTTON main_screen_video_btn;
251     GX_ICON main_screen_icon_4;
252     GX_PROMPT main_screen_prompt_4;
253     GX_NUMERIC_PROMPT main_screen_remain_miles;
254     GX_NUMERIC_PROMPT main_screen_remain_battery;
255     GX_PROMPT main_screen_prompt_11;
256     GX_PROMPT main_screen_prompt_11_1;
257     GX_ICON main_screen_horizontal_line;
258     GX_ICON main_screen_battery_icon;
259     GX_PROGRESS_BAR main_screen_battery_progress_bar;
260     GX_PROMPT main_screen_vehicle_mode_text;
261     GX_PIXELMAP_BUTTON main_screen_vehicle_mode_button;
262     GX_ICON main_screen_vehicle_mode_icon;
263     GX_RADIAL_SLIDER main_screen_radial_slider;
264     GX_PIXELMAP_BUTTON main_screen_on_off_btn;
265     GX_ICON main_screen_icon_5;
266     GX_PROMPT main_screen_on_off_text;
267 } MAIN_SCREEN_CONTROL_BLOCK;
268 
269 typedef struct SCREEN_BASE_CONTROL_BLOCK_STRUCT
270 {
271     BASE_CONTROL_BLOCK base;
272     GX_WINDOW screen_base_weather_win;
273     GX_NUMERIC_PROMPT screen_base_hour;
274     GX_NUMERIC_PROMPT screen_base_minute;
275     GX_ICON screen_base_weather_icon;
276     GX_NUMERIC_PROMPT screen_base_temperature;
277     GX_ICON screen_base_second_dot_down;
278     GX_ICON screen_base_second_dot_up;
279     GX_PIXELMAP_BUTTON screen_base_home_btn;
280 } SCREEN_BASE_CONTROL_BLOCK;
281 
282 typedef struct VIDEO_SCREEN_CONTROL_BLOCK_STRUCT
283 {
284     SCREEN_BASE_CONTROL_BLOCK base;
285     GX_WINDOW video_screen_window_1;
286     GX_WINDOW video_screen_video_play_progress_bar_bg;
287     GX_PROGRESS_BAR video_screen_video_play_progress_bar;
288     GX_PIXELMAP_BUTTON video_screen_play_btn_small;
289     GX_PIXELMAP_BUTTON video_screen_pixelmap_button_7;
290     GX_PIXELMAP_BUTTON video_screen_pixelmap_button_8;
291     GX_PIXELMAP_BUTTON video_screen_pixelmap_button_9;
292     GX_NUMERIC_PROMPT video_screen_minute;
293     GX_NUMERIC_PROMPT video_screen_second;
294     GX_PROMPT video_screen_second_colon;
295     GX_WINDOW video_screen_play_btn_big_win;
296     GX_PIXELMAP_BUTTON video_screen_play_btn_big;
297 } VIDEO_SCREEN_CONTROL_BLOCK;
298 
299 typedef struct CLIMATE_SCREEN_CONTROL_BLOCK_STRUCT
300 {
301     SCREEN_BASE_CONTROL_BLOCK base;
302     GX_WINDOW climate_screen_right_progress_bar_win;
303     GX_WINDOW climate_screen_right_progress_bar_bg;
304     GX_PROGRESS_BAR climate_screen_right_progress_bar;
305     GX_NUMERIC_PROMPT climate_screen_right_progress_val;
306     GX_PROMPT climate_screen_prompt;
307     GX_WINDOW climate_screen_left_progress_bar_win;
308     GX_WINDOW climate_screen_left_progress_bar_bg;
309     GX_PROGRESS_BAR climate_screen_left_progress_bar;
310     GX_NUMERIC_PROMPT climate_screen_left_progress_val;
311     GX_PROMPT climate_screen_prompt_7;
312     GX_ICON climate_screen_left_lines_icon;
313     GX_PIXELMAP_BUTTON climate_screen_pixelmap_button_3;
314     GX_PIXELMAP_BUTTON climate_screen_pixelmap_button;
315     GX_ICON climate_screen_right_lines;
316     GX_PIXELMAP_BUTTON climate_screen_pixelmap_button_1;
317     GX_PIXELMAP_BUTTON climate_screen_pixelmap_button_2;
318     GX_ICON climate_screen_center_line;
319     GX_ICON climate_screen_right_seat;
320     GX_PROMPT climate_screen_left_fan_mode;
321     GX_PROMPT climate_screen_right_fan_mode;
322     GX_PIXELMAP_BUTTON climate_screen_left_fan_button;
323     GX_PIXELMAP_BUTTON climate_screen_left_small_fan_button;
324     GX_PIXELMAP_BUTTON climate_screen_right_small_fan_button;
325     GX_PIXELMAP_BUTTON climate_screen_right_fan_button;
326     GX_ICON climate_screen_left_seat;
327     GX_ICON_BUTTON climate_screen_left_warmer_icon_button;
328     GX_ICON climate_screen_icon_14_3;
329     GX_ICON climate_screen_icon_14_12;
330     GX_ICON climate_screen_icon_14_13;
331     GX_ICON_BUTTON climate_screen_right_warmer_icon_button;
332     GX_ICON climate_screen_icon_14_16_1;
333     GX_ICON climate_screen_icon_14_14_1;
334     GX_ICON climate_screen_icon_14_15_1;
335 } CLIMATE_SCREEN_CONTROL_BLOCK;
336 
337 typedef struct VEHICLE_SCREEN_CONTROL_BLOCK_STRUCT
338 {
339     SCREEN_BASE_CONTROL_BLOCK base;
340     GX_PIXELMAP_BUTTON vehicle_screen_mode_eco_btn;
341     GX_ICON vehicle_screen_icon_6;
342     GX_PROMPT vehicle_screen_prompt_6;
343     GX_PIXELMAP_BUTTON vehicle_screen_mode_comfort_btn;
344     GX_ICON vehicle_screen_icon;
345     GX_PROMPT vehicle_screen_prompt;
346     GX_PIXELMAP_BUTTON vehicle_screen_mode_sport_btn;
347     GX_ICON vehicle_screen_icon_1;
348     GX_PROMPT vehicle_screen_prompt_1;
349     GX_PROMPT vehicle_screen_prompt_2;
350     GX_PROMPT vehicle_screen_prompt_3;
351     GX_ICON vehicle_screen_car_icon;
352     GX_SPRITE vehicle_screen_light_sprite_left;
353     GX_SPRITE vehicle_screen_light_sprite_right;
354     GX_ICON vehicle_screen_icon_8;
355     GX_ICON vehicle_screen_icon_9;
356     GX_ICON vehicle_screen_icon_2;
357     GX_ICON vehicle_screen_icon_3;
358     GX_ICON vehicle_screen_icon_4;
359     GX_ICON vehicle_screen_icon_5;
360     GX_ICON vehicle_screen_icon_10;
361     GX_NUMERIC_PROMPT vehicle_screen_battery_usage;
362     GX_NUMERIC_PROMPT vehicle_screen_miles;
363     GX_NUMERIC_PROMPT vehicle_screen_windshield_washer_level;
364     GX_NUMERIC_PROMPT vehicle_screen_lights_bulbs;
365     GX_NUMERIC_PROMPT vehicle_screen_air_filter_usage;
366     GX_NUMERIC_PROMPT vehicle_screen_front_left_brake_pad;
367     GX_NUMERIC_PROMPT vehicle_screen_front_right_brake_pad;
368     GX_NUMERIC_PROMPT vehicle_screen_rear_left_brake_pad;
369     GX_NUMERIC_PROMPT vehicle_screen_rear_right_brake_pad;
370     GX_NUMERIC_PROMPT vehicle_screen_front_left_tire_pressure;
371     GX_NUMERIC_PROMPT vehicle_screen_front_right_tire_pressure;
372     GX_NUMERIC_PROMPT vehicle_screen_rear_left_tire_pressure;
373     GX_NUMERIC_PROMPT vehicle_screen_rear_right_tire_pressure;
374     GX_PROMPT vehicle_screen_prompt_13;
375     GX_PROMPT vehicle_screen_prompt_13_1;
376     GX_PROMPT vehicle_screen_prompt_13_2;
377     GX_PROMPT vehicle_screen_prompt_13_3;
378     GX_PROMPT vehicle_screen_prompt_13_4;
379     GX_PROMPT vehicle_screen_prompt_13_5;
380     GX_PROMPT vehicle_screen_prompt_13_6;
381     GX_PROMPT vehicle_screen_prompt_13_7;
382     GX_PROMPT vehicle_screen_prompt_13_8;
383     GX_PROMPT vehicle_screen_prompt_13_9;
384     GX_PROMPT vehicle_screen_prompt_13_10;
385     GX_PROMPT vehicle_screen_prompt_13_11;
386     GX_PROMPT vehicle_screen_prompt_13_11_1;
387     GX_PROMPT vehicle_screen_prompt_13_11_2;
388     GX_PROMPT vehicle_screen_prompt_13_11_3;
389     GX_ICON vehicle_screen_icon_11;
390     GX_ICON vehicle_screen_icon_11_1;
391 } VEHICLE_SCREEN_CONTROL_BLOCK;
392 
393 typedef struct VOLUME_SCREEN_BASE_CONTROL_BLOCK_STRUCT
394 {
395     SCREEN_BASE_CONTROL_BLOCK base;
396     GX_WINDOW volume_screen_base_volume_progress_bar_win;
397     GX_WINDOW volume_screen_base_volume_progress_bar_bg;
398     GX_PROGRESS_BAR volume_screen_base_volume_progress_bar;
399     GX_NUMERIC_PROMPT volume_screen_base_volume_value;
400     GX_PROMPT volume_screen_base_volume_label;
401     GX_PIXELMAP_BUTTON volume_screen_base_mute_btn;
402     GX_PROMPT volume_screen_base_prompt_14;
403     GX_ICON volume_screen_base_bute_btn_icon_1;
404 } VOLUME_SCREEN_BASE_CONTROL_BLOCK;
405 
406 typedef struct AUDIO_SCREEN_CONTROL_BLOCK_STRUCT
407 {
408     VOLUME_SCREEN_BASE_CONTROL_BLOCK base;
409     GX_WINDOW audio_screen_music_info_win;
410     GX_PROMPT audio_screen_music_name;
411     GX_PROMPT audio_screen_singer_name;
412     GX_NUMERIC_PROMPT audio_screen_second;
413     GX_PROMPT audio_screen_second_colon;
414     GX_NUMERIC_PROMPT audio_screen_minute;
415     GX_PIXELMAP_BUTTON audio_screen_keypad_btn;
416     GX_PROMPT audio_screen_prompt_6;
417     GX_ICON audio_screen_icon;
418     GX_PIXELMAP_BUTTON audio_screen_end_call_btn;
419     GX_PROMPT audio_screen_prompt_1;
420     GX_ICON audio_screen_end_call_btn_icon;
421     GX_PIXELMAP_BUTTON audio_screen_pixelmap_button_4;
422     GX_PIXELMAP_BUTTON audio_screen_pixelmap_button;
423     GX_WINDOW audio_screen_window;
424     GX_RADIAL_PROGRESS_BAR audio_screen_radial_progress_bar;
425     GX_PIXELMAP_BUTTON audio_screen_play_btn;
426     GX_WINDOW audio_screen_play_mode_win;
427     GX_PIXELMAP_BUTTON audio_screen_pixelmap_button_1;
428     GX_PIXELMAP_BUTTON audio_screen_pixelmap_button_2;
429     GX_PIXELMAP_BUTTON audio_screen_pixelmap_button_5;
430 } AUDIO_SCREEN_CONTROL_BLOCK;
431 
432 typedef struct PHONE_SCREEN_CONTROL_BLOCK_STRUCT
433 {
434     VOLUME_SCREEN_BASE_CONTROL_BLOCK base;
435     GX_PIXELMAP_BUTTON phone_screen_keypad_btn;
436     GX_PROMPT phone_screen_prompt_6;
437     GX_ICON phone_screen_icon;
438     GX_PIXELMAP_BUTTON phone_screen_end_call_btn;
439     GX_PROMPT phone_screen_prompt_1;
440     GX_ICON phone_screen_end_call_btn_icon;
441     GX_WINDOW phone_screen_phone_call_win;
442     GX_PROMPT phone_screen_name;
443     GX_ICON phone_screen_portait_icon;
444     GX_ICON phone_screen_icon_15;
445     GX_NUMERIC_PROMPT phone_screen_minute;
446     GX_NUMERIC_PROMPT phone_screen_second;
447     GX_PROMPT phone_screen_second_colon;
448 } PHONE_SCREEN_CONTROL_BLOCK;
449 
450 
451 /* extern statically defined control blocks                                    */
452 
453 #ifndef GUIX_STUDIO_GENERATED_FILE
454 extern VOLUME_SCREEN_BASE_CONTROL_BLOCK volume_screen_base;
455 extern SCREEN_BASE_CONTROL_BLOCK screen_base;
456 extern BASE_CONTROL_BLOCK base;
457 extern VIDEO_SCREEN_CONTROL_BLOCK video_screen;
458 extern AUDIO_SCREEN_CONTROL_BLOCK audio_screen;
459 extern PHONE_SCREEN_CONTROL_BLOCK phone_screen;
460 extern CLIMATE_SCREEN_CONTROL_BLOCK climate_screen;
461 extern VEHICLE_SCREEN_CONTROL_BLOCK vehicle_screen;
462 extern MAIN_SCREEN_CONTROL_BLOCK main_screen;
463 #endif
464 
465 /* Declare event process functions, draw functions, and callback functions     */
466 
467 UINT volume_screen_base_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
468 UINT volume_progress_bar_event_process(GX_PROGRESS_BAR *widget, GX_EVENT *event_ptr);
469 VOID custom_pixelmap_button_draw(GX_PIXELMAP_BUTTON *widget);
470 UINT screen_base_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
471 UINT base_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
472 UINT video_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
473 VOID video_screen_pixelmap_button_draw(GX_PIXELMAP_BUTTON *widget);
474 VOID time_value_format(GX_NUMERIC_PROMPT *, INT);
475 UINT audio_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
476 UINT phone_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
477 UINT climate_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
478 UINT custom_progress_bar_event_process(GX_PROGRESS_BAR *widget, GX_EVENT *event_ptr);
479 UINT vehicle_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
480 UINT main_screen_event_process(GX_WINDOW *widget, GX_EVENT *event_ptr);
481 VOID radial_slider_draw(GX_RADIAL_SLIDER *widget);
482 
483 /* Declare the GX_STUDIO_DISPLAY_INFO structure                                */
484 
485 
486 typedef struct GX_STUDIO_DISPLAY_INFO_STRUCT
487 {
488     GX_CONST GX_CHAR *name;
489     GX_CONST GX_CHAR *canvas_name;
490     GX_CONST GX_THEME **theme_table;
491     GX_CONST GX_STRING **language_table;
492     USHORT   theme_table_size;
493     USHORT   language_table_size;
494     UINT     string_table_size;
495     UINT     x_resolution;
496     UINT     y_resolution;
497     GX_DISPLAY *display;
498     GX_CANVAS  *canvas;
499     GX_WINDOW_ROOT *root_window;
500     GX_COLOR   *canvas_memory;
501     ULONG      canvas_memory_size;
502     USHORT     rotation_angle;
503 } GX_STUDIO_DISPLAY_INFO;
504 
505 
506 /* Declare Studio-generated functions for creating top-level widgets           */
507 
508 UINT gx_studio_icon_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
509 UINT gx_studio_pixelmap_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
510 UINT gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
511 UINT gx_studio_progress_bar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
512 UINT gx_studio_radial_progress_bar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
513 UINT gx_studio_radial_slider_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
514 UINT gx_studio_sprite_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
515 UINT gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
516 UINT gx_studio_numeric_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
517 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
518 UINT gx_studio_template_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
519 GX_WIDGET *gx_studio_widget_create(GX_BYTE *storage, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent);
520 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget);
521 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *), GX_UBYTE language, USHORT theme, GX_WINDOW_ROOT **return_root);
522 UINT gx_studio_auto_event_handler(GX_WIDGET *widget, GX_EVENT *event_ptr, GX_CONST GX_STUDIO_EVENT_PROCESS *record);
523 
524 /* Determine if a C++ compiler is being used.  If so, complete the standard
525   C conditional started above.                                                 */
526 #ifdef __cplusplus
527 }
528 #endif
529 
530 #endif                                       /* sentry                         */
531