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:11                        */
10 /*******************************************************************************/
11 
12 
13 #ifndef _SYNERGY_4444ARGB_32BPP_SPECIFICATIONS_H_
14 #define _SYNERGY_4444ARGB_32BPP_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_PIC_WINDOW 1
26 #define ID_4444ARGB_COM 2
27 #define ID_4444BGRA_UNCOM 3
28 #define ID_4444BGRA_COM 4
29 #define ID_4444ARGB_UNCOM 5
30 
31 
32 /* Define animation ids                                                        */
33 
34 #define GX_NEXT_ANIMATION_ID 1
35 
36 
37 /* Define user event ids                                                       */
38 
39 #define GX_NEXT_USER_EVENT_ID GX_FIRST_USER_EVENT
40 
41 
42 /* Declare properties structures for each utilized widget type                 */
43 
44 typedef struct GX_STUDIO_WIDGET_STRUCT
45 {
46    GX_CHAR *widget_name;
47    USHORT  widget_type;
48    USHORT  widget_id;
49    #if defined(GX_WIDGET_USER_DATA)
50    INT   user_data;
51    #endif
52    ULONG style;
53    ULONG status;
54    ULONG control_block_size;
55    GX_RESOURCE_ID normal_fill_color_id;
56    GX_RESOURCE_ID selected_fill_color_id;
57    GX_RESOURCE_ID disabled_fill_color_id;
58    UINT (*create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
59    void (*draw_function) (GX_WIDGET *);
60    UINT (*event_function) (GX_WIDGET *, GX_EVENT *);
61    GX_RECTANGLE size;
62    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *next_widget;
63    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *child_widget;
64    ULONG control_block_offset;
65    GX_CONST void *properties;
66 } GX_STUDIO_WIDGET;
67 
68 typedef struct
69 {
70     GX_CONST GX_STUDIO_WIDGET *widget_information;
71     GX_WIDGET        *widget;
72 } GX_STUDIO_WIDGET_ENTRY;
73 
74 typedef struct
75 {
76     GX_RESOURCE_ID string_id;
77     GX_RESOURCE_ID font_id;
78     GX_RESOURCE_ID normal_text_color_id;
79     GX_RESOURCE_ID selected_text_color_id;
80     GX_RESOURCE_ID disabled_text_color_id;
81     GX_RESOURCE_ID off_pixelmap_id;
82     GX_RESOURCE_ID on_pixelmap_id;
83     GX_RESOURCE_ID off_disabled_pixelmap_id;
84     GX_RESOURCE_ID on_disabled_pixelmap_id;
85 } GX_RADIO_BUTTON_PROPERTIES;
86 
87 typedef struct
88 {
89     GX_RESOURCE_ID wallpaper_id;
90 } GX_WINDOW_PROPERTIES;
91 
92 
93 /* Declare top-level control blocks                                            */
94 
95 typedef struct MAIN_WINDOW_CONTROL_BLOCK_STRUCT
96 {
97     GX_WINDOW_MEMBERS_DECLARE
98     GX_WINDOW main_window_pic_window;
99     GX_RADIO_BUTTON main_window_4444argb_com_button;
100     GX_RADIO_BUTTON main_window_4444bgra_uncom_button;
101     GX_RADIO_BUTTON main_window_4444bgra_com_button;
102     GX_RADIO_BUTTON main_window_4444argb_uncom_button;
103 } MAIN_WINDOW_CONTROL_BLOCK;
104 
105 
106 /* extern statically defined control blocks                                    */
107 
108 #ifndef GUIX_STUDIO_GENERATED_FILE
109 extern MAIN_WINDOW_CONTROL_BLOCK main_window;
110 #endif
111 
112 /* Prototype Dave2D display driver specific functions                          */
113 
114 UINT _gx_synergy_display_driver_setup(GX_DISPLAY *display);
115 #if defined(GX_TARGET_WIN32) || defined(GX_TARGET_LINUX)
116 UINT win32_dave2d_graphics_driver_setup_24xrgb(GX_DISPLAY *display);
117 #else
118 VOID _gx_display_driver_32argb_setup(GX_DISPLAY *display, VOID *aux_data,
119                            VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas,
120                            GX_RECTANGLE *dirty_area));
121 VOID _gx_dave2d_horizontal_pattern_line_draw_888(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT ypos);
122 VOID _gx_dave2d_vertical_pattern_line_draw_888(GX_DRAW_CONTEXT *context, INT ystart, INT yend, INT xpos);
123 VOID _gx_dave2d_pixel_write_888(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLOR color);
124 VOID _gx_dave2d_pixel_blend_888(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLOR fcolor, GX_UBYTE alpha);
125 VOID _gx_dave2d_drawing_initiate(GX_DISPLAY *display, GX_CANVAS *canvas);
126 VOID _gx_dave2d_drawing_complete(GX_DISPLAY *display, GX_CANVAS *canvas);
127 VOID _gx_dave2d_horizontal_line(GX_DRAW_CONTEXT *context,
128                              INT xstart, INT xend, INT ypos, INT width, GX_COLOR color);
129 VOID _gx_dave2d_vertical_line(GX_DRAW_CONTEXT *context,
130                              INT ystart, INT yend, INT xpos, INT width, GX_COLOR color);
131 VOID _gx_dave2d_canvas_copy(GX_CANVAS *canvas, GX_CANVAS *composite);
132 VOID _gx_dave2d_canvas_blend(GX_CANVAS *canvas, GX_CANVAS *composite);
133 VOID _gx_dave2d_simple_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT ystart, INT xend, INT yend);
134 VOID _gx_dave2d_simple_wide_line(GX_DRAW_CONTEXT *context, INT xstart, INT ystart,
135                                 INT xend, INT yend);
136 VOID _gx_dave2d_aliased_line(GX_DRAW_CONTEXT *context, INT xstart, INT ystart, INT xend, INT yend);
137 VOID _gx_dave2d_aliased_wide_line(GX_DRAW_CONTEXT *context, INT xstart,
138                                         INT ystart, INT xend, INT yend);
139 VOID _gx_dave2d_pixelmap_draw(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap);
140 VOID _gx_dave2d_horizontal_pixelmap_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT y, GX_FILL_PIXELMAP_INFO *info);
141 VOID _gx_dave2d_pixelmap_blend(GX_DRAW_CONTEXT *context, INT xpos, INT ypos,
142                                       GX_PIXELMAP *pixelmap, GX_UBYTE alpha);
143 VOID _gx_dave2d_polygon_draw(GX_DRAW_CONTEXT *context, GX_POINT *vertex, INT num);
144 VOID _gx_dave2d_polygon_fill(GX_DRAW_CONTEXT *context, GX_POINT *vertex, INT num);
145 VOID _gx_dave2d_block_move(GX_DRAW_CONTEXT *context,
146                           GX_RECTANGLE *block, INT xshift, INT yshift);
147 VOID _gx_dave2d_alphamap_draw(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap);
148 VOID _gx_dave2d_compressed_glyph_8bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, const GX_GLYPH *glyph);
149 VOID _gx_dave2d_raw_glyph_8bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, const GX_GLYPH *glyph);
150 VOID _gx_dave2d_compressed_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, const GX_GLYPH *glyph);
151 VOID _gx_dave2d_raw_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, const GX_GLYPH *glyph);
152 VOID _gx_dave2d_compressed_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, const GX_GLYPH *glyph);
153 VOID _gx_dave2d_raw_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, const GX_GLYPH *glyph);
154 VOID _gx_dave2d_buffer_toggle(GX_CANVAS *canvas, GX_RECTANGLE *dirty);
155 #if defined(GX_ARC_DRAWING_SUPPORT)
156 VOID _gx_dave2d_aliased_circle_draw(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
157 VOID _gx_dave2d_circle_draw(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
158 VOID _gx_dave2d_circle_fill(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
159 VOID _gx_dave2d_pie_fill(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
160 VOID _gx_dave2d_aliased_arc_draw(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
161 VOID _gx_dave2d_arc_draw(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
162 VOID _gx_dave2d_arc_fill(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
163 VOID _gx_dave2d_aliased_ellipse_draw(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
164 VOID _gx_dave2d_ellipse_draw(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
165 VOID _gx_dave2d_ellipse_fill(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
166 #endif
167 VOID _gx_synergy_jpeg_draw (GX_DRAW_CONTEXT *p_context, INT x, INT y, GX_PIXELMAP *p_pixelmap);
168 
169 #endif
170 
171 /* Declare event process functions, draw functions, and callback functions     */
172 
173 UINT main_event_handler(GX_WINDOW *widget, GX_EVENT *event_ptr);
174 VOID pic_win_draw(GX_WINDOW *widget);
175 
176 /* Declare the GX_STUDIO_DISPLAY_INFO structure                                */
177 
178 
179 typedef struct GX_STUDIO_DISPLAY_INFO_STRUCT
180 {
181     GX_CONST GX_CHAR *name;
182     GX_CONST GX_CHAR *canvas_name;
183     GX_CONST GX_THEME **theme_table;
184     GX_CONST GX_STRING **language_table;
185     USHORT   theme_table_size;
186     USHORT   language_table_size;
187     UINT     string_table_size;
188     UINT     x_resolution;
189     UINT     y_resolution;
190     GX_DISPLAY *display;
191     GX_CANVAS  *canvas;
192     GX_WINDOW_ROOT *root_window;
193     GX_COLOR   *canvas_memory;
194     ULONG      canvas_memory_size;
195     USHORT     rotation_angle;
196 } GX_STUDIO_DISPLAY_INFO;
197 
198 
199 /* Declare Studio-generated functions for creating top-level widgets           */
200 
201 UINT gx_studio_radio_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
202 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
203 GX_WIDGET *gx_studio_widget_create(GX_BYTE *storage, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent);
204 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget);
205 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *), GX_UBYTE language, USHORT theme, GX_WINDOW_ROOT **return_root);
206 
207 /* Determine if a C++ compiler is being used.  If so, complete the standard
208   C conditional started above.                                                 */
209 #ifdef __cplusplus
210 }
211 #endif
212 
213 #endif                                       /* sentry                         */
214