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