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 #define GUIX_STUDIO_GENERATED_FILE
14 #include <stddef.h>
15 #include "guix_sprite_resources.h"
16 #include "guix_sprite_specifications.h"
17 
18 static GX_WIDGET *gx_studio_nested_widget_create(GX_BYTE *control, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent);
19 MAIN_WINDOW_CONTROL_BLOCK main_window;
20 GX_DISPLAY display_1_control_block;
21 GX_WINDOW_ROOT display_1_root_window;
22 GX_CANVAS  display_1_canvas_control_block;
23 ULONG      display_1_canvas_memory[307200];
24 
25 extern GX_CONST GX_THEME *display_1_theme_table[];
26 extern GX_CONST GX_STRING *display_1_language_table[];
27 
28 GX_STUDIO_DISPLAY_INFO guix_sprite_display_table[1] =
29 {
30     {
31     "display_1",
32     "display_1_canvas",
33     display_1_theme_table,
34     display_1_language_table,
35     DISPLAY_1_THEME_TABLE_SIZE,
36     DISPLAY_1_LANGUAGE_TABLE_SIZE,
37     DISPLAY_1_STRING_TABLE_SIZE,
38     640,                                     /* x resolution                   */
39     480,                                     /* y resolution                   */
40     &display_1_control_block,
41     &display_1_canvas_control_block,
42     &display_1_root_window,
43     display_1_canvas_memory,                 /* canvas memory area             */
44     1228800,                                 /* canvas memory size in bytes    */
45     GX_SCREEN_ROTATION_NONE                  /* rotation angle                 */
46     }
47 };
48 
49 
gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET * info,GX_WIDGET * control_block,GX_WIDGET * parent)50 UINT gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent)
51 {
52     UINT status;
53     GX_ICON *icon = (GX_ICON *) control_block;
54     GX_ICON_PROPERTIES *props = (GX_ICON_PROPERTIES *) info->properties;
55     status = gx_icon_create(icon, info->widget_name, parent, props->normal_pixelmap_id, info->style, info->widget_id, info->size.gx_rectangle_left, info->size.gx_rectangle_top);
56     if (props->selected_pixelmap_id)
57     {
58         gx_icon_pixelmap_set(icon, props->normal_pixelmap_id, props->selected_pixelmap_id);
59     }
60     else
61     {
62         gx_widget_resize((GX_WIDGET *)icon, (GX_RECTANGLE *)&info->size);
63     }
64     return status;
65 }
66 
gx_studio_pixelmap_slider_create(GX_CONST GX_STUDIO_WIDGET * info,GX_WIDGET * control_block,GX_WIDGET * parent)67 UINT gx_studio_pixelmap_slider_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent)
68 {
69     UINT status;
70     GX_PIXELMAP_SLIDER *slider = (GX_PIXELMAP_SLIDER *) control_block;
71     GX_PIXELMAP_SLIDER_PROPERTIES *props = (GX_PIXELMAP_SLIDER_PROPERTIES *) info->properties;
72     GX_PIXELMAP_SLIDER_INFO pixelmap_info;
73     GX_SLIDER_INFO slider_info;
74     slider_info.gx_slider_info_min_val = props->min_val;
75     slider_info.gx_slider_info_max_val = props->max_val;
76     slider_info.gx_slider_info_current_val = props->current_val;
77     slider_info.gx_slider_info_increment = props->increment;
78     slider_info.gx_slider_info_min_travel = props->min_travel;
79     slider_info.gx_slider_info_max_travel = props->max_travel;
80     slider_info.gx_slider_info_needle_width = props->needle_width;
81     slider_info.gx_slider_info_needle_height = props->needle_height;
82     slider_info.gx_slider_info_needle_inset = props->needle_inset;
83     slider_info.gx_slider_info_needle_hotspot_offset = props->needle_hotspot;
84     pixelmap_info.gx_pixelmap_slider_info_lower_background_pixelmap = props->lower_pixelmap;
85     pixelmap_info.gx_pixelmap_slider_info_upper_background_pixelmap = props->upper_pixelmap;
86     pixelmap_info.gx_pixelmap_slider_info_needle_pixelmap = props->needle_pixelmap;
87     status = gx_pixelmap_slider_create(slider,
88                     info->widget_name,
89                     parent,
90                     &slider_info,
91                     &pixelmap_info,
92                     info->style,
93                     info->widget_id,
94                     &info->size);
95     return status;
96 }
97 
gx_studio_sprite_create(GX_CONST GX_STUDIO_WIDGET * info,GX_WIDGET * control_block,GX_WIDGET * parent)98 UINT gx_studio_sprite_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent)
99 {
100     UINT status;
101     GX_SPRITE *sprite = (GX_SPRITE *) control_block;
102     GX_SPRITE_PROPERTIES *props = (GX_SPRITE_PROPERTIES *) info->properties;
103     status = gx_sprite_create(sprite, info->widget_name, parent,
104                props->frame_list, props->frame_count,
105                info->style, info->widget_id, &info->size);
106     return status;
107 }
108 
gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET * info,GX_WIDGET * control_block,GX_WIDGET * parent)109 UINT gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent)
110 {
111     UINT status;
112     GX_PROMPT *prompt = (GX_PROMPT *) control_block;
113     GX_PROMPT_PROPERTIES *props = (GX_PROMPT_PROPERTIES *) info->properties;
114     status = gx_prompt_create(prompt, info->widget_name, parent, props->string_id, info->style, info->widget_id, &info->size);
115     if (status == GX_SUCCESS)
116     {
117         gx_prompt_font_set(prompt, props->font_id);
118 #if defined(GUIX_5_4_0_COMPATIBILITY)
119         gx_prompt_text_color_set(prompt, props->normal_text_color_id, props->selected_text_color_id);
120 #else
121         gx_prompt_text_color_set(prompt, props->normal_text_color_id, props->selected_text_color_id, props->disabled_text_color_id);
122 #endif
123     }
124     return status;
125 }
126 
gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET * info,GX_WIDGET * control_block,GX_WIDGET * parent)127 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent)
128 {
129     UINT status;
130     GX_WINDOW *window = (GX_WINDOW *) control_block;
131     GX_WINDOW_PROPERTIES *props = (GX_WINDOW_PROPERTIES *) info->properties;
132     status = gx_window_create(window, info->widget_name, parent, info->style, info->widget_id, &info->size);
133     if (status == GX_SUCCESS)
134     {
135         if (props->wallpaper_id)
136         {
137             gx_window_wallpaper_set(window, props->wallpaper_id, info->style & GX_STYLE_TILE_WALLPAPER);
138         }
139     }
140     return status;
141 }
142 GX_WINDOW_PROPERTIES main_window_properties =
143 {
144     0                                        /* wallpaper pixelmap id          */
145 };
146 GX_SPRITE_FRAME main_window_bird_sprite_frame_list[18] =
147 {
148     {
149         GX_PIXELMAP_ID_BIRD_01,              /* pixelmap id                    */
150         0,                                   /* x offset                       */
151         0,                                   /* y offset                       */
152         2,                                   /* frame delay                    */
153         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
154         40                                   /* alpha value                    */
155     },
156     {
157         GX_PIXELMAP_ID_BIRD_02,              /* pixelmap id                    */
158         0,                                   /* x offset                       */
159         0,                                   /* y offset                       */
160         2,                                   /* frame delay                    */
161         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
162         80                                   /* alpha value                    */
163     },
164     {
165         GX_PIXELMAP_ID_BIRD_03,              /* pixelmap id                    */
166         0,                                   /* x offset                       */
167         0,                                   /* y offset                       */
168         2,                                   /* frame delay                    */
169         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
170         120                                  /* alpha value                    */
171     },
172     {
173         GX_PIXELMAP_ID_BIRD_04,              /* pixelmap id                    */
174         0,                                   /* x offset                       */
175         0,                                   /* y offset                       */
176         2,                                   /* frame delay                    */
177         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
178         200                                  /* alpha value                    */
179     },
180     {
181         GX_PIXELMAP_ID_BIRD_05,              /* pixelmap id                    */
182         0,                                   /* x offset                       */
183         0,                                   /* y offset                       */
184         2,                                   /* frame delay                    */
185         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
186         255                                  /* alpha value                    */
187     },
188     {
189         GX_PIXELMAP_ID_BIRD_04,              /* pixelmap id                    */
190         0,                                   /* x offset                       */
191         0,                                   /* y offset                       */
192         2,                                   /* frame delay                    */
193         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
194         255                                  /* alpha value                    */
195     },
196     {
197         GX_PIXELMAP_ID_BIRD_03,              /* pixelmap id                    */
198         0,                                   /* x offset                       */
199         0,                                   /* y offset                       */
200         2,                                   /* frame delay                    */
201         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
202         255                                  /* alpha value                    */
203     },
204     {
205         GX_PIXELMAP_ID_BIRD_02,              /* pixelmap id                    */
206         0,                                   /* x offset                       */
207         0,                                   /* y offset                       */
208         2,                                   /* frame delay                    */
209         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
210         255                                  /* alpha value                    */
211     },
212     {
213         GX_PIXELMAP_ID_BIRD_01,              /* pixelmap id                    */
214         0,                                   /* x offset                       */
215         0,                                   /* y offset                       */
216         2,                                   /* frame delay                    */
217         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
218         255                                  /* alpha value                    */
219     },
220     {
221         GX_PIXELMAP_ID_BIRD_02,              /* pixelmap id                    */
222         0,                                   /* x offset                       */
223         0,                                   /* y offset                       */
224         2,                                   /* frame delay                    */
225         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
226         255                                  /* alpha value                    */
227     },
228     {
229         GX_PIXELMAP_ID_BIRD_03,              /* pixelmap id                    */
230         0,                                   /* x offset                       */
231         0,                                   /* y offset                       */
232         2,                                   /* frame delay                    */
233         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
234         255                                  /* alpha value                    */
235     },
236     {
237         GX_PIXELMAP_ID_BIRD_04,              /* pixelmap id                    */
238         0,                                   /* x offset                       */
239         0,                                   /* y offset                       */
240         2,                                   /* frame delay                    */
241         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
242         255                                  /* alpha value                    */
243     },
244     {
245         GX_PIXELMAP_ID_BIRD_05,              /* pixelmap id                    */
246         0,                                   /* x offset                       */
247         0,                                   /* y offset                       */
248         2,                                   /* frame delay                    */
249         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
250         200                                  /* alpha value                    */
251     },
252     {
253         GX_PIXELMAP_ID_BIRD_04,              /* pixelmap id                    */
254         0,                                   /* x offset                       */
255         0,                                   /* y offset                       */
256         2,                                   /* frame delay                    */
257         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
258         160                                  /* alpha value                    */
259     },
260     {
261         GX_PIXELMAP_ID_BIRD_03,              /* pixelmap id                    */
262         0,                                   /* x offset                       */
263         0,                                   /* y offset                       */
264         2,                                   /* frame delay                    */
265         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
266         120                                  /* alpha value                    */
267     },
268     {
269         GX_PIXELMAP_ID_BIRD_02,              /* pixelmap id                    */
270         0,                                   /* x offset                       */
271         0,                                   /* y offset                       */
272         2,                                   /* frame delay                    */
273         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
274         100                                  /* alpha value                    */
275     },
276     {
277         GX_PIXELMAP_ID_BIRD_01,              /* pixelmap id                    */
278         0,                                   /* x offset                       */
279         0,                                   /* y offset                       */
280         2,                                   /* frame delay                    */
281         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
282         80                                   /* alpha value                    */
283     },
284     {
285         GX_PIXELMAP_ID_BIRD_02,              /* pixelmap id                    */
286         0,                                   /* x offset                       */
287         0,                                   /* y offset                       */
288         2,                                   /* frame delay                    */
289         GX_SPRITE_BACKGROUND_NO_ACTION,      /* background operation           */
290         40                                   /* alpha value                    */
291     }
292 };
293 
294 GX_SPRITE_PROPERTIES main_window_bird_sprite_properties =
295 {
296     main_window_bird_sprite_frame_list,      /* address of frame list          */
297     18,                                      /* frame count                    */
298 };
299 GX_ICON_PROPERTIES main_window_icon_1_properties =
300 {
301     GX_PIXELMAP_ID_MS_AZURE_LOGO_SMALL,      /* normal pixelmap id             */
302     0                                        /* selected pixelmap id           */
303 };
304 GX_PIXELMAP_SLIDER_PROPERTIES main_window_slider_background_size_properties =
305 {
306     10,                                      /* minimum value                  */
307     100,                                     /* maximum value                  */
308     100,                                     /* current value                  */
309     10,                                      /* increment                      */
310     20,                                      /* minimum travel                 */
311     20,                                      /* maximum travel                 */
312     5,                                       /* needle width                   */
313     10,                                      /* needle height                  */
314     3,                                       /* needle inset                   */
315     2,                                       /* needle hotspot                 */
316     GX_PIXELMAP_ID_GX_SLIDER_BG_HORIZONTAL,  /* lower pixelmap id              */
317     0,                                       /* upper pixelmap id              */
318     GX_PIXELMAP_ID_GX_SLIDER_NEEDLES_HORIZONTAL  /* needle pixelmap id         */
319 };
320 GX_PIXELMAP_SLIDER_PROPERTIES main_window_slider_alpha_value_properties =
321 {
322     0,                                       /* minimum value                  */
323     255,                                     /* maximum value                  */
324     255,                                     /* current value                  */
325     10,                                      /* increment                      */
326     20,                                      /* minimum travel                 */
327     20,                                      /* maximum travel                 */
328     5,                                       /* needle width                   */
329     10,                                      /* needle height                  */
330     3,                                       /* needle inset                   */
331     2,                                       /* needle hotspot                 */
332     GX_PIXELMAP_ID_GX_SLIDER_BG_HORIZONTAL,  /* lower pixelmap id              */
333     0,                                       /* upper pixelmap id              */
334     GX_PIXELMAP_ID_GX_SLIDER_NEEDLES_HORIZONTAL  /* needle pixelmap id         */
335 };
336 GX_PROMPT_PROPERTIES main_window_size_prompt_properties =
337 {
338     GX_STRING_ID_STRING_15,                  /* string id                      */
339     GX_FONT_ID_PROMPT,                       /* font id                        */
340     GX_COLOR_ID_TEXT,                        /* normal text color              */
341     GX_COLOR_ID_SELECTED_TEXT,               /* selected text color            */
342     GX_COLOR_ID_TEXT                         /* disabled text color            */
343 };
344 GX_PROMPT_PROPERTIES main_window_fade_prompt_properties =
345 {
346     GX_STRING_ID_STRING_16,                  /* string id                      */
347     GX_FONT_ID_PROMPT,                       /* font id                        */
348     GX_COLOR_ID_TEXT,                        /* normal text color              */
349     GX_COLOR_ID_SELECTED_TEXT,               /* selected text color            */
350     GX_COLOR_ID_TEXT                         /* disabled text color            */
351 };
352 
353 GX_CONST GX_STUDIO_WIDGET main_window_fade_prompt_define =
354 {
355     "fade_prompt",
356     GX_TYPE_PROMPT,                          /* widget type                    */
357     GX_ID_NONE,                              /* widget id                      */
358     #if defined(GX_WIDGET_USER_DATA)
359     0,                                       /* user data                      */
360     #endif
361     GX_STYLE_BORDER_THIN|GX_STYLE_ENABLED|GX_STYLE_TEXT_CENTER,   /* style flags */
362     GX_STATUS_ACCEPTS_FOCUS,                 /* status flags                   */
363     sizeof(GX_PROMPT),                       /* control block size             */
364     GX_COLOR_ID_SHADOW,                      /* normal color id                */
365     GX_COLOR_ID_SELECTED_FILL,               /* selected color id              */
366     GX_COLOR_ID_SHADOW,                      /* disabled color id              */
367     gx_studio_prompt_create,                 /* create function                */
368     GX_NULL,                                 /* drawing function override      */
369     GX_NULL,                                 /* event function override        */
370     {60, 417, 200, 443},                     /* widget size                    */
371     GX_NULL,                                 /* no next widget                 */
372     GX_NULL,                                 /* no child widgets               */
373     offsetof(MAIN_WINDOW_CONTROL_BLOCK, main_window_fade_prompt), /* control block */
374     (void *) &main_window_fade_prompt_properties /* extended properties        */
375 };
376 
377 GX_CONST GX_STUDIO_WIDGET main_window_size_prompt_define =
378 {
379     "size_prompt",
380     GX_TYPE_PROMPT,                          /* widget type                    */
381     GX_ID_NONE,                              /* widget id                      */
382     #if defined(GX_WIDGET_USER_DATA)
383     0,                                       /* user data                      */
384     #endif
385     GX_STYLE_BORDER_THIN|GX_STYLE_ENABLED|GX_STYLE_TEXT_CENTER,   /* style flags */
386     GX_STATUS_ACCEPTS_FOCUS,                 /* status flags                   */
387     sizeof(GX_PROMPT),                       /* control block size             */
388     GX_COLOR_ID_SHADOW,                      /* normal color id                */
389     GX_COLOR_ID_SELECTED_FILL,               /* selected color id              */
390     GX_COLOR_ID_SHADOW,                      /* disabled color id              */
391     gx_studio_prompt_create,                 /* create function                */
392     GX_NULL,                                 /* drawing function override      */
393     GX_NULL,                                 /* event function override        */
394     {60, 373, 200, 403},                     /* widget size                    */
395     &main_window_fade_prompt_define,         /* next widget definition         */
396     GX_NULL,                                 /* no child widgets               */
397     offsetof(MAIN_WINDOW_CONTROL_BLOCK, main_window_size_prompt), /* control block */
398     (void *) &main_window_size_prompt_properties /* extended properties        */
399 };
400 
401 GX_CONST GX_STUDIO_WIDGET main_window_slider_alpha_value_define =
402 {
403     "slider_alpha_value",
404     GX_TYPE_PIXELMAP_SLIDER,                 /* widget type                    */
405     ID_ALPHA_SLIDER,                         /* widget id                      */
406     #if defined(GX_WIDGET_USER_DATA)
407     0,                                       /* user data                      */
408     #endif
409     GX_STYLE_BORDER_RAISED|GX_STYLE_ENABLED,   /* style flags                  */
410     GX_STATUS_ACCEPTS_FOCUS,                 /* status flags                   */
411     sizeof(GX_PIXELMAP_SLIDER),              /* control block size             */
412     GX_COLOR_ID_WIDGET_FILL,                 /* normal color id                */
413     GX_COLOR_ID_WIDGET_FILL,                 /* selected color id              */
414     GX_COLOR_ID_WIDGET_FILL,                 /* disabled color id              */
415     gx_studio_pixelmap_slider_create,        /* create function                */
416     GX_NULL,                                 /* drawing function override      */
417     GX_NULL,                                 /* event function override        */
418     {206, 415, 507, 452},                    /* widget size                    */
419     &main_window_size_prompt_define,         /* next widget definition         */
420     GX_NULL,                                 /* no child widgets               */
421     offsetof(MAIN_WINDOW_CONTROL_BLOCK, main_window_slider_alpha_value), /* control block */
422     (void *) &main_window_slider_alpha_value_properties /* extended properties */
423 };
424 
425 GX_CONST GX_STUDIO_WIDGET main_window_slider_background_size_define =
426 {
427     "slider_background_size",
428     GX_TYPE_PIXELMAP_SLIDER,                 /* widget type                    */
429     ID_BACKGROUND_SIZE,                      /* widget id                      */
430     #if defined(GX_WIDGET_USER_DATA)
431     0,                                       /* user data                      */
432     #endif
433     GX_STYLE_BORDER_RAISED|GX_STYLE_ENABLED,   /* style flags                  */
434     GX_STATUS_ACCEPTS_FOCUS,                 /* status flags                   */
435     sizeof(GX_PIXELMAP_SLIDER),              /* control block size             */
436     GX_COLOR_ID_WIDGET_FILL,                 /* normal color id                */
437     GX_COLOR_ID_WIDGET_FILL,                 /* selected color id              */
438     GX_COLOR_ID_WIDGET_FILL,                 /* disabled color id              */
439     gx_studio_pixelmap_slider_create,        /* create function                */
440     GX_NULL,                                 /* drawing function override      */
441     GX_NULL,                                 /* event function override        */
442     {207, 373, 508, 410},                    /* widget size                    */
443     &main_window_slider_alpha_value_define,  /* next widget definition         */
444     GX_NULL,                                 /* no child widgets               */
445     offsetof(MAIN_WINDOW_CONTROL_BLOCK, main_window_slider_background_size), /* control block */
446     (void *) &main_window_slider_background_size_properties /* extended properties */
447 };
448 
449 GX_CONST GX_STUDIO_WIDGET main_window_icon_1_define =
450 {
451     "icon_1",
452     GX_TYPE_ICON,                            /* widget type                    */
453     GX_ID_NONE,                              /* widget id                      */
454     #if defined(GX_WIDGET_USER_DATA)
455     0,                                       /* user data                      */
456     #endif
457     GX_STYLE_BORDER_NONE|GX_STYLE_ENABLED|GX_STYLE_HALIGN_LEFT|GX_STYLE_VALIGN_TOP,   /* style flags */
458     GX_STATUS_ACCEPTS_FOCUS,                 /* status flags                   */
459     sizeof(GX_ICON),                         /* control block size             */
460     GX_COLOR_ID_WIDGET_FILL,                 /* normal color id                */
461     GX_COLOR_ID_SELECTED_FILL,               /* selected color id              */
462     GX_COLOR_ID_WIDGET_FILL,                 /* disabled color id              */
463     gx_studio_icon_create,                   /* create function                */
464     GX_NULL,                                 /* drawing function override      */
465     GX_NULL,                                 /* event function override        */
466     {18, 18, 206, 47},                       /* widget size                    */
467     &main_window_slider_background_size_define, /* next widget definition      */
468     GX_NULL,                                 /* no child widgets               */
469     offsetof(MAIN_WINDOW_CONTROL_BLOCK, main_window_icon_1), /* control block  */
470     (void *) &main_window_icon_1_properties  /* extended properties            */
471 };
472 
473 GX_CONST GX_STUDIO_WIDGET main_window_bird_sprite_define =
474 {
475     "bird_sprite",
476     GX_TYPE_SPRITE,                          /* widget type                    */
477     ID_BIRD_SPRITE,                          /* widget id                      */
478     #if defined(GX_WIDGET_USER_DATA)
479     0,                                       /* user data                      */
480     #endif
481     GX_STYLE_BORDER_NONE|GX_STYLE_TRANSPARENT|GX_STYLE_ENABLED|GX_STYLE_SPRITE_AUTO,   /* style flags */
482     GX_STATUS_ACCEPTS_FOCUS,                 /* status flags                   */
483     sizeof(GX_SPRITE),                       /* control block size             */
484     GX_COLOR_ID_WHITE,                       /* normal color id                */
485     GX_COLOR_ID_SELECTED_FILL,               /* selected color id              */
486     GX_COLOR_ID_WHITE,                       /* disabled color id              */
487     gx_studio_sprite_create,                 /* create function                */
488     GX_NULL,                                 /* drawing function override      */
489     GX_NULL,                                 /* event function override        */
490     {56, 51, 213, 200},                      /* widget size                    */
491     &main_window_icon_1_define,              /* next widget definition         */
492     GX_NULL,                                 /* no child widgets               */
493     offsetof(MAIN_WINDOW_CONTROL_BLOCK, main_window_bird_sprite), /* control block */
494     (void *) &main_window_bird_sprite_properties /* extended properties        */
495 };
496 
497 GX_CONST GX_STUDIO_WIDGET main_window_define =
498 {
499     "main_window",
500     GX_TYPE_WINDOW,                          /* widget type                    */
501     GX_ID_NONE,                              /* widget id                      */
502     #if defined(GX_WIDGET_USER_DATA)
503     0,                                       /* user data                      */
504     #endif
505     GX_STYLE_BORDER_NONE|GX_STYLE_TRANSPARENT,   /* style flags                */
506     GX_STATUS_ACCEPTS_FOCUS,                 /* status flags                   */
507     sizeof(MAIN_WINDOW_CONTROL_BLOCK),       /* control block size             */
508     GX_COLOR_ID_WHITE,                       /* normal color id                */
509     GX_COLOR_ID_WHITE,                       /* selected color id              */
510     GX_COLOR_ID_WHITE,                       /* disabled color id              */
511     gx_studio_window_create,                 /* create function                */
512     (VOID (*)(GX_WIDGET *)) MainWindowDraw,  /* drawing function override      */
513     (UINT (*)(GX_WIDGET *, GX_EVENT *)) MainWindowEventProcess, /* event function override */
514     {0, 0, 639, 479},                        /* widget size                    */
515     GX_NULL,                                 /* next widget                    */
516     &main_window_bird_sprite_define,         /* child widget                   */
517     0,                                       /* control block                  */
518     (void *) &main_window_properties         /* extended properties            */
519 };
520 GX_CONST GX_STUDIO_WIDGET_ENTRY guix_sprite_widget_table[] =
521 {
522     { &main_window_define, (GX_WIDGET *) &main_window },
523     {GX_NULL, GX_NULL}
524 };
525 
gx_studio_nested_widget_create(GX_BYTE * control,GX_CONST GX_STUDIO_WIDGET * definition,GX_WIDGET * parent)526 static GX_WIDGET *gx_studio_nested_widget_create(GX_BYTE *control, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent)
527 {
528     UINT status = GX_SUCCESS;
529     GX_WIDGET *widget = GX_NULL;
530     GX_VALUE   list_count = 0;
531     GX_VALUE   list_total_count = 0;
532 
533     if(parent && (parent->gx_widget_type == GX_TYPE_MENU))
534     {
535         list_total_count = ((GX_MENU *)parent)->gx_menu_list_total_count;
536     }
537 
538     while(definition && status == GX_SUCCESS)
539     {
540         if (definition->create_function)
541         {
542             if (definition->style & GX_STYLE_DYNAMICALLY_ALLOCATED)
543             {
544                 status = gx_widget_allocate(&widget, definition->control_block_size);
545                 if (status != GX_SUCCESS)
546                 {
547                     return GX_NULL;
548                 }
549             }
550             else
551             {
552                 if (control == GX_NULL)
553                 {
554                     return GX_NULL;
555                 }
556                 widget = (GX_WIDGET *) (control + definition->control_block_offset);
557             }
558 
559             status = definition->create_function(definition, widget, parent);
560 
561             if(list_count < list_total_count)
562             {
563                 gx_menu_insert((GX_MENU *)parent, widget);
564                 ((GX_MENU *)parent)->gx_menu_list_total_count--;
565                 list_count++;
566             }
567 
568             if (status == GX_SUCCESS)
569             {
570                 if (definition->widget_type != GX_TYPE_TEMPLATE)
571                 {
572 #if defined(GUIX_5_4_0_COMPATIBILITY)
573                     gx_widget_fill_color_set(widget, definition->normal_fill_color_id, definition->selected_fill_color_id);
574 #else
575                     gx_widget_fill_color_set(widget, definition->normal_fill_color_id, definition->selected_fill_color_id, definition->disabled_fill_color_id);
576 #endif
577                 }
578 
579                 if (!(definition->status & GX_STATUS_ACCEPTS_FOCUS))
580                 {
581                     gx_widget_status_remove(widget, GX_STATUS_ACCEPTS_FOCUS);
582                 }
583 
584                 if (definition->draw_function)
585                 {
586                     gx_widget_draw_set(widget, definition->draw_function);
587                 }
588                 if (definition->event_function)
589                 {
590                     gx_widget_event_process_set(widget, definition->event_function);
591                 }
592 
593                 #if defined(GX_WIDGET_USER_DATA)
594                 widget->gx_widget_user_data = definition->user_data;
595                 #endif
596 
597                 if (definition->child_widget)
598                 {
599                     gx_studio_nested_widget_create(control, definition->child_widget, widget);
600                 }
601             }
602             definition = definition->next_widget;
603         }
604     }
605     return widget;
606 }
607 
gx_studio_widget_create(GX_BYTE * control,GX_CONST GX_STUDIO_WIDGET * definition,GX_WIDGET * parent)608 GX_WIDGET *gx_studio_widget_create(GX_BYTE *control, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent)
609 {
610     GX_WIDGET *widget;
611     widget = gx_studio_nested_widget_create(control, definition, GX_NULL);
612 
613     if (parent && widget)
614     {
615         gx_widget_attach(parent, widget);
616     }
617     return widget;
618 }
619 
gx_studio_named_widget_create(char * name,GX_WIDGET * parent,GX_WIDGET ** new_widget)620 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget)
621 {
622     UINT status = GX_FAILURE;
623     GX_CONST GX_STUDIO_WIDGET_ENTRY *entry = guix_sprite_widget_table;
624     GX_WIDGET *widget = GX_NULL;
625 
626     while(entry->widget_information)
627     {
628         if (!strcmp(name, entry->widget_information->widget_name))
629         {
630             widget = gx_studio_widget_create((GX_BYTE *) entry->widget, entry->widget_information, parent);
631             if (widget)
632             {
633                 status = GX_SUCCESS;
634             }
635             break;
636         }
637         entry++;
638     }
639 
640     if (new_widget)
641     {
642         *new_widget = widget;
643     }
644     return status;
645 }
646 
647 
gx_studio_display_configure(USHORT display,UINT (* driver)(GX_DISPLAY *),GX_UBYTE language,USHORT theme,GX_WINDOW_ROOT ** return_root)648 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *),
649     GX_UBYTE language, USHORT theme, GX_WINDOW_ROOT **return_root)
650 {
651     GX_CONST GX_THEME *theme_ptr;
652     GX_RECTANGLE size;
653 
654     GX_STUDIO_DISPLAY_INFO *display_info = &guix_sprite_display_table[display];
655 
656 
657 /* create the requested display                                                */
658 
659     gx_display_create(display_info->display,
660                       display_info->name,
661                       driver,
662                       (GX_VALUE) display_info->x_resolution,
663                       (GX_VALUE) display_info->y_resolution);
664 
665 
666 /* install the request theme                                                   */
667 
668     if(display_info->theme_table)
669     {
670         theme_ptr = display_info->theme_table[theme];
671         if(theme_ptr)
672         {
673             gx_display_color_table_set(display_info->display, theme_ptr->theme_color_table, theme_ptr->theme_color_table_size);
674 
675 /* install the color palette if required                                       */
676             if (display_info->display->gx_display_driver_palette_set &&
677                 theme_ptr->theme_palette != NULL)
678             {
679                 display_info->display->gx_display_driver_palette_set(display_info->display, theme_ptr->theme_palette, theme_ptr->theme_palette_size);
680             }
681 
682             gx_display_font_table_set(display_info->display, theme_ptr->theme_font_table, theme_ptr->theme_font_table_size);
683             gx_display_pixelmap_table_set(display_info->display, theme_ptr->theme_pixelmap_table, theme_ptr->theme_pixelmap_table_size);
684             gx_system_scroll_appearance_set(theme_ptr->theme_vertical_scroll_style, (GX_SCROLLBAR_APPEARANCE *) &theme_ptr->theme_vertical_scrollbar_appearance);
685             gx_system_scroll_appearance_set(theme_ptr->theme_horizontal_scroll_style, (GX_SCROLLBAR_APPEARANCE *) &theme_ptr->theme_horizontal_scrollbar_appearance);
686         }
687     }
688 
689 /* Install the language table.                                                 */
690 
691     if(display_info->language_table)
692     {
693         gx_display_language_table_set_ext(display_info->display, display_info->language_table, (GX_UBYTE) display_info->language_table_size, display_info->string_table_size);
694         gx_display_active_language_set(display_info->display, language);
695     }
696 
697 /* Set screen rotation angle.                                                  */
698 
699     display_info->display->gx_display_rotation_angle = display_info->rotation_angle;
700 
701 /* create the canvas for this display                                          */
702 
703     gx_canvas_create(display_info->canvas,
704                      display_info->canvas_name,
705                      display_info->display,
706                      GX_CANVAS_MANAGED | GX_CANVAS_VISIBLE,
707                      display_info->x_resolution,
708                      display_info->y_resolution,
709                      display_info->canvas_memory,
710                      display_info->canvas_memory_size);
711 
712 /* Create the root window for this canvas                                      */
713 
714     gx_utility_rectangle_define(&size,
715                                 0, 0,
716                                 (GX_VALUE) (display_info->x_resolution - 1),
717                                 (GX_VALUE) (display_info->y_resolution - 1));
718 
719     gx_window_root_create(display_info->root_window,
720                           display_info->name,
721                           display_info->canvas, GX_STYLE_NONE, 0, &size);
722     if (return_root)
723     {
724         *return_root = display_info->root_window;
725     }
726     return GX_SUCCESS;
727 }
728 #undef GUIX_STUDIO_GENERATED_FILE
729