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