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.2.0.1                                               */
9 /*  Date (dd.mm.yyyy): 31.10.2022   Time (hh:mm): 14:12                        */
10 /*******************************************************************************/
11 
12 
13 #ifndef _SYSTEM_SCREEN_STACK_SPECIFICATIONS_H_
14 #define _SYSTEM_SCREEN_STACK_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_BACK 1
26 #define ID_HOME_BUTTON 2
27 #define ID_SETTING 3
28 #define ID_SETTING_SCREEN 4
29 #define ID_LANGUAGE 5
30 #define ID_PROMPT_BOOK 6
31 #define ID_BTN_BOOKSHELF 7
32 
33 
34 /* Define animation ids                                                        */
35 
36 #define ID_FADE_IN_BOOKSELF 1
37 #define ID_SLIDE_IN_MAIN_SCREEN 2
38 #define ID_SLIDE_OUT_MAIN_SCREEN 3
39 #define GX_NEXT_ANIMATION_ID 4
40 
41 
42 /* Define user event ids                                                       */
43 
44 #define GX_NEXT_USER_EVENT_ID GX_FIRST_USER_EVENT
45 
46 #define GX_ACTION_FLAG_DYNAMIC_TARGET 0x01
47 #define GX_ACTION_FLAG_DYNAMIC_PARENT 0x02
48 #define GX_ACTION_FLAG_POP_TARGET     0x04
49 #define GX_ACTION_FLAG_POP_PARENT     0x08
50 
51 typedef struct GX_STUDIO_ACTION_STRUCT
52 {
53     GX_UBYTE opcode;
54     GX_UBYTE flags;
55     GX_CONST VOID *parent;
56     GX_CONST VOID *target;
57     GX_CONST GX_ANIMATION_INFO  *animation;
58 } GX_STUDIO_ACTION;
59 
60 typedef struct GX_STUDIO_EVENT_ENTRY_STRUCT
61 {
62     ULONG event_type;
63     USHORT event_sender;
64     GX_CONST GX_STUDIO_ACTION *action_list;
65 } GX_STUDIO_EVENT_ENTRY;
66 
67 typedef struct GX_STUDIO_EVENT_PROCESS_STRUCT
68 {
69     GX_CONST GX_STUDIO_EVENT_ENTRY *event_table;
70     UINT (*chain_event_handler)(GX_WIDGET *, GX_EVENT *);
71 } GX_STUDIO_EVENT_PROCESS;
72 
73 /* Declare properties structures for each utilized widget type                 */
74 
75 typedef struct GX_STUDIO_WIDGET_STRUCT
76 {
77    GX_CHAR *widget_name;
78    USHORT  widget_type;
79    USHORT  widget_id;
80    #if defined(GX_WIDGET_USER_DATA)
81    INT   user_data;
82    #endif
83    ULONG style;
84    ULONG status;
85    ULONG control_block_size;
86    GX_RESOURCE_ID normal_fill_color_id;
87    GX_RESOURCE_ID selected_fill_color_id;
88    GX_RESOURCE_ID disabled_fill_color_id;
89    UINT (*create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
90    void (*draw_function) (GX_WIDGET *);
91    UINT (*event_function) (GX_WIDGET *, GX_EVENT *);
92    GX_RECTANGLE size;
93    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *next_widget;
94    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *child_widget;
95    ULONG control_block_offset;
96    GX_CONST void *properties;
97 } GX_STUDIO_WIDGET;
98 
99 typedef struct
100 {
101     GX_CONST GX_STUDIO_WIDGET *widget_information;
102     GX_WIDGET        *widget;
103 } GX_STUDIO_WIDGET_ENTRY;
104 
105 typedef struct
106 {
107     GX_RESOURCE_ID string_id;
108     GX_RESOURCE_ID font_id;
109     GX_RESOURCE_ID normal_text_color_id;
110     GX_RESOURCE_ID selected_text_color_id;
111     GX_RESOURCE_ID disabled_text_color_id;
112 } GX_TEXT_BUTTON_PROPERTIES;
113 
114 typedef struct
115 {
116     GX_RESOURCE_ID normal_pixelmap_id;
117     GX_RESOURCE_ID selected_pixelmap_id;
118 } GX_ICON_PROPERTIES;
119 
120 typedef struct
121 {
122     GX_RESOURCE_ID string_id;
123     GX_RESOURCE_ID font_id;
124     GX_RESOURCE_ID normal_text_color_id;
125     GX_RESOURCE_ID selected_text_color_id;
126     GX_RESOURCE_ID disabled_text_color_id;
127 } GX_PROMPT_PROPERTIES;
128 
129 typedef struct
130 {
131     GX_RESOURCE_ID wallpaper_id;
132 } GX_WINDOW_PROPERTIES;
133 
134 
135 /* Declare top-level control blocks                                            */
136 
137 typedef struct LANGUAGE_SCREEN_CONTROL_BLOCK_STRUCT
138 {
139     GX_WINDOW_MEMBERS_DECLARE
140     GX_ICON language_screen_icon_10_2;
141     GX_PROMPT language_screen_prompt;
142     GX_TEXT_BUTTON language_screen_home_1;
143 } LANGUAGE_SCREEN_CONTROL_BLOCK;
144 
145 typedef struct BOOK_SCREEN_CONTROL_BLOCK_STRUCT
146 {
147     GX_WINDOW_MEMBERS_DECLARE
148     GX_ICON book_screen_icon_10_2;
149     GX_TEXT_BUTTON book_screen_settings;
150     GX_TEXT_BUTTON book_screen_home_1;
151 } BOOK_SCREEN_CONTROL_BLOCK;
152 
153 typedef struct SETTING_SCREEN_CONTROL_BLOCK_STRUCT
154 {
155     GX_WINDOW_MEMBERS_DECLARE
156 } SETTING_SCREEN_CONTROL_BLOCK;
157 
158 typedef struct BOOKSHELF_SCREEN_CONTROL_BLOCK_STRUCT
159 {
160     GX_WINDOW_MEMBERS_DECLARE
161     GX_ICON bookshelf_screen_icon_1;
162     GX_PROMPT bookshelf_screen_prompt_10;
163     GX_ICON bookshelf_screen_icon_2;
164     GX_PROMPT bookshelf_screen_prompt_2;
165     GX_ICON bookshelf_screen_icon_3;
166     GX_PROMPT bookshelf_screen_prompt_3;
167     GX_ICON bookshelf_screen_icon_4;
168     GX_PROMPT bookshelf_screen_prompt_5;
169     GX_ICON bookshelf_screen_icon_5;
170     GX_PROMPT bookshelf_screen_prompt_4;
171     GX_ICON bookshelf_screen_icon_6;
172     GX_PROMPT bookshelf_screen_prompt_6;
173     GX_ICON bookshelf_screen_icon_7;
174     GX_PROMPT bookshelf_screen_prompt_7;
175     GX_ICON bookshelf_screen_icon_8;
176     GX_PROMPT bookshelf_screen_prompt_8;
177     GX_ICON bookshelf_screen_icon_9;
178     GX_PROMPT bookshelf_screen_prompt_9;
179     GX_ICON bookshelf_screen_icon_10;
180     GX_TEXT_BUTTON bookshelf_screen_home_1;
181 } BOOKSHELF_SCREEN_CONTROL_BLOCK;
182 
183 typedef struct MAIN_SCREEN_CONTROL_BLOCK_STRUCT
184 {
185     GX_WINDOW_MEMBERS_DECLARE
186     GX_TEXT_BUTTON main_screen_bookshelf;
187     GX_TEXT_BUTTON main_screen_settings;
188     GX_TEXT_BUTTON main_screen_home;
189 } MAIN_SCREEN_CONTROL_BLOCK;
190 
191 
192 /* extern statically defined control blocks                                    */
193 
194 #ifndef GUIX_STUDIO_GENERATED_FILE
195 extern LANGUAGE_SCREEN_CONTROL_BLOCK language_screen;
196 extern BOOK_SCREEN_CONTROL_BLOCK book_screen;
197 extern BOOKSHELF_SCREEN_CONTROL_BLOCK bookshelf_screen;
198 extern MAIN_SCREEN_CONTROL_BLOCK main_screen;
199 #endif
200 
201 /* Declare event process functions, draw functions, and callback functions     */
202 
203 
204 /* Declare the GX_STUDIO_DISPLAY_INFO structure                                */
205 
206 
207 typedef struct GX_STUDIO_DISPLAY_INFO_STRUCT
208 {
209     GX_CONST GX_CHAR *name;
210     GX_CONST GX_CHAR *canvas_name;
211     GX_CONST GX_THEME **theme_table;
212     GX_CONST GX_STRING **language_table;
213     USHORT   theme_table_size;
214     USHORT   language_table_size;
215     UINT     string_table_size;
216     UINT     x_resolution;
217     UINT     y_resolution;
218     GX_DISPLAY *display;
219     GX_CANVAS  *canvas;
220     GX_WINDOW_ROOT *root_window;
221     GX_COLOR   *canvas_memory;
222     ULONG      canvas_memory_size;
223     USHORT     rotation_angle;
224 } GX_STUDIO_DISPLAY_INFO;
225 
226 
227 /* Declare Studio-generated functions for creating top-level widgets           */
228 
229 UINT gx_studio_text_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
230 UINT gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
231 UINT gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
232 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
233 GX_WIDGET *gx_studio_widget_create(GX_BYTE *storage, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent);
234 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget);
235 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *), GX_UBYTE language, USHORT theme, GX_WINDOW_ROOT **return_root);
236 UINT gx_studio_auto_event_handler(GX_WIDGET *widget, GX_EVENT *event_ptr, GX_CONST GX_STUDIO_EVENT_PROCESS *record);
237 
238 /* Determine if a C++ compiler is being used.  If so, complete the standard
239   C conditional started above.                                                 */
240 #ifdef __cplusplus
241 }
242 #endif
243 
244 #endif                                       /* sentry                         */
245