1 /**************************************************************************/
2 /*                                                                        */
3 /*       Copyright (c) Microsoft Corporation. All rights reserved.        */
4 /*                                                                        */
5 /*       This software is licensed under the Microsoft Software License   */
6 /*       Terms for Microsoft Azure RTOS. Full text of the license can be  */
7 /*       found in the LICENSE file at https://aka.ms/AzureRTOS_EULA       */
8 /*       and in the root directory of this software.                      */
9 /*                                                                        */
10 /**************************************************************************/
11 
12 
13 /**************************************************************************/
14 /**************************************************************************/
15 /**                                                                       */
16 /** GUIX Component                                                        */
17 /**                                                                       */
18 /**   Application Interface (API)                                         */
19 /**                                                                       */
20 /**************************************************************************/
21 /**************************************************************************/
22 /**************************************************************************/
23 /*                                                                        */
24 /*  APPLICATION INTERFACE DEFINITION                       RELEASE        */
25 /*                                                                        */
26 /*    gx_api.h                                            PORTABLE C      */
27 /*                                                           6.2.1        */
28 /*  AUTHOR                                                                */
29 /*                                                                        */
30 /*    Kenneth Maxwell, Microsoft Corporation                              */
31 /*                                                                        */
32 /*  DESCRIPTION                                                           */
33 /*                                                                        */
34 /*    This file defines the basic Application Interface (API) to the      */
35 /*    high-performance GUIX UI framework.  All service prototypes         */
36 /*    and data structure definitions are defined in this file.            */
37 /*    Please note that basic data type definitions and other architecture-*/
38 /*    specific information is contained in the file gx_port.h.            */
39 /*                                                                        */
40 /*  RELEASE HISTORY                                                       */
41 /*                                                                        */
42 /*    DATE              NAME                      DESCRIPTION             */
43 /*                                                                        */
44 /*  05-19-2020     Kenneth Maxwell          Initial Version 6.0           */
45 /*  09-30-2020     Kenneth Maxwell          Modified comment(s),          */
46 /*                                            added line break status,    */
47 /*                                            updated product constants,  */
48 /*                                            modified controls blocks,   */
49 /*                                            added new APIs,             */
50 /*                                            resulting in version 6.1    */
51 /*  12-31-2020     Kenneth Maxwell          Modified comment(s), added    */
52 /*                                            display rotation support,   */
53 /*                                            declare new APIs,           */
54 /*                                            defined new status,         */
55 /*                                            resulting in version 6.1.3  */
56 /*  03-02-2021     Kenneth Maxwell          Modified comment(s),          */
57 /*                                            change scroll_wheel style   */
58 /*                                            flag to status flag,        */
59 /*                                            renamed                     */
60 /*                                            GX_STATUS_TRACKING_START to */
61 /*                                            GX_STATUS_TRACKING_PEN,     */
62 /*                                            added rotation angle        */
63 /*                                            definitions, changed        */
64 /*                                            pixelmap rotation flag      */
65 /*                                            definitions,                */
66 /*                                            resulting in version 6.1.5  */
67 /*  06-02-2021     Ting Zhu                 Modified comment(s),          */
68 /*                                            added new widget type       */
69 /*                                            GX_GENERIC_SCROLL_WHEEL,    */
70 /*                                            added animation delete API, */
71 /*                                            added generic Dave2D        */
72 /*                                            graphics accelerator        */
73 /*                                            support,                    */
74 /*                                            resulting in version 6.1.7  */
75 /*  08-02-2021     Ting Zhu                 Modified comment(s), added    */
76 /*                                            GX_TICKS_SECOND definition  */
77 /*                                            resulting in version 6.1.8  */
78 /*  10-15-2021     Ting Zhu                 Modified comment(s),          */
79 /*                                            updated patch number,       */
80 /*                                            resulting in version 6.1.9  */
81 /*  01-31-2022     Kenneth Maxwell          Modified comment(s),          */
82 /*                                            removed errant semicolons,  */
83 /*                                            added new member to struct  */
84 /*                                            GX_RADIAL_SLIDER_INFO,      */
85 /*                                            added new member to         */
86 /*                                            vertical and horizontal     */
87 /*                                            list control blocks,        */
88 /*                                            resulting in version 6.1.10 */
89 /*  04-25-2022     Ting Zhu                 Modified comment(s),          */
90 /*                                            added new member to struct  */
91 /*                                            GX_DISPLAY_LAYER_SERVICES,  */
92 /*                                            added new animation flag    */
93 /*                                            GX_ANIMATION_BLOCK_MOVE,    */
94 /*                                            resulting in version 6.1.11 */
95 /*  07-29-2022     Kenneth Maxwell          Modified comment(s),          */
96 /*                                            added new style             */
97 /*                                            GX_STYLE_REPEAT_SELECT,     */
98 /*                                            resulting in version 6.1.12 */
99 /*  10-31-2022     Kenneth Maxwell          Modified comment(s),          */
100 /*                                            removed unused style flag   */
101 /*                                            GX_SCROLLBAR_BACKGROUND_    */
102 /*                                            TILE,                       */
103 /*                                            resulting in version 6.2.0  */
104 /*  03-08-2023     Ting Zhu                 Modified comment(s),          */
105 /*                                            updated patch version,      */
106 /*                                            resulting in version 6.2.1  */
107 /*                                                                        */
108 /**************************************************************************/
109 
110 #ifndef GX_API_H
111 #define GX_API_H
112 
113 /* Determine if a C++ compiler is being used.  If so, ensure that standard
114    C is used to process the API information.  */
115 
116 #ifdef __cplusplus
117 
118 /* Yes, C++ compiler is present.  Use standard C.  */
119 extern   "C" {
120 
121 #endif
122 
123 
124 /* Define the major/minor version information that can be used by the application
125    and the GUIX source as well.  */
126 
127 #define AZURE_RTOS_GUIX
128 #define GUIX_MAJOR_VERSION 6
129 #define GUIX_MINOR_VERSION 2
130 #define GUIX_PATCH_VERSION 1
131 
132 /* The following symbols are defined for backward compatibility reasons.*/
133 #define __PRODUCT_GUIX__
134 #define __GUIX_MAJOR_VERSION GUIX_MAJOR_VERSION
135 #define __GUIX_MINOR_VERSION GUIX_MINOR_VERSION
136 
137 /* Ensure that ThreadX error checking is disabled for GUIX source code.  */
138 
139 #ifdef GX_SOURCE_CODE
140 #ifndef TX_DISABLE_ERROR_CHECKING
141 #define TX_DISABLE_ERROR_CHECKING
142 #endif
143 #endif
144 
145 /* Include ThreadX API and GUIX port-specific include file.  */
146 #ifndef GX_DISABLE_THREADX_BINDING
147 #include "tx_api.h"
148 #define GX_THREADX_BINDING
149 #else
150 
151 /* Define data types used by GUIX that are normally defined within ThreadX headers  */
152 
153 #define VOID void
154 typedef char                                    CHAR;
155 typedef unsigned char                           UCHAR;
156 typedef int                                     INT;
157 typedef unsigned int                            UINT;
158 typedef long                                    LONG;
159 typedef unsigned long                           ULONG;
160 typedef short                                   SHORT;
161 typedef unsigned short                          USHORT;
162 #endif
163 
164 #include "gx_port.h"
165 
166 /* Define signed 8-bit value */
167 typedef signed char                             GX_BYTE;
168 
169 /* Define unsigned 8-bit value */
170 typedef unsigned char                           GX_UBYTE;
171 
172 /* Define Resource ID.  */
173 typedef ULONG                                   GX_RESOURCE_ID;
174 
175 /* Define Color type.  */
176 typedef ULONG                                   GX_COLOR;
177 
178 /* Fixed point math data type */
179 typedef signed long GX_FIXED_VAL;
180 
181 typedef char GX_CHAR;
182 
183 /* Define the String type. */
184 typedef struct GX_STRING_STRUCT
185 {
186     GX_CONST GX_CHAR  *gx_string_ptr;     /* Pointer to string. */
187     UINT               gx_string_length;  /* String length in bytes. */
188 } GX_STRING;
189 
190 /* Define constants for GUIX.  */
191 
192 /* Define configuration-specific constants. These constants can be redefined externally.  */
193 
194 /* Default 20ms GUIX system timer.  */
195 #ifndef GX_SYSTEM_TIMER_MS
196 #define GX_SYSTEM_TIMER_MS        20
197 #endif
198 
199 #ifndef GX_DISABLE_DEPRECATED_STRING_API
200 #define GX_ENABLE_DEPRECATED_STRING_API
201 #endif
202 
203 #if defined(GX_THREADX_BINDING)
204 
205 /* Set default ThreadX timer tick frequency 100Hz (10ms timer). */
206 #ifndef TX_TIMER_TICKS_PER_SECOND
207 #define TX_TIMER_TICKS_PER_SECOND ((ULONG)100)
208 #endif
209 
210 /* Derive GX_SYSTEM_TIMER_TICKS based on GX_SYSTEM_TIMER_MS value. */
211 #ifndef GX_SYSTEM_TIMER_TICKS
212 #define GX_SYSTEM_TIMER_TICKS     ((GX_SYSTEM_TIMER_MS * TX_TIMER_TICKS_PER_SECOND) / 1000)
213 #endif
214 
215 #ifndef GX_TICKS_SECOND
216 #define GX_TICKS_SECOND           (1000 / GX_SYSTEM_TIMER_MS)
217 #endif
218 
219 #endif /* GX_THREADX_BINDING */
220 
221 #ifndef GX_DISABLE_MULTITHREAD_SUPPORT
222 #define GX_MULTITHREAD_SUPPORT
223 #endif
224 
225 #ifndef GX_DISABLE_UTF8_SUPPORT
226 #define GX_UTF8_SUPPORT
227 #endif
228 
229 #ifndef GX_DISABLE_ARC_DRAWING_SUPPORT
230 #define GX_ARC_DRAWING_SUPPORT
231 #endif
232 
233 #ifndef GX_DISABLE_SOFTWARE_DECODER_SUPPORT
234 #define GX_SOFTWARE_DECODER_SUPPORT
235 #endif
236 
237 #ifndef GX_DISABLE_BINARY_RESOURCE_SUPPORT
238 #define GX_BINARY_RESOURCE_SUPPORT
239 #endif
240 
241 #ifndef GX_DISABLE_BRUSH_ALPHA_SUPPORT
242 #define GX_BRUSH_ALPHA_SUPPORT
243 #endif
244 
245 #ifndef GX_DISABLE_EXPO_ELASTIC_EASING_SUPPORT
246 #define GX_EXPO_ELASTIC_EASING_SUPPORT
247 #endif
248 
249 #ifndef GX_REPEAT_BUTTON_INITIAL_TICS
250 #define GX_REPEAT_BUTTON_INITIAL_TICS       10
251 #endif
252 
253 #ifndef GX_REPEAT_BUTTON_REPEAT_TICS
254 #define GX_REPEAT_BUTTON_REPEAT_TICS        3
255 #endif
256 
257 /* define size of the GUIX event queue */
258 #ifndef GX_MAX_QUEUE_EVENTS
259 #define GX_MAX_QUEUE_EVENTS                 48
260 #endif
261 
262 #ifndef GX_MAX_DIRTY_AREAS
263 #define GX_MAX_DIRTY_AREAS                  64
264 #endif
265 
266 /* define depth of drawing context stack */
267 #ifndef GX_MAX_CONTEXT_NESTING
268 #define GX_MAX_CONTEXT_NESTING              8
269 #endif
270 
271 /* define depth of input capture stack */
272 
273 #ifndef GX_MAX_INPUT_CAPTURE_NESTING
274 #define GX_MAX_INPUT_CAPTURE_NESTING        4
275 #endif
276 
277 #ifndef GX_SYSTEM_THREAD_PRIORITY
278 #define GX_SYSTEM_THREAD_PRIORITY           16
279 #endif
280 
281 #ifndef GX_SYSTEM_THREAD_TIMESLICE
282 #define GX_SYSTEM_THREAD_TIMESLICE          10
283 #endif
284 
285 #ifndef GX_CURSOR_BLINK_INTERVAL
286 #define GX_CURSOR_BLINK_INTERVAL            20
287 #endif
288 
289 #ifndef GX_MULTI_LINE_INDEX_CACHE_SIZE
290 #define GX_MULTI_LINE_INDEX_CACHE_SIZE      32
291 #endif
292 
293 #ifndef GX_MULTI_LINE_TEXT_BUTTON_MAX_LINES
294 #define GX_MULTI_LINE_TEXT_BUTTON_MAX_LINES 4
295 #endif
296 
297 /* Define rich text context stack size. */
298 #ifndef GX_MAX_RICH_TEXT_CONTEXT_NESTING
299 #define GX_MAX_RICH_TEXT_CONTEXT_NESTING    10
300 #endif
301 
302 /* maximum number of polygon edges */
303 #ifndef GX_POLYGON_MAX_EDGE_NUM
304 #define GX_POLYGON_MAX_EDGE_NUM             10
305 #endif
306 
307 #ifndef GX_NUMERIC_SCROLL_WHEEL_STRING_BUFFER_SIZE
308 #define GX_NUMERIC_SCROLL_WHEEL_STRING_BUFFER_SIZE 16
309 #endif
310 
311 #ifndef GX_DEFAULT_CIRCULAR_GAUGE_ANIMATION_DELAY
312 #define GX_DEFAULT_CIRCULAR_GAUGE_ANIMATION_DELAY 5
313 #endif
314 
315 /* define the largest string needed by a NUMERIC prompt widget */
316 #ifndef GX_NUMERIC_PROMPT_BUFFER_SIZE
317 #define GX_NUMERIC_PROMPT_BUFFER_SIZE        16
318 #endif
319 
320 /* define size of the GX_ANIMATION pool, i.e. max sumultaneous animations */
321 #ifndef GX_ANIMATION_POOL_SIZE
322 #define GX_ANIMATION_POOL_SIZE 6
323 #endif
324 
325 /* define maximum string length. */
326 #ifndef GX_MAX_STRING_LENGTH
327 #define GX_MAX_STRING_LENGTH 102400
328 #endif
329 
330 #ifndef GX_PALETTE_MODE_AA_TEXT_COLORS
331 #define GX_PALETTE_MODE_AA_TEXT_COLORS       8
332 #endif
333 
334 #ifndef GX_PARAMETER_NOT_USED
335 #define GX_PARAMETER_NOT_USED(p) ((void) (p))
336 #endif /* GX_PARAMETER_NOT_USED */
337 
338 /* defines for backwards compatiblity */
339 #ifndef GX_RENESAS_DAVE2D_DRAW
340 #ifdef  GX_USE_SYNERGY_DRW
341 #define GX_RENESAS_DAVE2D_DRAW
342 #endif
343 #endif
344 
345 #ifndef GX_RENESAS_DAVE2D_FONT_SUPPORT
346 #ifdef  GX_SYNERGY_FONT_FORMAT_SUPPORT
347 #define GX_RENESAS_DAVE2D_FONT_SUPPORT
348 #endif
349 #endif
350 /* end of defines for backwards compatiblity */
351 
352 #define GX_MAX_PIXELMAP_RESOLUTION 0x3FFF
353 
354 /* Define screen rotation types. */
355 #define GX_SCREEN_ROTATION_NONE   0
356 #define GX_SCREEN_ROTATION_CW    90
357 #define GX_SCREEN_ROTATION_CCW  270
358 #define GX_SCREEN_ROTATION_FLIP 180
359 
360 /* API input parameters and general constants.  */
361 
362 #define GX_TRUE                             1
363 #define GX_FALSE                            0
364 #define GX_NULL                             0
365 #define GX_ID_NONE                          0
366 #define GX_MAGIC_NUMBER                     0x4758U
367 
368 /* API return values.  */
369 
370 #define GX_SUCCESS                          0x00
371 #define GX_DELETED                          0x01
372 #define GX_INVALID_ID                       0x02
373 #define GX_NO_VIEWS                         0x03
374 #define GX_OUT_OF_TIMERS                    0x04
375 #define GX_DRAW_NESTING_EXCEEDED            0x05
376 #define GX_INVALID_CONTEXT                  0x06
377 #define GX_PTR_ERROR                        0x07
378 #define GX_NO_CHANGE                        0x08
379 #define GX_NOT_FOUND                        0x09
380 #define GX_FAILURE                          0x10
381 #define GX_CALLER_ERROR                     0x11
382 #define GX_INVALID_WIDGET                   0x12
383 #define GX_ALREADY_CREATED                  0x13
384 #define GX_INVALID_WIDGET_SIZE              0x14
385 #define GX_INVALID_COLOR                    0x15
386 #define GX_INVALID_FONT                     0x16
387 #define GX_INVALID_STRING                   0x17
388 #define GX_INVALID_STYLE                    0x18
389 #define GX_INVALID_SIZE                     0x19
390 #define GX_INVALID_ALPHA                    0x1A
391 #define GX_INVALID_TYPE                     0x1B
392 #define GX_INVALID_CANVAS_SIZE              0x1C
393 #define GX_INVALID_DISPLAY                  0x1D
394 #define GX_INVALID_WIDTH                    0x1E
395 #define GX_INVALID_HEIGHT                   0x1F
396 #define GX_INVALID_CANVAS                   0x20
397 #define GX_INVALID_COORDINATE               0x21
398 #define GX_INVALID_VALUE                    0x22
399 #define GX_INVALID_DISPLAY_SIZE             0x23
400 #define GX_INVALID_FORMAT                   0x24
401 #define GX_INVALID_APPEARANCE               0x25
402 #define GX_INVALID_STATUS                   0x26
403 #define GX_INPUT_CAPTURE_NESTING_EXCEEDED   0x27
404 #define GX_NOT_SUPPORTED                    0x28
405 #define GX_INVALID_MEMORY_SIZE              0x29
406 #define GX_SYSTEM_MEMORY_ERROR              0x30
407 #define GX_OUT_OF_ANIMATIONS                0x31
408 #define GX_INVALID_ANIMATION                0x32
409 #define GX_INVALID_RESOURCE_ID              0x33
410 #define GX_INVALID_STRING_LENGTH            0x34
411 #define GX_MATH_OVERFLOW                    0x35
412 #define GX_RICH_STYLE_NESTING_EXEEDED       0x36
413 #define GX_SYSTEM_ERROR                     0xFE
414 
415 
416 
417 /* Define system error constants.  */
418 
419 #define GX_SYSTEM_THREAD_CREATE_FAILED      1
420 #define GX_SYSTEM_QUEUE_CREATE_FAILED       2
421 #define GX_SYSTEM_MUTEX_CREATE_FAILED       3
422 #define GX_SYSTEM_EVENT_SIZE_MISMATCH       4
423 #define GX_SYSTEM_EVENT_RECEIVE_ERROR       5
424 #define GX_SYSTEM_PROTECTION_ERROR          6
425 #define GX_SYSTEM_DRIVER_SETUP_ERROR        7
426 #define GX_SYSTEM_OUT_OF_VIEWS              8
427 
428 /* Define supported frame buffer color formats.  */
429 
430 #define GX_COLOR_FORMAT_MONOCHROME          1                   /* 0 = black, 1 = white                     */
431 #define GX_COLOR_FORMAT_MONOCHROME_INVERTED 2                   /* 1 = black, 0 = white                     */
432 #define GX_COLOR_FORMAT_2BIT_GRAY           3                   /* 2 bit-per-pixel grayscale                */
433 #define GX_COLOR_FORMAT_2BIT_GRAY_INVERTED  4                   /* 2 bit-per-pixel grayscale inverted       */
434 #define GX_COLOR_FORMAT_4BIT_GRAY           5                   /* 4 bit-per-pixel grayscale                */
435 #define GX_COLOR_FORMAT_4BIT_GRAY_INVERTED  6
436 #define GX_COLOR_FORMAT_4BIT_VGA            7                   /* Obsolete VGA planar format, 16 colors    */
437 #define GX_COLOR_FORMAT_8BIT_GRAY           8                   /* 256 shades of gray                       */
438 #define GX_COLOR_FORMAT_8BIT_GRAY_INVERTED  9                   /* 256 shades of gray, 0 = white            */
439 #define GX_COLOR_FORMAT_8BIT_PALETTE        10                  /* 256 color palette mode                   */
440 #define GX_COLOR_FORMAT_8BIT_PACKED_PIXEL   11                  /* 3:3:2 color mode                         */
441 #define GX_COLOR_FORMAT_5551BGRX            12                  /* 15 bpp, b:g:r order                      */
442 #define GX_COLOR_FORMAT_1555XRGB            13                  /* 15 bpp, r:g:b order                      */
443 #define GX_COLOR_FORMAT_565RGB              14                  /* 16 bpp, r:g:b order                      */
444 #define GX_COLOR_FORMAT_4444ARGB            15                  /* 16 bpp, 4:4:4:4 argb order               */
445 #define GX_COLOR_FORMAT_4444BGRA            16                  /* 16 bpp, 4:4:4:4 bgra order               */
446 #define GX_COLOR_FORMAT_565BGR              17                  /* 16 bpp, b:g:r order                      */
447 #define GX_COLOR_FORMAT_24RGB               18                  /* 24 bpp, r:g:b order, packed              */
448 #define GX_COLOR_FORMAT_24BGR               19                  /* 24 bpp, b:g:r order, packed              */
449 #define GX_COLOR_FORMAT_24XRGB              20                  /* 24 bpp, r:g:b order, unpacked            */
450 #define GX_COLOR_FORMAT_24BGRX              21                  /* 24 bpp, b:g:r order, unpacked            */
451 #define GX_COLOR_FORMAT_32ARGB              22                  /* 32 bpp, a:r:g:b order                    */
452 #define GX_COLOR_FORMAT_32RGBA              23                  /* 32 bpp, r:g:b:a order                    */
453 #define GX_COLOR_FORMAT_32ABGR              24                  /* 32 BPP, a:b:g:r order                    */
454 #define GX_COLOR_FORMAT_32BGRA              25                  /* 32 BPP, b:g:r:a order                    */
455 #define GX_COLOR_FORMAT_8BIT_ALPHAMAP       26                  /* 8 bit alpha only                         */
456 
457 /* Predefined color Resource IDs.  */
458 
459 #define GX_COLOR_ID_CANVAS                  0
460 #define GX_COLOR_ID_WIDGET_FILL             1
461 #define GX_COLOR_ID_WINDOW_FILL             2
462 #define GX_COLOR_ID_DEFAULT_BORDER          3
463 #define GX_COLOR_ID_WINDOW_BORDER           4
464 #define GX_COLOR_ID_TEXT                    5
465 #define GX_COLOR_ID_SELECTED_TEXT           6
466 #define GX_COLOR_ID_SELECTED_FILL           7
467 
468 #define GX_COLOR_ID_SHADOW                  8
469 #define GX_COLOR_ID_SHINE                   9
470 
471 /* Button color Resource IDs.  */
472 
473 #define GX_COLOR_ID_BTN_BORDER             10
474 #define GX_COLOR_ID_BUTTON_BORDER          GX_COLOR_ID_BTN_BORDER
475 #define GX_COLOR_ID_BTN_UPPER              11
476 #define GX_COLOR_ID_BUTTON_UPPER           GX_COLOR_ID_BTN_UPPER
477 #define GX_COLOR_ID_BTN_LOWER              12
478 #define GX_COLOR_ID_BUTTON_LOWER           GX_COLOR_ID_BTN_LOWER
479 #define GX_COLOR_ID_BTN_TEXT               13
480 #define GX_COLOR_ID_BUTTON_TEXT            GX_COLOR_ID_BTN_TEXT
481 
482 /* Scrollbar color Resource IDs.   */
483 
484 #define GX_COLOR_ID_SCROLL_FILL             14
485 #define GX_COLOR_ID_SCROLL_BUTTON           15
486 
487 /* Text input color Resource IDs.  */
488 
489 #define GX_COLOR_ID_TEXT_INPUT_TEXT         16
490 #define GX_COLOR_ID_TEXT_INPUT_FILL         17
491 
492 /* slider color resource ids */
493 
494 #define GX_COLOR_ID_SLIDER_TICK             18
495 #define GX_COLOR_ID_SLIDER_GROOVE_TOP       19      /* LIGHTGRAY */
496 #define GX_COLOR_ID_SLIDER_GROOVE_BOTTOM    20      /* WHITE */
497 #define GX_COLOR_ID_SLIDER_NEEDLE_OUTLINE   21      /* BLACK */
498 #define GX_COLOR_ID_SLIDER_NEEDLE_FILL      22      /* DARKGRAY */
499 #define GX_COLOR_ID_SLIDER_NEEDLE_LINE1     23      /* LIGHTGRAY */
500 #define GX_COLOR_ID_SLIDER_NEEDLE_LINE2     24      /* BTN_BORDER */
501 
502 /* Text widget color resource ids */
503 #define GX_COLOR_ID_DISABLED_TEXT           25
504 #define GX_COLOR_ID_DISABLED_FILL           26
505 #define GX_COLOR_ID_READONLY_TEXT           27
506 #define GX_COLOR_ID_READONLY_FILL           28
507 
508 #define GX_MAX_DEFAULT_COLORS               29
509 #define GX_FIRST_USER_COLOR                 GX_MAX_DEFAULT_COLORS
510 
511 /* Default font Resource IDs.  */
512 
513 #define GX_FONT_ID_DEFAULT                  0
514 #define GX_FONT_ID_SYSTEM                   GX_FONT_ID_DEFAULT
515 #define GX_FONT_ID_BUTTON                   1
516 #define GX_FONT_ID_PROMPT                   2
517 #define GX_FONT_ID_TEXT_INPUT               3
518 #define GX_DEFAULT_FONT_COUNT               4
519 #define GX_FIRST_USER_FONT                  GX_DEFAULT_FONT_COUNT
520 
521 /* Default PIXELMAP Resource IDs. */
522 
523 #define GX_PIXELMAP_NULL                    0
524 #define GX_PIXELMAP_RADIO_ON_ID             1
525 #define GX_PIXELMAP_ID_RADIO_ON             GX_PIXELMAP_RADIO_ON_ID
526 #define GX_PIXELMAP_RADIO_OFF_ID            2
527 #define GX_PIXELMAP_ID_RADIO_OFF            GX_PIXELMAP_RADIO_OFF_ID
528 #define GX_PIXELMAP_CHECKBOX_ON_ID          3
529 #define GX_PIXELMAP_ID_CHECKBOX_ON          GX_PIXELMAP_CHECKBOX_ON_ID
530 #define GX_PIXELMAP_CHECKBOX_OFF_ID         4
531 #define GX_PIXELMAP_ID_CHECKBOX_OFF         GX_PIXELMAP_CHECKBOX_OFF_ID
532 #define GX_DEFAULT_PIXELMAP_COUNT           5
533 #define GX_FIRST_USER_PIXELMAP              GX_DEFAULT_PIXELMAP_COUNT
534 
535 /* Predefined a:r:g:b color values, these follow the standard 16 VGA color names.  */
536 
537 #define GX_COLOR_BLACK                      0xff000000UL
538 #define GX_COLOR_RED                        0xffb80000UL
539 #define GX_COLOR_GREEN                      0xff00bc00UL
540 #define GX_COLOR_BROWN                      0xffb8bc00UL
541 #define GX_COLOR_BLUE                       0xff0000b8UL
542 #define GX_COLOR_MAGENTA                    0xffb800b8UL
543 #define GX_COLOR_CYAN                       0xff00bcb8UL
544 #define GX_COLOR_LIGHTGRAY                  0xffc0c0c0UL
545 #define GX_COLOR_DARKGRAY                   0xff808080UL
546 #define GX_COLOR_LIGHTRED                   0xffff0000UL
547 #define GX_COLOR_LIGHTGREEN                 0xff00ff00UL
548 #define GX_COLOR_YELLOW                     0xffffff00UL
549 #define GX_COLOR_LIGHTBLUE                  0xff0000ffUL
550 #define GX_COLOR_LIGHTMAGENTA               0xffff00ffUL
551 #define GX_COLOR_LIGHTCYAN                  0xff00ffffUL
552 #define GX_COLOR_WHITE                      0xffffffffUL
553 
554 /* Define events. The the event ranges are:
555 
556    0x00000000 to 0x000000ff   256 pre-defined system event types
557    0x00000100 to 0x00ffffff   Signals from child widgets
558    0x01000000 to 0x3fffffff   Unused
559    0x40000000 to 0xffffffff   Application defined
560 
561  */
562 #define GX_FIRST_SIGNAL                     0x100
563 #define GX_LAST_SIGNAL                      0x00ffffffUL
564 #define GX_SIGNAL_EVENT_MASK                0xff
565 
566 
567 /* Define the pre-defined Widget event types.  */
568 
569 #define GX_EVENT_TERMINATE                  1
570 #define GX_EVENT_REDRAW                     2
571 #define GX_EVENT_SHOW                       3
572 #define GX_EVENT_HIDE                       4
573 #define GX_EVENT_RESIZED                    5
574 #define GX_EVENT_SLIDE                      6
575 #define GX_EVENT_FOCUS_GAINED               7
576 #define GX_EVENT_FOCUS_LOST                 8
577 #define GX_EVENT_HORIZONTAL_SCROLL          9
578 #define GX_EVENT_VERTICAL_SCROLL            10
579 #define GX_EVENT_TIMER                      11
580 #define GX_EVENT_PEN_DOWN                   12
581 #define GX_EVENT_PEN_UP                     13
582 #define GX_EVENT_PEN_MOVE                   14
583 #define GX_EVENT_PEN_DRAG                   15
584 #define GX_EVENT_KEY_DOWN                   16
585 #define GX_EVENT_KEY_UP                     17
586 #define GX_EVENT_CLOSE                      18
587 #define GX_EVENT_DELETE                     19
588 #define GX_EVENT_SLIDER_VALUE               20
589 #define GX_EVENT_TOGGLE_ON                  21
590 #define GX_EVENT_TOGGLE_OFF                 22
591 #define GX_EVENT_RADIO_SELECT               23
592 #define GX_EVENT_RADIO_DESELECT             24
593 #define GX_EVENT_CLICKED                    25
594 #define GX_EVENT_LIST_SELECT                26
595 #define GX_EVENT_VERTICAL_FLICK             27
596 #define GX_EVENT_HORIZONTAL_FLICK           28
597 
598 #define GX_EVENT_PARENT_SIZED               30
599 #define GX_EVENT_CLOSE_POPUP                31
600 #define GX_EVENT_ZOOM_IN                    32
601 #define GX_EVENT_ZOOM_OUT                   33
602 #define GX_EVENT_LANGUAGE_CHANGE            34
603 #define GX_EVENT_RESOURCE_CHANGE            35
604 #define GX_EVENT_ANIMATION_COMPLETE         36
605 #define GX_EVENT_SPRITE_COMPLETE            37
606 #define GX_EVENT_TEXT_EDITED                40
607 #define GX_EVENT_ANIMATION_START            41
608 
609 #define GX_EVENT_FOCUS_NEXT                 42
610 #define GX_EVENT_FOCUS_PREVIOUS             43
611 #define GX_EVENT_FOCUS_GAIN_NOTIFY          44
612 #define GX_EVENT_SELECT                     45
613 #define GX_EVENT_DESELECT                   46
614 #define GX_EVENT_PROGRESS_VALUE             47
615 #define GX_EVENT_TOUCH_CALIBRATION_COMPLETE 48
616 #define GX_EVENT_INPUT_RELEASE              49
617 #define GX_EVENT_TREE_SELECT                50
618 #define GX_EVENT_STYLE_CHANGED              51
619 #define GX_EVENT_CLIENT_UPDATED             52
620 #define GX_EVENT_CUT                        53
621 #define GX_EVENT_COPY                       54
622 #define GX_EVENT_PASTE                      55
623 #define GX_EVENT_MARK_NEXT                  56
624 #define GX_EVENT_MARK_PREVIOUS              57
625 #define GX_EVENT_MARK_UP                    58
626 #define GX_EVENT_MARK_DOWN                  59
627 #define GX_EVENT_MARK_END                   60
628 #define GX_EVENT_MARK_HOME                  61
629 #define GX_EVENT_DYNAMIC_BIDI_TEXT_ENABLE   62
630 #define GX_EVENT_DYNAMIC_BIDI_TEXT_DISABLE  63
631 
632 /* Define the pre-defined Widgets ID.        */
633 #define ID_DROP_LIST_BUTTON                 65535
634 
635 /* Define the value of the first application defined event type.  */
636 
637 #define GX_FIRST_USER_EVENT                 0x40000000UL
638 
639 /* The following name has been deprecated, please use GX_FIRST_USER_EVENT */
640 
641 #define GX_FIRST_APP_EVENT                  GX_FIRST_USER_EVENT
642 
643 
644 /* Define logical key values.  */
645 
646 #define GX_KEY_PAGE_UP                      0x1b01U
647 #define GX_KEY_PAGE_DOWN                    0x1b02U
648 #define GX_KEY_END                          0x1b03U
649 #define GX_KEY_HOME                         0x1b04U
650 #define GX_KEY_LEFT_ARROW                   0x1b05U
651 #define GX_KEY_UP_ARROW                     0x1b06U
652 #define GX_KEY_RIGHT_ARROW                  0x1b07U
653 #define GX_KEY_DOWN_ARROW                   0x1b08U
654 #define GX_KEY_NEXT                         0x1b09U
655 #define GX_KEY_PREVIOUS                     0x1b0aU
656 #define GX_KEY_CAPS_LOCK                    0x1b10U
657 #define GX_KEY_SHIFT                        0x1b11U
658 #define GX_KEY_CONTROL                      0x1b12U
659 #define GX_KEY_NUMLOCK                      0x1b13U
660 #define GX_KEY_SEPARATOR                    0x1b14U
661 
662 #define GX_KEY_BACKSPACE                    0x08
663 #define GX_KEY_SPACE                        0x20
664 #define GX_KEY_DELETE                       0x7f
665 #define GX_KEY_CARRIAGE_RETURN              0x0d
666 #define GX_KEY_LINE_FEED                    0x0a
667 #define GX_KEY_SELECT                       GX_KEY_CARRIAGE_RETURN
668 
669 
670 
671 /* Define the Widget types.  */
672 
673 #define GX_TYPE_WIDGET                      1
674 #define GX_TYPE_BUTTON                      2
675 #define GX_TYPE_TEXT_BUTTON                 3
676 #define GX_TYPE_MULTI_LINE_TEXT_BUTTON      4
677 #define GX_TYPE_RADIO_BUTTON                5
678 #define GX_TYPE_CHECKBOX                    6
679 #define GX_TYPE_PIXELMAP_BUTTON             7
680 #define GX_TYPE_SHADOW_BUTTON               8
681 #define GX_TYPE_ICON_BUTTON                 9
682 #define GX_TYPE_SPIN_BUTTON                 10
683 #define GX_TYPE_ICON                        11
684 #define GX_TYPE_SPRITE                      12
685 #define GX_TYPE_CIRCULAR_GAUGE              13
686 
687 #define GX_TYPE_SLIDER                      20
688 #define GX_TYPE_PIXELMAP_SLIDER             21
689 #define GX_TYPE_VERTICAL_SCROLL             22
690 #define GX_TYPE_HORIZONTAL_SCROLL           23
691 #define GX_TYPE_PROGRESS_BAR                24
692 #define GX_TYPE_RADIAL_PROGRESS_BAR         25
693 #define GX_TYPE_RADIAL_SLIDER               26
694 
695 #define GX_TYPE_PROMPT                      30
696 #define GX_TYPE_NUMERIC_PROMPT              31
697 #define GX_TYPE_PIXELMAP_PROMPT             32
698 #define GX_TYPE_NUMERIC_PIXELMAP_PROMPT     33
699 
700 #define GX_TYPE_SINGLE_LINE_TEXT_INPUT      64
701 #define GX_TYPE_PIXELMAP_TEXT_INPUT         65
702 #define GX_TYPE_DROP_LIST                   70
703 
704 #define GX_TYPE_MENU_LIST                   75
705 #define GX_TYPE_MENU                        76
706 #define GX_TYPE_ACCORDION_MENU              77
707 
708 /* Define the Window derived types. These types must always be >= GX_TYPE_WINDOW
709    to insure type-safe casting in the GUIX internal code.  */
710 
711 #define GX_TYPE_WINDOW                      128
712 #define GX_TYPE_ROOT_WINDOW                 129
713 #define GX_TYPE_VERTICAL_LIST               131
714 #define GX_TYPE_HORIZONTAL_LIST             132
715 #define GX_TYPE_POPUP_LIST                  133
716 #define GX_TYPE_MULTI_LINE_TEXT_VIEW        134
717 #define GX_TYPE_MULTI_LINE_TEXT_INPUT       135
718 #define GX_TYPE_LINE_CHART                  136
719 #define GX_TYPE_DIALOG                      137
720 #define GX_TYPE_KEYBOARD                    138
721 #define GX_TYPE_SCROLL_WHEEL                139
722 #define GX_TYPE_TEXT_SCROLL_WHEEL           140
723 #define GX_TYPE_STRING_SCROLL_WHEEL         141
724 #define GX_TYPE_NUMERIC_SCROLL_WHEEL        142
725 #define GX_TYPE_TREE_VIEW                   143
726 #define GX_TYPE_RICH_TEXT_VIEW              144
727 #define GX_TYPE_GENERIC_SCROLL_WHEEL        145
728 
729 /* A pseudo-type, used by Studio code generator */
730 #define GX_TYPE_TEMPLATE                    200
731 
732 /* Applications can define their own window types */
733 #define GX_FIRST_USER_WINDOW_TYPE           256
734 
735 
736 /* Define Widget status flags.  */
737 
738 #define GX_STATUS_VISIBLE                   0x00000001UL
739 #define GX_STATUS_SELECTABLE                0x00000002UL
740 #define GX_STATUS_ACCEPTS_INPUT             0x00000004UL
741 #define GX_STATUS_HIDDEN                    0x00000008UL
742 
743 #define GX_STATUS_DEFAULT_FOCUS             0x00000010UL
744 #define GX_STATUS_ACCEPTS_FOCUS             0x00000020UL
745 #define GX_STATUS_HAS_FOCUS                 0x00000040UL
746 #define GX_STATUS_NOTIFY_ON_GAIN_FOCUS      0x00000080UL
747 
748 #define GX_STATUS_NAV_STOP                  0x00000100UL
749 #define GX_STATUS_NAV_PARENT                0x00000200UL
750 
751 #define GX_STATUS_MOVABLE                   0x00001000UL
752 #define GX_STATUS_BUTTON_DERIVED            0x00002000UL
753 #define GX_STATUS_TOGGLE_UNLOCK             0x00004000UL
754 #define GX_STATUS_DIRTY                     0x00008000UL
755 
756 /* define cursor status flags */
757 #define GX_STATUS_CURSOR_SHOW               0x00010000UL
758 #define GX_STATUS_CURSOR_DRAW               0x00020000UL
759 #define GX_STATUS_MARK_PREVIOUS             0x00040000UL
760 #define GX_STATUS_MARK_NEXT                 0x00080000UL
761 
762 /* Define radial slider status flags */
763 #define GX_STATUS_ANIMATION_NONE            0x00010000UL
764 #define GX_STATUS_TRACKING_PEN              0x00020000UL
765 
766 #define GX_STATUS_MODAL                     0x00100000UL
767 
768 #define GX_STATUS_DYNAMIC_BUFFER            0x01000000UL
769 #define GX_STATUS_LINE_BREAK_PROCESSED      0x02000000UL
770 #define GX_STATUS_RESIZE_NOTIFY             0x04000000UL
771 #define GX_STATUS_STUDIO_CREATED            0x08000000UL
772 
773 #define GX_STATUS_TRANSPARENT               0x10000000UL
774 #define GX_STATUS_NONCLIENT                 0x20000000UL
775 #define GX_STATUS_OWNS_INPUT                0x40000000UL
776 #define GX_STATUS_DYNAMICALLY_ALLOCATED     0x80000000UL
777 
778 /* Define Widget style flags.  */
779 
780 #define GX_STYLE_NONE                       0x00000000UL
781 #define GX_STYLE_BORDER_NONE                0x00000000UL
782 #define GX_STYLE_BORDER_RAISED              0x00000001UL
783 #define GX_STYLE_BORDER_RECESSED            0x00000002UL
784 #define GX_STYLE_BORDER_THIN                0x00000004UL
785 #define GX_STYLE_BORDER_THICK               0x00000008UL
786 #define GX_STYLE_BORDER_MASK                0x0000000fUL
787 
788 /* Define global style flags.  */
789 
790 #define GX_STYLE_TRANSPARENT                0x10000000UL
791 #define GX_STYLE_DRAW_SELECTED              0x20000000UL
792 #define GX_STYLE_ENABLED                    0x40000000UL
793 #define GX_STYLE_DYNAMICALLY_ALLOCATED      0x80000000UL
794 #define GX_STYLE_USE_LOCAL_ALPHA            0x01000000UL
795 
796 /* Define Button style flags.  */
797 
798 #define GX_STYLE_BUTTON_PUSHED              0x00000010UL
799 #define GX_STYLE_BUTTON_TOGGLE              0x00000020UL
800 #define GX_STYLE_BUTTON_RADIO               0x00000040UL
801 #define GX_STYLE_BUTTON_EVENT_ON_PUSH       0x00000080UL
802 #define GX_STYLE_BUTTON_REPEAT              0x00000100UL
803 
804 /* Define Sprite style flags */
805 
806 #define GX_STYLE_SPRITE_AUTO                0x00000010UL
807 #define GX_STYLE_SPRITE_LOOP                0x00000020UL
808 
809 /* Define List style flags.  */
810 
811 #define GX_STYLE_CENTER_SELECTED            0x00000010UL
812 #define GX_STYLE_WRAP                       0x00000020UL
813 #define GX_STYLE_FLICKABLE                  0x00000040UL
814 #define GX_STYLE_REPEAT_SELECT              0x00000080UL
815 
816 
817 /* Define Icon, Pixelmap button and Icon button alignment flags.  */
818 
819 #define GX_STYLE_HALIGN_CENTER              0x00010000UL
820 #define GX_STYLE_HALIGN_LEFT                0x00020000UL
821 #define GX_STYLE_HALIGN_RIGHT               0x00040000UL
822 #define GX_STYLE_VALIGN_CENTER              0x00080000UL
823 #define GX_STYLE_VALIGN_TOP                 0x00100000UL
824 #define GX_STYLE_VALIGN_BOTTOM              0x00200000UL
825 
826 #define GX_PIXELMAP_HALIGN_MASK             0x00070000UL
827 #define GX_PIXELMAP_VALIGN_MASK             0x00380000UL
828 
829 
830 /* Define Slider style flags.  */
831 
832 #define GX_STYLE_SHOW_NEEDLE                0x00000200UL
833 #define GX_STYLE_SHOW_TICKMARKS             0x00000400UL
834 #define GX_STYLE_SLIDER_VERTICAL            0x00000800UL
835 
836 /* Define Pixelmap Slider flags.  */
837 
838 #define GX_STYLE_TILE_BACKGROUND            0x00001000UL
839 
840 /* Define Progress Bar style flags.  */
841 
842 #define GX_STYLE_PROGRESS_PERCENT           0x00000010UL
843 #define GX_STYLE_PROGRESS_TEXT_DRAW         0x00000020UL
844 #define GX_STYLE_PROGRESS_VERTICAL          0x00000040UL
845 
846 #define GX_STYLE_PROGRESS_SEGMENTED_FILL    0x00000100UL
847 
848 /* Define Radial Progress Bar style flags.  */
849 #define GX_STYLE_RADIAL_PROGRESS_ALIAS      0x00000200UL
850 #define GX_STYLE_RADIAL_PROGRESS_ROUND      0x00000400UL
851 #define GX_STYLE_RADIAL_PROGRESS_NO_BACKTRACK 0x00000800UL
852 
853 /* Define Text alignment styles.  */
854 
855 #define GX_STYLE_TEXT_LEFT                  0x00001000UL
856 #define GX_STYLE_TEXT_RIGHT                 0x00002000UL
857 #define GX_STYLE_TEXT_CENTER                0x00004000UL
858 #define GX_STYLE_TEXT_ALIGNMENT_MASK        0x00007000UL
859 #define GX_STYLE_TEXT_COPY                  0x00008000UL
860 
861 /* define cursor style flags */
862 #define GX_STYLE_CURSOR_BLINK               0x00000040UL
863 #define GX_STYLE_CURSOR_ALWAYS              0x00000080UL
864 
865 /* text input style */
866 #define GX_STYLE_TEXT_INPUT_NOTIFY_ALL      0x00000100UL
867 #define GX_STYLE_TEXT_INPUT_READONLY        0x00000200UL
868 
869 /* Define Window styles.  */
870 #define GX_STYLE_TILE_WALLPAPER             0x00040000UL
871 
872 /* Define circular gauge styles.  */
873 #define GX_STYLE_CIRCULAR_GAUGE_CCW         0x00000010UL
874 
875 /* Define menu styles. */
876 #define GX_STYLE_MENU_EXPANDED              0x00000010UL
877 
878 /* Define tree view styles. */
879 #define GX_STYLE_TREE_VIEW_SHOW_ROOT_LINES  0x00000010UL
880 
881 /* Define Scroll Bar styles.  */
882 
883 #define GX_SCROLLBAR_RELATIVE_THUMB         0x00020000UL
884 #define GX_SCROLLBAR_END_BUTTONS            0x00040000UL
885 #define GX_SCROLLBAR_VERTICAL               0x01000000UL
886 #define GX_SCROLLBAR_HORIZONTAL             0x02000000UL
887 
888 
889 /* Define text scroll wheel styles*/
890 #define GX_STYLE_TEXT_SCROLL_WHEEL_ROUND    0x00000100UL
891 
892 /* Define animation status.  */
893 #define GX_ANIMATION_IDLE                   0x01U
894 #define GX_ANIMATION_ACTIVE                 0x02U
895 #define GX_ANIMATION_SLIDE_TRACKING         0x03U
896 #define GX_ANIMATION_SLIDE_LANDING          0x04U
897 
898 /* Define pre-defined animation type flags.  */
899 
900 #define GX_ANIMATION_NONE                   0x0000U
901 #define GX_ANIMATION_TRANSLATE              0x0001U
902 #define GX_ANIMATION_SCREEN_DRAG            0x0002U
903 #define GX_ANIMATION_BLOCK_MOVE             0x0004U
904 
905 /* flags that can be used in combination with screen drag animation */
906 #define GX_ANIMATION_WRAP                   0x0100U
907 #define GX_ANIMATION_HORIZONTAL             0x0200U
908 #define GX_ANIMATION_VERTICAL               0x0400U
909 
910 /* flag that can be used in combination with translate animation */
911 #define GX_ANIMATION_PUSH_STACK             0x4000U
912 #define GX_ANIMATION_DETACH                 0x8000U
913 #define GX_ANIMATION_EASING_FUNC_MASK       0x10f0U
914 #define GX_ANIMATION_BACK_EASE_IN           0x0010U
915 #define GX_ANIMATION_BACK_EASE_OUT          0x0020U
916 #define GX_ANIMATION_BACK_EASE_IN_OUT       0x0030U
917 #define GX_ANIMATION_BOUNCE_EASE_IN         0x0040U
918 #define GX_ANIMATION_BOUNCE_EASE_OUT        0x0050U
919 #define GX_ANIMATION_BOUNCE_EASE_IN_OUT     0x0060U
920 #define GX_ANIMATION_CIRC_EASE_IN           0x0070U
921 #define GX_ANIMATION_CIRC_EASE_OUT          0x0080U
922 #define GX_ANIMATION_CIRC_EASE_IN_OUT       0x0090U
923 #define GX_ANIMATION_CUBIC_EASE_IN          0x00a0U
924 #define GX_ANIMATION_CUBIC_EASE_OUT         0x00b0U
925 #define GX_ANIMATION_CUBIC_EASE_IN_OUT      0x00c0U
926 #define GX_ANIMATION_ELASTIC_EASE_IN        0x00d0U
927 #define GX_ANIMATION_ELASTIC_EASE_OUT       0x00e0U
928 #define GX_ANIMATION_ELASTIC_EASE_IN_OUT    0x00f0U
929 #define GX_ANIMATION_EXPO_EASE_IN           0x1000U
930 #define GX_ANIMATION_EXPO_EASE_OUT          0x1010U
931 #define GX_ANIMATION_EXPO_EASE_IN_OUT       0x1020U
932 #define GX_ANIMATION_QUAD_EASE_IN           0x1030U
933 #define GX_ANIMATION_QUAD_EASE_OUT          0x1040U
934 #define GX_ANIMATION_QUAD_EASE_IN_OUT       0x1050U
935 #define GX_ANIMATION_QUART_EASE_IN          0x1060U
936 #define GX_ANIMATION_QUART_EASE_OUT         0x1070U
937 #define GX_ANIMATION_QUART_EASE_IN_OUT      0x1080U
938 #define GX_ANIMATION_QUINT_EASE_IN          0x1090U
939 #define GX_ANIMATION_QUINT_EASE_OUT         0x10a0U
940 #define GX_ANIMATION_QUINT_EASE_IN_OUT      0x10b0U
941 #define GX_ANIMATION_SINE_EASE_IN           0x10c0U
942 #define GX_ANIMATION_SINE_EASE_OUT          0x10d0U
943 #define GX_ANIMATION_SINE_EASE_IN_OUT       0x10e0U
944 
945 /* Sprite background operations */
946 
947 #define GX_SPRITE_BACKGROUND_NO_ACTION      0x00     /* do nothing between frames            */
948 #define GX_SPRITE_BACKGROUND_SOLID_FILL     0x01     /* draw background with solid color     */
949 #define GX_SPRITE_BACKGROUND_RESTORE        0x02     /* draw background with first image     */
950 
951 
952 /* Define Font information.  */
953 
954 #define GX_FONT_ALIASED                     0x01
955 
956 /* Define Brush attributes.  */
957 
958 #define GX_BRUSH_OUTLINE                    0x0000U            /* for rectangle, text, polygon              */
959 #define GX_BRUSH_SOLID_FILL                 0x0001U            /* For rectangle, text, polygon              */
960 #define GX_BRUSH_PIXELMAP_FILL              0x0002U            /* For rectangle, polygon                    */
961 #define GX_BRUSH_ALIAS                      0x0004U            /* For lines                                 */
962 #define GX_BRUSH_UNDERLINE                  0x0008U            /* Underlined text                           */
963 #define GX_BRUSH_ROUND                      0x0010U            /* For lines                                 */
964 
965 
966 /* Define Canvas information.  */
967 
968 #define GX_CANVAS_SIMPLE                    0x01                /* Canvas is memory-only canvas (no display) */
969 #define GX_CANVAS_MANAGED                   0x02                /* canvas is composited to frame buffer      */
970 #define GX_CANVAS_VISIBLE                   0x04                /* Canvas is visible                         */
971 #define GX_CANVAS_MODIFIED                  0x08
972 #define GX_CANVAS_COMPOSITE                 0x20                /* Canvas is a buffer for creating composite*/
973 
974 /* Define common combinations.  */
975 
976 #define GX_CANVAS_MANAGED_VISIBLE           (GX_CANVAS_MANAGED | GX_CANVAS_VISIBLE)
977 #define GX_ALPHA_VALUE_OPAQUE               255
978 
979 
980 /* Define pre-defined Widget Resource IDs.  */
981 
982 #define GX_ID_VERTICAL_SCROLL               0xff00U
983 #define GX_ID_HORIZONTAL_SCROLL             0xff01U
984 #define GX_ID_SCROLL_UP_LEFT                0xff02U
985 #define GX_ID_SCROLL_DOWN_RIGHT             0xff03U
986 #define GX_ID_SCROLL_THUMB                  0xff04U
987 #define GX_ID_DROP_BUTTON                   0xff05U
988 
989 /* pre-defined timer IDs */
990 #define GX_BUTTON_TIMER                     0xff00U
991 #define GX_CIRCULAR_GAUGE_TIMER             0xff01U
992 #define GX_RADIAL_SLIDER_TIMER              0xff02U
993 
994 /* Define the echo mode of Single-line Text input.  */
995 
996 #define GX_STAR_ECHO                        0x01
997 #define GX_ECHO                             0x02
998 
999 /* Define image type.  */
1000 #define GX_IMAGE_TYPE_BMP                   0x01
1001 #define GX_IMAGE_TYPE_GIF                   0x02
1002 #define GX_IMAGE_TYPE_PNG                   0x03
1003 #define GX_IMAGE_TYPE_JPG                   0x04
1004 
1005 /* Define action types for Studio generated screen flow */
1006 
1007 #define   GX_ACTION_TYPE_ATTACH                 1
1008 #define   GX_ACTION_TYPE_DETACH                 2
1009 #define   GX_ACTION_TYPE_TOGGLE                 3
1010 #define   GX_ACTION_TYPE_SHOW                   4
1011 #define   GX_ACTION_TYPE_HIDE                   5
1012 #define   GX_ACTION_TYPE_ANIMATION              6
1013 #define   GX_ACTION_TYPE_WINDOW_EXECUTE         7
1014 #define   GX_ACTION_TYPE_WINDOW_EXECUTE_STOP    8
1015 #define   GX_ACTION_TYPE_SCREEN_STACK_PUSH      9
1016 #define   GX_ACTION_TYPE_SCREEN_STACK_POP      10
1017 #define   GX_ACTION_TYPE_SCREEN_STACK_RESET    11
1018 
1019 /* Gradient Styles */
1020 #define GX_GRADIENT_TYPE_VERTICAL   0x01
1021 #define GX_GRADIENT_TYPE_ALPHA      0x02
1022 #define GX_GRADIENT_TYPE_MIRROR     0x04
1023 
1024 /* Mouse status flags */
1025 #define GX_MOUSE_ENABLED                    0x01
1026 #define GX_MOUSE_VISIBLE                    0x02
1027 
1028 
1029 /* Text input cursor flags */
1030 #define GX_CURSOR_USE_CUSTOM_HEIGHT         0x01
1031 
1032 /* Text render stlyles */
1033 #if defined(GX_THAI_GLYPH_SHAPING_SUPPORT)
1034 #define GX_TEXT_RENDER_THAI_GLYPH_SHAPING   0x01
1035 #endif
1036 
1037 /* Language direction flags. */
1038 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
1039 #define GX_LANGUAGE_DIRECTION_LTR           0x01
1040 #define GX_LANGUAGE_DIRECTION_RTL           0x02
1041 #endif
1042 
1043 /* Define macros used in GUIX.  */
1044 #ifndef GX_MIN
1045 #define GX_MIN(_a, _b)                      (((_a) < (_b)) ? (_a) : (_b))
1046 #endif
1047 
1048 #ifndef GX_ABS
1049 #define GX_ABS(_a)                          (((_a) < 0) ? (-(_a)) : (_a))
1050 #endif
1051 
1052 #ifndef GX_MEMCPY
1053 #define GX_MEMCPY(a, b, c)                  memcpy(a, b, c)
1054 #endif
1055 
1056 #if defined(GX_UTF8_SUPPORT)
1057 #if defined(GX_EXTENDED_UNICODE_SUPPORT)
1058 /* support 32 bit character codes */
1059 typedef ULONG GX_CHAR_CODE;
1060 #define GX_MAX_GLYPH_CODE 0x10ffff
1061 #else
1062 /* support 16 bit character codes */
1063 typedef USHORT GX_CHAR_CODE;
1064 #define GX_MAX_GLYPH_CODE 0xffff
1065 #endif
1066 #else
1067 /* support 8 bit character codes */
1068 typedef GX_UBYTE GX_CHAR_CODE;
1069 #define GX_MAX_GLYPH_CODE 0xff
1070 #endif
1071 
1072 #ifndef GX_STRLEN
1073 #define GX_STRLEN(a)                        strlen((char *)a)
1074 #endif
1075 
1076 #ifndef GX_STRCPY
1077 #define GX_STRCPY(a, b)                     strcpy(a, b)
1078 #endif
1079 
1080 #ifndef GX_STRCAT
1081 #define GX_STRCAT(a, b)                     strcat(a, b)
1082 #endif
1083 
1084 #define GX_SIGNAL(_a, _b)                   (((_a) << 8) | (_b))
1085 #define IS_SIGNAL(_a)                       (_a >= GX_FIRST_SIGNAL && _a <= GX_LAST_SIGNAL)
1086 #define GX_SWAP_VALS(_a, _b)                {_a ^= _b; _b ^= _a; _a ^= _b; }
1087 #define GX_SEARCH_DEPTH_INFINITE            65535
1088 
1089 #if defined(GX_MOUSE_SUPPORT)
1090 #if !defined(GX_MOUSE_MAX_RESOLUTION)
1091 #define GX_MOUSE_MAX_RESOLUTION 32
1092 #endif
1093 #endif
1094 
1095 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
1096 #define GX_PROMPT_BIDI_RESOLVED_TEXT_INFO               GX_BIDI_RESOLVED_TEXT_INFO *gx_prompt_bidi_resolved_text_info;
1097 #define GX_TEXT_BUTTON_BIDI_RESOLVED_TEXT_INFO          GX_BIDI_RESOLVED_TEXT_INFO *gx_text_button_bidi_resolved_text_info;
1098 #define GX_MULTI_LINE_TEXT_VIEW_BIDI_RESOLVED_TEXT_INFO GX_BIDI_RESOLVED_TEXT_INFO *gx_multi_line_text_view_bidi_resolved_text_info;
1099 #define GX_TEXT_SCROLL_WHEEL_BIDI_RESOLVED_TEXT_INFO    GX_BIDI_RESOLVED_TEXT_INFO **gx_text_scroll_wheel_bidi_resolved_text_info;
1100 #else
1101 #define GX_PROMPT_BIDI_RESOLVED_TEXT_INFO
1102 #define GX_TEXT_BUTTON_BIDI_RESOLVED_TEXT_INFO
1103 #define GX_MULTI_LINE_TEXT_VIEW_BIDI_RESOLVED_TEXT_INFO
1104 #define GX_TEXT_SCROLL_WHEEL_BIDI_RESOLVED_TEXT_INFO
1105 #endif
1106 
1107 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
1108 #define GX_STRING_SCROLL_WHEEL_STRING_LIST_DEPRECATED GX_CONST GX_CHAR **gx_string_scroll_wheel_string_list_deprecated;
1109 #define GX_TEXT_SCROLL_WHEEL_TEXT_GET_DEPRECATED      GX_CONST GX_CHAR* (*gx_text_scroll_wheel_text_get_deprecated)(struct GX_TEXT_SCROLL_WHEEL_STRUCT*, INT);
1110 #else
1111 #define GX_STRING_SCROLL_WHEEL_STRING_LIST_DEPRECATED
1112 #define GX_TEXT_SCROLL_WHEEL_TEXT_GET_DEPRECATED
1113 #endif
1114 
1115 /* Define the Point type.  */
1116 
1117 typedef struct GX_POINT_STRUCT
1118 {
1119     GX_VALUE gx_point_x;
1120     GX_VALUE gx_point_y;
1121 } GX_POINT;
1122 
1123 /* Define the edge type. */
1124 typedef struct GX_POLYGON_EDGE_STRUCT
1125 {
1126     INT gx_polygon_edge_xi;
1127     INT gx_polygon_edge_dx;
1128     INT gx_polygon_edge_dy;
1129     INT gx_polygon_edge_sign;
1130     INT gx_polygon_edge_x_decision;
1131     INT gx_polygon_edge_ymax;
1132     INT gx_polygon_edge_ymin;
1133 } GX_POLYGON_EDGE;
1134 
1135 /* Define the Rectangle type.  */
1136 
1137 typedef struct GX_RECTANGLE_STRUCT
1138 {
1139     GX_VALUE gx_rectangle_left;
1140     GX_VALUE gx_rectangle_top;
1141     GX_VALUE gx_rectangle_right;
1142     GX_VALUE gx_rectangle_bottom;
1143 } GX_RECTANGLE;
1144 
1145 
1146 /* Define the View type.  */
1147 
1148 typedef struct GX_VIEW_STRUCT
1149 {
1150     GX_RECTANGLE           gx_view_rectangle;
1151     struct GX_VIEW_STRUCT *gx_view_next;
1152 } GX_VIEW;
1153 
1154 
1155 /* Define the Glyph type.  */
1156 
1157 /* Define macro for GX_GLYPH_STRUCT members. */
1158 #define GX_GLYPH_MEMBERS_DECLARE                                                                    \
1159     GX_CONST GX_UBYTE *gx_glyph_map;          /* Pointer to glyph data                           */ \
1160     SHORT              gx_glyph_ascent;       /* Glyph ascent above baseline                     */ \
1161     SHORT              gx_glyph_descent;      /* Glyph descent below baseline                    */ \
1162     GX_UBYTE           gx_glyph_advance;      /* Glyph advance                                   */ \
1163     GX_BYTE            gx_glyph_leading;      /* Pen x-pre-advance                               */ \
1164     GX_UBYTE           gx_glyph_width;                                                              \
1165     GX_UBYTE           gx_glyph_height;
1166 
1167 /* Define the Glyph type.  */
1168 typedef struct GX_GLYPH_STRUCT
1169 {
1170     GX_GLYPH_MEMBERS_DECLARE
1171 } GX_GLYPH;
1172 
1173 #if defined (GX_FONT_KERNING_SUPPORT)
1174 /* Define the Kerning Glyph type.  */
1175 typedef struct GX_KERNING_GLYPH_STRUCT
1176 {
1177     GX_GLYPH_MEMBERS_DECLARE
1178     GX_CONST GX_UBYTE *gx_kerning_table;                   /* Kerning table */
1179 } GX_KERNING_GLYPH;
1180 #endif
1181 
1182 /* Define the Compressed Glyph type.  */
1183 typedef struct GX_COMPRESSED_GLYPH_STRUCT
1184 {
1185     GX_GLYPH_MEMBERS_DECLARE
1186     USHORT             gx_glyph_map_size;                       /* Glyph size */
1187 } GX_COMPRESSED_GLYPH;
1188 
1189 /* Define the Font type.  */
1190 typedef struct GX_FONT_STRUCT
1191 {
1192     GX_UBYTE                     gx_font_format;                /* Format flags, defined below              */
1193     GX_UBYTE                     gx_font_prespace;              /* Line spacing above, pixels               */
1194     GX_UBYTE                     gx_font_postspace;             /* Line spacing below, pixels               */
1195     GX_UBYTE                     gx_font_line_height;           /* Font height, excluding spacing           */
1196     GX_UBYTE                     gx_font_baseline;              /* Font baseline                            */
1197     GX_CHAR_CODE                 gx_font_first_glyph;           /* First glyph on this page                 */
1198     GX_CHAR_CODE                 gx_font_last_glyph;            /* Last glyph on this page                  */
1199     union {
1200         GX_CONST GX_GLYPH            *gx_font_normal_glyphs;        /* Array of GX_GLYPH structures             */
1201         GX_CONST GX_COMPRESSED_GLYPH *gx_font_compressed_glyphs;    /* Array of GX_COMPRESSED_GLYPH structures  */
1202         #if defined (GX_FONT_KERNING_SUPPORT)
1203         GX_CONST GX_KERNING_GLYPH    *gx_font_kerning_glyphs;       /* Array of GX_KERNING_GLYPH structures     */
1204         #endif
1205     } gx_font_glyphs;
1206     GX_CONST struct GX_FONT_STRUCT *gx_font_next_page;         /* For multiple page fonts (Unicode)        */
1207 } GX_FONT;
1208 
1209 #define GX_FONT_FORMAT_BPP_MASK   0x03
1210 #define GX_FONT_FORMAT_1BPP       0x00
1211 #define GX_FONT_FORMAT_2BPP       0x01
1212 #define GX_FONT_FORMAT_4BPP       0x02
1213 #define GX_FONT_FORMAT_8BPP       0x03
1214 
1215 #define GX_FONT_FORMAT_COMPRESSED     0x10
1216 #define GX_FONT_FORMAT_FREETYPE       0x20
1217 #define GX_FONT_FORMAT_KERNING        0x40
1218 #define GX_FONT_FORMAT_REVERSED_ORDER 0x80  /* For 4bpp font, half bytes order reversed. For 1bpp font, bits order reversed with least signigicant bit in left. */
1219 #define GX_FONT_FORMAT_ROTATED_90     0x04
1220 #define GX_FONT_FORMAT_ROTATED_270    0x08
1221 
1222 /* Define Pixelmap type.  */
1223 
1224 typedef struct GX_PIXELMAP_STRUCT
1225 {
1226     GX_UBYTE           gx_pixelmap_version_major;               /* Pixelmap major version number            */
1227     GX_UBYTE           gx_pixelmap_version_minor;               /* Pixelmap minor version number            */
1228     GX_UBYTE           gx_pixelmap_flags;                       /* Flags defined below                      */
1229     GX_UBYTE           gx_pixelmap_format;                      /* Color format, defined below              */
1230     GX_CONST GX_UBYTE *gx_pixelmap_data;                        /* Pointer to pixelmap data                 */
1231     ULONG              gx_pixelmap_data_size;                   /* Size of the pixelmap data array          */
1232     GX_CONST GX_UBYTE *gx_pixelmap_aux_data;                    /* Auxiliary data array.                    */
1233     ULONG              gx_pixelmap_aux_data_size;               /* Size of the auxiliary data array         */
1234     ULONG              gx_pixelmap_transparent_color;           /* Used for translated GIF images           */
1235     GX_VALUE           gx_pixelmap_width;                       /* Width - in pixels                        */
1236     GX_VALUE           gx_pixelmap_height;                      /* Height - in pixels                       */
1237 } GX_PIXELMAP;
1238 
1239 
1240 /* Pixelmap flags that can be in GX_PIXELMAP.gx_pixelmap_flags above.  */
1241 
1242 #define GX_PIXELMAP_TRANSPARENT    0x01                         /* Pixelmap has transparent pixels          */
1243 #define GX_PIXELMAP_COMPRESSED     0x02                         /* Pixelmap is compressed format            */
1244 #define GX_PIXELMAP_ALPHA          0x04                         /* Pixelmap has alpha channel               */
1245 #define GX_PIXELMAP_TARGA          0x08                         /* Pixelmap uses Targa format compresssion  */
1246 #define GX_PIXELMAP_RAW_FORMAT     0x10                         /* RAW JPG/PNG format                       */
1247 #define GX_PIXELMAP_DYNAMICALLY_ALLOCATED  0x20                 /* Pixelmap is dynamically allocated        */
1248 
1249 #define GX_PIXELMAP_ROTATED_CW     0x40
1250 #define GX_PIXELMAP_ROTATED_CCW    0x80
1251 
1252 /* Deprecated definitions, provided only for backward compatibility */
1253 #define GX_PIXELMAP_ROTATED_90  GX_PIXELMAP_ROTATED_CW
1254 #define GX_PIXELMAP_ROTATED_270 GX_PIXELMAP_ROTATED_CCW
1255 
1256 #define PIXELMAP_IS_TRANSPARENT(a) (a -> gx_pixelmap_flags & (GX_PIXELMAP_TRANSPARENT | GX_PIXELMAP_ALPHA))
1257 
1258 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
1259 typedef struct GX_BIDI_TEXT_INFO_STRUCT
1260 {
1261     GX_STRING gx_bidi_text_info_text;
1262     GX_FONT  *gx_bidi_text_info_font;
1263     GX_VALUE  gx_bidi_text_info_display_width;
1264     GX_BYTE   gx_bidi_text_info_direction;
1265 } GX_BIDI_TEXT_INFO;
1266 
1267 typedef struct GX_BIDI_RESOLVED_TEXT_INFO_STRUCT
1268 {
1269     GX_STRING                                *gx_bidi_resolved_text_info_text;
1270     UINT                                      gx_bidi_resolved_text_info_total_lines;
1271     struct GX_BIDI_RESOLVED_TEXT_INFO_STRUCT *gx_bidi_resolved_text_info_next;
1272 } GX_BIDI_RESOLVED_TEXT_INFO;
1273 #endif
1274 
1275 /* Define Brush type.  */
1276 
1277 typedef struct GX_BRUSH_STRUCT
1278 {
1279     GX_PIXELMAP *gx_brush_pixelmap;                             /* Used for fills and line ends             */
1280     GX_FONT     *gx_brush_font;                                 /* Used for drawing text                    */
1281     ULONG        gx_brush_line_pattern;                         /* Used for drawing dashed lines            */
1282     ULONG        gx_brush_pattern_mask;                         /* Used for drawing dashed lines            */
1283     GX_COLOR     gx_brush_fill_color;                           /* For solid color fills                    */
1284     GX_COLOR     gx_brush_line_color;                           /* For lines and outlines                   */
1285     UINT         gx_brush_style;                                /* Flags defined below                      */
1286     GX_VALUE     gx_brush_width;                                /* Line width                               */
1287     UCHAR        gx_brush_alpha;                                /* for blending                             */
1288 } GX_BRUSH;
1289 
1290 
1291 
1292 /* forward reference */
1293 struct GX_WIDGET_STRUCT;
1294 struct GX_TEXT_SCROLL_WHEEL_STRUCT;
1295 
1296 /* Define Dirty Area type.  */
1297 typedef struct GX_DIRTY_AREA_STRUCT
1298 {
1299     GX_RECTANGLE             gx_dirty_area_rectangle;
1300     struct GX_WIDGET_STRUCT *gx_dirty_area_widget;
1301 } GX_DIRTY_AREA;
1302 
1303 
1304 /* Define Event type.  Note: the size of this structure must be less than or equal to the constant
1305    GX_EVENT_SIZE defined previously.  */
1306 
1307 typedef struct GX_EVENT_STRUCT
1308 {
1309     ULONG  gx_event_type;                                       /* Global event type                        */
1310     ULONG  gx_event_display_handle;
1311     struct GX_WIDGET_STRUCT *gx_event_target;                   /* receiver of event                        */
1312     USHORT gx_event_sender;                                     /* ID of the event sender                   */
1313     union
1314     {
1315         UINT     gx_event_timer_id;
1316         GX_POINT gx_event_pointdata;
1317         GX_UBYTE gx_event_uchardata[4];
1318         USHORT   gx_event_ushortdata[2];
1319         ULONG    gx_event_ulongdata;
1320         GX_BYTE  gx_event_chardata[4];
1321         SHORT    gx_event_shortdata[2];
1322         INT      gx_event_intdata[2];
1323         LONG     gx_event_longdata;
1324     } gx_event_payload;
1325 } GX_EVENT;
1326 
1327 #define GX_EVENT_SIZE   sizeof(GX_EVENT)
1328 #define GX_EVENT_ULONGS ((GX_EVENT_SIZE + 3) / sizeof(ULONG))
1329 
1330 
1331 /* Define Scroll information structure. This structure is used to define the position
1332    and scaling of the scroll bar thumb button.  */
1333 
1334 typedef struct GX_SCROLL_INFO_STRUCT
1335 {
1336     INT      gx_scroll_value;
1337     INT      gx_scroll_minimum;
1338     INT      gx_scroll_maximum;
1339     GX_VALUE gx_scroll_visible;
1340     GX_VALUE gx_scroll_increment;
1341 } GX_SCROLL_INFO;
1342 
1343 
1344 /* Define Slider information structure. This structure is used to define the
1345    appearance of a Pixelmap Slider.  */
1346 
1347 typedef struct GX_SLIDER_INFO_STRUCT
1348 {
1349     INT      gx_slider_info_min_val;
1350     INT      gx_slider_info_max_val;
1351     INT      gx_slider_info_current_val;
1352     INT      gx_slider_info_increment;
1353     GX_VALUE gx_slider_info_min_travel;
1354     GX_VALUE gx_slider_info_max_travel;
1355     GX_VALUE gx_slider_info_needle_width;
1356     GX_VALUE gx_slider_info_needle_height;
1357     GX_VALUE gx_slider_info_needle_inset;
1358     GX_VALUE gx_slider_info_needle_hotspot_offset;
1359 } GX_SLIDER_INFO;
1360 
1361 
1362 typedef struct GX_PIXELMAP_SLIDER_INFO_STRUCT
1363 {
1364     GX_RESOURCE_ID gx_pixelmap_slider_info_lower_background_pixelmap;
1365     GX_RESOURCE_ID gx_pixelmap_slider_info_upper_background_pixelmap;
1366     GX_RESOURCE_ID gx_pixelmap_slider_info_needle_pixelmap;
1367 } GX_PIXELMAP_SLIDER_INFO;
1368 
1369 /* Define Progress bar information structure. This structure is used to define the
1370    appearance of a Progress bar.  */
1371 
1372 typedef struct GX_PROGRESS_BAR_INFO_STRUCT
1373 {
1374     INT            gx_progress_bar_info_min_val;
1375     INT            gx_progress_bar_info_max_val;
1376     INT            gx_progress_bar_info_current_val;
1377     GX_RESOURCE_ID gx_progress_bar_font_id;
1378     GX_RESOURCE_ID gx_progress_bar_normal_text_color;
1379     GX_RESOURCE_ID gx_progress_bar_selected_text_color;
1380     GX_RESOURCE_ID gx_progress_bar_disabled_text_color;
1381     GX_RESOURCE_ID gx_progress_bar_fill_pixelmap;
1382 } GX_PROGRESS_BAR_INFO;
1383 
1384 /* Define circular gauge information structure, this structure is used to
1385    define the appearance of the circular gauge widget.  */
1386 typedef struct GX_CIRCULAR_GAUGE_INFO_STRUCT
1387 {
1388     /* Rotating steps.  */
1389     INT gx_circular_gauge_info_animation_steps;
1390 
1391     /* Delay time between each step.  */
1392     INT gx_circular_gauge_info_animation_delay;
1393 
1394     /* Offset of needle cor relative to parent.  */
1395     GX_VALUE gx_circular_gauge_info_needle_xpos;
1396     GX_VALUE gx_circular_gauge_info_needle_ypos;
1397 
1398     /* Rotation center. */
1399     GX_VALUE gx_circular_gauge_info_needle_xcor;
1400     GX_VALUE gx_circular_gauge_info_needle_ycor;
1401     GX_RESOURCE_ID gx_circular_gauge_info_needle_pixelmap;
1402 } GX_CIRCULAR_GAUGE_INFO;
1403 
1404 /* Define radial progress bar information structure, this structure is used to
1405    define the appearance of the radial progress bar widget.  */
1406 
1407 typedef struct GX_RADIAL_PROGRESS_BAR_INFO_STRUCT
1408 {
1409     GX_VALUE       gx_radial_progress_bar_info_xcenter;
1410     GX_VALUE       gx_radial_progress_bar_info_ycenter;
1411     GX_VALUE       gx_radial_progress_bar_info_radius;                 /* radius of circular track.  */
1412     GX_VALUE       gx_radial_progress_bar_info_current_val;            /* current value.  */
1413     GX_VALUE       gx_radial_progress_bar_info_anchor_val;             /* starting angle for the circular arc.  */
1414     GX_RESOURCE_ID gx_radial_progress_bar_info_font_id;
1415     GX_RESOURCE_ID gx_radial_progress_bar_info_normal_text_color;      /* resource ID of color for normal text.  */
1416     GX_RESOURCE_ID gx_radial_progress_bar_info_selected_text_color;    /* resource ID of color for selected text.  */
1417     GX_RESOURCE_ID gx_radial_progress_bar_info_disabled_text_color;
1418     GX_VALUE       gx_radial_progress_bar_info_normal_brush_width;     /* width of lower track.  */
1419     GX_VALUE       gx_radial_progress_bar_info_selected_brush_width;   /* width of upper track.  */
1420     GX_RESOURCE_ID gx_radial_progress_bar_info_normal_brush_color;     /* resource ID of color for lower track.  */
1421     GX_RESOURCE_ID gx_radial_progress_bar_info_selected_brush_color;   /* resource ID of color for upper track.  */
1422 
1423 } GX_RADIAL_PROGRESS_BAR_INFO;
1424 
1425 /* Define radial slider information structure, this structure is used to
1426    define the appearance of the radial slider widget.  */
1427 typedef struct GX_RADIAL_SLIDER_INFO_STRUCT
1428 {
1429     GX_VALUE       gx_radial_slider_info_xcenter;
1430     GX_VALUE       gx_radial_slider_info_ycenter;
1431     USHORT         gx_radial_slider_info_radius;
1432     USHORT         gx_radial_slider_info_track_width;
1433     GX_VALUE       gx_radial_slider_info_needle_offset;
1434     GX_VALUE       gx_radial_slider_info_current_angle;
1435     GX_VALUE       gx_radial_slider_info_min_angle;
1436     GX_VALUE       gx_radial_slider_info_max_angle;
1437     GX_VALUE      *gx_radial_slider_info_angle_list;
1438     USHORT         gx_radial_slider_info_list_count;
1439     GX_RESOURCE_ID gx_radial_slider_info_background_pixelmap;
1440     GX_RESOURCE_ID gx_radial_slider_info_needle_pixelmap;
1441 }GX_RADIAL_SLIDER_INFO;
1442 
1443 /* Define GX_LINE_CHART information structure, this structure is used to
1444    define the appearance of the line chart widget.  */
1445 typedef struct GX_LINE_CHART_INFO_STRUCT
1446 {
1447     INT            gx_line_chart_min_val;
1448     INT            gx_line_chart_max_val;
1449     INT           *gx_line_chart_data;
1450     GX_VALUE       gx_line_chart_left_margin;
1451     GX_VALUE       gx_line_chart_top_margin;
1452     GX_VALUE       gx_line_chart_right_margin;
1453     GX_VALUE       gx_line_chart_bottom_margin;
1454     GX_VALUE       gx_line_chart_max_data_count;
1455     GX_VALUE       gx_line_chart_active_data_count;
1456     GX_VALUE       gx_line_chart_axis_line_width;
1457     GX_VALUE       gx_line_chart_data_line_width;
1458     GX_RESOURCE_ID gx_line_chart_axis_color;
1459     GX_RESOURCE_ID gx_line_chart_line_color;
1460 } GX_LINE_CHART_INFO;
1461 
1462 
1463 /* Define Scroll Appearance structure. This structure is used to define the
1464    appearance of a scroll bar.  */
1465 
1466 typedef struct GX_SCROLLBAR_APPEARANCE_STRUCT
1467 {
1468     GX_VALUE       gx_scroll_width;
1469     GX_VALUE       gx_scroll_thumb_width;
1470     GX_VALUE       gx_scroll_thumb_travel_min;
1471     GX_VALUE       gx_scroll_thumb_travel_max;
1472     GX_UBYTE       gx_scroll_thumb_border_style;
1473     GX_RESOURCE_ID gx_scroll_fill_pixelmap;
1474     GX_RESOURCE_ID gx_scroll_thumb_pixelmap;
1475     GX_RESOURCE_ID gx_scroll_up_pixelmap;
1476     GX_RESOURCE_ID gx_scroll_down_pixelmap;
1477     GX_RESOURCE_ID gx_scroll_thumb_color;
1478     GX_RESOURCE_ID gx_scroll_thumb_border_color;
1479     GX_RESOURCE_ID gx_scroll_button_color;
1480 } GX_SCROLLBAR_APPEARANCE;
1481 
1482 /* Sprite frame structure. This structure is used to define the
1483    parameters of a GX_SPRITE animation sequence.  */
1484 
1485 typedef struct GX_SPRITE_FRAME_STRUCT
1486 {
1487     GX_RESOURCE_ID gx_sprite_frame_pixelmap;
1488     GX_VALUE       gx_sprite_frame_x_offset;
1489     GX_VALUE       gx_sprite_frame_y_offset;
1490     UINT           gx_sprite_frame_delay;
1491     UINT           gx_sprite_frame_background_operation;
1492     UCHAR          gx_sprite_frame_alpha;
1493 } GX_SPRITE_FRAME;
1494 
1495 /* GX_GRADIENT structure. This structure is used to support
1496    runtime gradient pixelmap creation  */
1497 typedef struct GX_GRADIENT_STRUCT {
1498     struct GX_GRADIENT_STRUCT *gx_gradient_next;
1499     struct GX_GRADIENT_STRUCT *gx_gradient_previous;
1500     UCHAR    gx_gradient_type;
1501     UCHAR    gx_gradient_alpha_start;
1502     UCHAR    gx_gradient_alpha_end;
1503     GX_FIXED_VAL  gx_gradient_alpha_step;
1504     GX_FIXED_VAL  gx_gradient_alpha_current;
1505     GX_PIXELMAP   gx_gradient_pixelmap;
1506 } GX_GRADIENT;
1507 
1508 
1509 /* Define Drawing Context type.  */
1510 
1511 typedef struct GX_DRAW_CONTEXT_STRUCT
1512 {
1513     GX_BRUSH                  gx_draw_context_brush;
1514     struct GX_CANVAS_STRUCT  *gx_draw_context_canvas;
1515     struct GX_DISPLAY_STRUCT *gx_draw_context_display;
1516     GX_VIEW                  *gx_draw_context_view_head;
1517     GX_VIEW                   gx_draw_context_simple_view;
1518     GX_COLOR                 *gx_draw_context_memory;
1519     GX_RECTANGLE              gx_draw_context_dirty;
1520     GX_RECTANGLE             *gx_draw_context_clip;
1521     GX_VALUE                  gx_draw_context_pitch;
1522 } GX_DRAW_CONTEXT;
1523 
1524 /* Define fill map info type.  */
1525 typedef struct GX_FILL_PIXELMAP_INFO_STRUCT
1526 {
1527     GX_PIXELMAP *pixelmap;
1528     GX_BOOL      draw;
1529     GX_UBYTE    *current_pixel_ptr;
1530     GX_UBYTE    *current_aux_ptr;
1531     GX_UBYTE     mask;
1532     INT          x_offset;
1533     INT          y_offset;
1534 }GX_FILL_PIXELMAP_INFO;
1535 
1536 /* Display layer services structure type. These services may be provided by display drivers
1537    support multiple hardware graphics layers. */
1538 
1539 
1540 typedef struct GX_DISPLAY_LAYER_SERVICES_STRUCT
1541 {
1542     UINT (*gx_display_layer_initialize)(INT layer, struct GX_CANVAS_STRUCT *canvas);
1543     VOID (*gx_display_layer_show)(INT layer);
1544     VOID (*gx_display_layer_hide)(INT layer);
1545     VOID (*gx_display_layer_alpha_set)(INT layer, GX_UBYTE alpha);
1546     VOID (*gx_display_layer_offset_set)(INT layer, GX_VALUE xoffset, GX_VALUE yoffset);
1547     VOID (*gx_display_layer_active_display_area_set)(INT layer, GX_RECTANGLE *size);
1548 } GX_DISPLAY_LAYER_SERVICES;
1549 
1550 #if defined(GX_MOUSE_SUPPORT)
1551 typedef struct GX_MOUSE_CURSOR_INFO_STRUCT
1552 {
1553     GX_RESOURCE_ID            gx_mouse_cursor_image_id;
1554     GX_VALUE                  gx_mouse_cursor_hotspot_x;
1555     GX_VALUE                  gx_mouse_cursor_hotspot_y;
1556 } GX_MOUSE_CURSOR_INFO;
1557 
1558 typedef struct GX_DISPLAY_MOUSE_STRUCT
1559 {
1560     GX_MOUSE_CURSOR_INFO     *gx_mouse_cursor_info;
1561     struct GX_CANVAS_STRUCT  *gx_mouse_canvas;
1562     GX_POINT                  gx_mouse_position;
1563     GX_UBYTE                  gx_mouse_status;
1564 
1565     #if !defined(GX_HARDWARE_MOUSE_SUPPORT)
1566     GX_RECTANGLE              gx_mouse_rect;
1567     GX_UBYTE                 *gx_mouse_capture_memory;
1568     #endif
1569 } GX_DISPLAY_MOUSE;
1570 #endif
1571 
1572 /* Define the display control block structure.  */
1573 typedef struct GX_DISPLAY_STRUCT
1574 {
1575     /* Define the display ID and name. The display ID is used simply to see if the
1576        control block is valid.  */
1577     ULONG                     gx_display_id;                    /* Control block ID GX_DISPLAY_ID           */
1578     ULONG                     gx_display_handle;                /* used to identify unique display instance */
1579     GX_CONST GX_CHAR         *gx_display_name;                  /* Pointer to display's name                */
1580 
1581     struct GX_DISPLAY_STRUCT *gx_display_created_next;          /* Pointer to next control block            */
1582     struct GX_DISPLAY_STRUCT *gx_display_created_previous;      /* Pointer to previous control block        */
1583 
1584     GX_COLOR                 *gx_display_color_table;           /* color ID to native value mapping table   */
1585     GX_PIXELMAP             **gx_display_pixelmap_table;        /* pixelmap ID to GX_PIXELMAP mapping table */
1586     GX_FONT                 **gx_display_font_table;            /* font ID to GX_FONT mapping table         */
1587     GX_COLOR                 *gx_display_palette;               /* only used for 8-bpp palette mode driver  */
1588 
1589 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
1590     GX_CONST GX_CHAR       ***gx_display_language_table_deprecated;
1591 #endif
1592     GX_CONST GX_STRING      **gx_display_language_table;        /* Define the language table.               */
1593 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
1594     GX_CONST GX_UBYTE        *gx_display_language_direction_table; /* Define the langauge direction table.  */
1595 #endif
1596     UINT                      gx_display_color_table_size;
1597     UINT                      gx_display_pixelmap_table_size;
1598     UINT                      gx_display_font_table_size;
1599     UINT                      gx_display_string_table_size;
1600     UINT                      gx_display_palette_size;          /* only used for 8-bpp palette mode driver */
1601 
1602     GX_UBYTE                  gx_display_color_format;
1603     GX_UBYTE                  gx_display_active_language;       /* Define the active language.              */
1604     GX_UBYTE                  gx_display_language_table_size;
1605     GX_UBYTE                  gx_display_driver_ready;
1606     USHORT                    gx_display_rotation_angle;
1607 
1608     GX_VALUE                  gx_display_width;
1609     GX_VALUE                  gx_display_height;
1610 
1611     VOID                     *gx_display_driver_data;
1612     VOID                     *gx_display_accelerator;           /* graphics accelerator handle/instance */
1613 
1614     GX_DISPLAY_LAYER_SERVICES *gx_display_layer_services;       /* optional additional hardware graphics layer services */
1615 
1616     /* function to initiate drawing sequence */
1617     VOID                    (*gx_display_driver_drawing_initiate)(struct GX_DISPLAY_STRUCT *display, struct GX_CANVAS_STRUCT *canvas);
1618 
1619     /* function to terminate drawing sequence */
1620     VOID                    (*gx_display_driver_drawing_complete)(struct GX_DISPLAY_STRUCT *display, struct GX_CANVAS_STRUCT *canvas);
1621 
1622     /* function for installing palette (only used for certain palette mode drivers) */
1623     VOID                     (*gx_display_driver_palette_set)(struct GX_DISPLAY_STRUCT *display, GX_COLOR *palette, INT count);
1624 
1625     /* Function for drawing non-aliased, single pixel line */
1626     VOID                     (*gx_display_driver_simple_line_draw)(GX_DRAW_CONTEXT *context,
1627                                                                    INT x1, INT y1, INT x2, INT y2);
1628 
1629     /* Function for drawing non-aliased, wide line */
1630     VOID                     (*gx_display_driver_simple_wide_line_draw)(GX_DRAW_CONTEXT *context,
1631                                                                         INT x1, INT y1, INT x2, INT y2);
1632 
1633     /* Function for drawing anti-aliased aliased, single-pixel line */
1634     VOID                     (*gx_display_driver_anti_aliased_line_draw)(GX_DRAW_CONTEXT *context,
1635                                                                          INT x1, INT y1, INT x2, INT y2);
1636 
1637     /* Function for drawing anti-aliased aliased, wide line */
1638     VOID                     (*gx_display_driver_anti_aliased_wide_line_draw)(GX_DRAW_CONTEXT *context,
1639                                                                               INT x1, INT y1, INT x2, INT y2);
1640 
1641     VOID                     (*gx_display_driver_horizontal_line_draw)(GX_DRAW_CONTEXT *context,
1642                                                                        INT x1, INT x2, INT ypos, INT width, GX_COLOR color);
1643     VOID                     (*gx_display_driver_horizontal_pixelmap_line_draw)(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT y, GX_FILL_PIXELMAP_INFO *info);
1644     VOID                     (*gx_display_driver_vertical_line_draw)(GX_DRAW_CONTEXT *context,
1645                                                                      INT y1, INT y2, INT xpos, INT width, GX_COLOR color);
1646     VOID                     (*gx_display_driver_horizontal_pattern_line_draw)(GX_DRAW_CONTEXT *context,
1647                                                                                INT x1, INT x2, INT ypos);
1648     VOID                     (*gx_display_driver_vertical_pattern_line_draw)(GX_DRAW_CONTEXT *context,
1649                                                                              INT y1, INT y2, INT xpos);
1650     /* Define driver function pointers for canvas composite */
1651     VOID                     (*gx_display_driver_canvas_copy)(struct GX_CANVAS_STRUCT *source,
1652                                                               struct GX_CANVAS_STRUCT *dest);
1653     /* Define driver function pointers for canvas composite */
1654     VOID                     (*gx_display_driver_canvas_blend)(struct GX_CANVAS_STRUCT *source,
1655                                                                struct GX_CANVAS_STRUCT *dest);
1656 
1657     /* Define driver function pointers for pixelmap drawing */
1658     VOID                     (*gx_display_driver_pixelmap_draw)(GX_DRAW_CONTEXT *context,
1659                                                                 INT xpos, INT ypos, GX_PIXELMAP *pmp);
1660     VOID                     (*gx_display_driver_pixelmap_blend)(GX_DRAW_CONTEXT *context,
1661                                                                  INT xpos, INT ypos, GX_PIXELMAP *pmp, GX_UBYTE alpha);
1662     VOID                     (*gx_display_driver_alphamap_draw)(GX_DRAW_CONTEXT *context,
1663                                                                 INT xpos, INT ypos, GX_PIXELMAP *pmp);
1664 
1665 #if defined(GX_SOFTWARE_DECODER_SUPPORT)
1666     /* driver function for decode raw jpg directly to frame buffer */
1667     VOID                     (*gx_display_driver_jpeg_draw)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_PIXELMAP *pixelmap);
1668     VOID                     (*gx_display_driver_png_draw)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_PIXELMAP *pixelmap);
1669 #endif
1670 
1671     VOID                     (*gx_display_driver_pixelmap_rotate)(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap,
1672                                                                   INT angle, INT rot_cx, INT rot_cy);
1673 
1674     /* Define driver function pointer for low-level pixel writing.  */
1675     VOID                     (*gx_display_driver_pixel_write)(GX_DRAW_CONTEXT *context,
1676                                                               INT x, INT y, GX_COLOR color);
1677 
1678     /* Define driver function for block move. */
1679     VOID                     (*gx_display_driver_block_move)(GX_DRAW_CONTEXT *context,
1680                                                              GX_RECTANGLE *block, INT xshift, INT yshift);
1681 
1682     /* Define driver function pointer for low-level pixel blending.  */
1683     VOID                     (*gx_display_driver_pixel_blend)(GX_DRAW_CONTEXT *context,
1684                                                               INT x, INT y, GX_COLOR color, GX_UBYTE alpha);
1685 
1686     /* Define driver function pointer to convert 32-bit color to native format.  */
1687     GX_COLOR                 (*gx_display_driver_native_color_get)(struct GX_DISPLAY_STRUCT *display, GX_COLOR rawcolor);
1688 
1689     /* Define driver function pointer to return row pitch, in bytes, for given canvas width.  */
1690     USHORT                   (*gx_display_driver_row_pitch_get)(USHORT width);
1691 
1692     /* Define driver function pointer for low-level buffer toggle.  */
1693     VOID                     (*gx_display_driver_buffer_toggle)(struct GX_CANVAS_STRUCT *canvas,
1694                                                                 GX_RECTANGLE *dirty_area);
1695 
1696     /* Define driver function pointer for drawing polygon.  */
1697     VOID                     (*gx_display_driver_polygon_draw)(GX_DRAW_CONTEXT *context, GX_POINT *vertex, INT num);
1698 
1699     /* Define driver function pointer for filling polygon shape.  */
1700     VOID                     (*gx_display_driver_polygon_fill)(GX_DRAW_CONTEXT *context, GX_POINT *vertex, INT num);
1701 
1702     /* Define driver function pointer for drawing aliased 8bit glyph (may be NULL).  */
1703     VOID                     (*gx_display_driver_8bit_glyph_draw)(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
1704                                                                   GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
1705 
1706     /* Define driver function pointer for drawing aliased 4bit glyph (may be NULL).  */
1707     VOID                     (*gx_display_driver_4bit_glyph_draw)(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
1708                                                                   GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
1709 
1710     /* Define driver function pointer for drawing 1bit (monochrome) glyph.  */
1711     VOID                     (*gx_display_driver_1bit_glyph_draw)(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
1712                                                                   GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
1713 
1714     /* Define driver function pointer for drawing aliased 8bit compressed glyph (may be NULL).  */
1715     VOID                     (*gx_display_driver_8bit_compressed_glyph_draw)(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
1716                                                                              GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
1717 
1718     /* Define driver function pointer for drawing aliased 4bit compressed glyph (may be NULL).  */
1719     VOID                     (*gx_display_driver_4bit_compressed_glyph_draw)(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
1720                                                                              GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
1721 
1722     /* Define driver function pointer for drawing 1bit (monochrome) compressed glyph.  */
1723     VOID                     (*gx_display_driver_1bit_compressed_glyph_draw)(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
1724                                                                              GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
1725 
1726     VOID                     (*gx_display_driver_callback_assign)(UINT(*wait_func)(VOID *), VOID *);
1727 
1728 #if defined(GX_ARC_DRAWING_SUPPORT)
1729 
1730     /* Define driver function pointer for drawing circle.  */
1731     VOID                     (*gx_display_driver_circle_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
1732 
1733     /* Define driver function pointer for drawing anti-aliased circle.  */
1734     VOID                     (*gx_display_driver_anti_aliased_circle_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
1735 
1736     /* Define driver function pointer for drawing circle with wide outlines.  */
1737     VOID                     (*gx_display_driver_wide_circle_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
1738 
1739     /* Define driver function pointer for drawing anti-aliased circle with wide outlines.  */
1740     VOID                     (*gx_display_driver_anti_aliased_wide_circle_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
1741 
1742     /* Define driver function pointer for filling circle shape.  */
1743     VOID                     (*gx_display_driver_circle_fill)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r);
1744 
1745 
1746     /* Define driver function pointer for drawing circle arc. */
1747     VOID                     (*gx_display_driver_arc_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
1748 
1749     /* Define driver function pointer for drawing anti-aliased circle arc.  */
1750     VOID                     (*gx_display_driver_anti_aliased_arc_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
1751 
1752     /* Define driver function pointer for drawing circle arc with wide outlines. */
1753     VOID                     (*gx_display_driver_wide_arc_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
1754 
1755     /* Define driver function pointer for drawing anti-aliased circle arc with wide outlines. */
1756     VOID                     (*gx_display_driver_anti_aliased_wide_arc_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
1757 
1758     /* Define driver function pointer for filling circle arc shape.  */
1759     VOID                     (*gx_display_driver_arc_fill)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
1760 
1761     /* Define driver function pointer for filling pie shape.  */
1762     VOID                     (*gx_display_driver_pie_fill)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
1763 
1764     /* Define driver function pointer for drawing ellipse.  */
1765     VOID                     (*gx_display_driver_ellipse_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
1766 
1767     /* Define driver function pointer for drawing anti-aliased ellipse.  */
1768     VOID                     (*gx_display_driver_anti_aliased_ellipse_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
1769 
1770     /* Define driver function pointer for drawing ellipse with wide outlines.  */
1771     VOID                     (*gx_display_driver_wide_ellipse_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
1772 
1773     /* Define driver function pointer for drawing anti-aliased ellipse with wide outlines.  */
1774     VOID                     (*gx_display_driver_anti_aliased_wide_ellipse_draw)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
1775 
1776     /* Define driver function pointer for drawing a filled ellipse.  */
1777     VOID                     (*gx_display_driver_ellipse_fill)(GX_DRAW_CONTEXT *context, INT xcenter, INT ycenter, INT a, INT b);
1778 #endif
1779 
1780 #if defined (GX_MOUSE_SUPPORT)
1781     GX_DISPLAY_MOUSE        gx_display_mouse;
1782     /* Define driver function pointer for setting pixelmap for mouse. */
1783     VOID                    (*gx_display_mouse_define)(struct GX_DISPLAY_STRUCT *display, struct GX_CANVAS_STRUCT *canvas, GX_MOUSE_CURSOR_INFO *info);
1784     VOID                    (*gx_display_mouse_position_set)(struct GX_DISPLAY_STRUCT *display,  GX_POINT *pos);
1785     VOID                    (*gx_display_mouse_enable)(struct GX_DISPLAY_STRUCT *display, GX_BOOL enable);
1786 #if !defined(GX_HARDWARE_MOUSE_SUPPORT)
1787     VOID                    (*gx_display_mouse_capture)(struct GX_DISPLAY_STRUCT *display);
1788     VOID                    (*gx_display_mouse_restore)(struct GX_DISPLAY_STRUCT *display);
1789     VOID                    (*gx_display_mouse_draw)(struct GX_DISPLAY_STRUCT *display);
1790 #endif
1791 #endif
1792 
1793 } GX_DISPLAY;
1794 
1795 
1796 /* Define Canvas type.  */
1797 
1798 typedef struct GX_CANVAS_STRUCT
1799 {
1800     /* Define the canvas ID and name. The canvas ID is used simply to see if the
1801        control block is valid.  */
1802     ULONG               gx_canvas_id;                            /* Control block ID                         */
1803     GX_CONST GX_CHAR   *gx_canvas_name;                          /* Pointer to canvas name                   */
1804 
1805     /* Define pointers to the next and previous canvases in the created list.  */
1806     struct GX_CANVAS_STRUCT *gx_canvas_created_next,
1807                             *gx_canvas_created_previous;
1808 
1809     /* Define the canvas memory pointer.  */
1810     GX_COLOR *gx_canvas_memory;
1811 
1812     /* padded canvas memory buffer, only needed for Win32 */
1813     #ifdef GX_TARGET_WIN32
1814     GX_COLOR *gx_canvas_padded_memory;
1815     #endif
1816 
1817     /* Define the size of the canvas memory.  */
1818     ULONG gx_canvas_memory_size;
1819 
1820     /* Which display driver is used to paint on this canvas.  */
1821     GX_DISPLAY *gx_canvas_display;
1822 
1823     /* Prior to drawing on a canvas, we must know what portion needs to be updated */
1824     GX_RECTANGLE  gx_canvas_dirty_area;
1825     GX_DIRTY_AREA gx_canvas_dirty_list[GX_MAX_DIRTY_AREAS];
1826     UINT          gx_canvas_dirty_count;
1827     UINT          gx_canvas_draw_count;
1828     UINT          gx_canvas_status;
1829 
1830     GX_VALUE      gx_canvas_x_resolution;
1831     GX_VALUE      gx_canvas_y_resolution;
1832     GX_VALUE      gx_canvas_display_offset_x;
1833     GX_VALUE      gx_canvas_display_offset_y;
1834 
1835     GX_UBYTE      gx_canvas_alpha;
1836     GX_UBYTE      gx_canvas_draw_nesting;
1837     GX_BYTE       gx_canvas_hardware_layer;
1838 
1839 } GX_CANVAS;
1840 
1841 /* Define Theme type */
1842 typedef struct GX_THEME_STRUCT
1843 {
1844     GX_COLOR               *theme_color_table;
1845     GX_FONT               **theme_font_table;
1846     GX_PIXELMAP           **theme_pixelmap_table;
1847     GX_COLOR               *theme_palette;
1848     GX_SCROLLBAR_APPEARANCE theme_vertical_scrollbar_appearance;
1849     GX_SCROLLBAR_APPEARANCE theme_horizontal_scrollbar_appearance;
1850     ULONG                   theme_vertical_scroll_style;
1851     ULONG                   theme_horizontal_scroll_style;
1852 
1853     USHORT                  theme_color_table_size;
1854     USHORT                  theme_font_table_size;
1855     USHORT                  theme_pixelmap_table_size;
1856     USHORT                  theme_palette_size;
1857 } GX_THEME;
1858 
1859 /* Define text input cursor control block */
1860 typedef struct GX_TEXT_INPUT_CURSOR_STRUCT
1861 {
1862     GX_VALUE gx_text_input_cursor_blink_interval;
1863 
1864     /* User defined cursor width and height */
1865     GX_VALUE gx_text_input_cursor_width;
1866     GX_VALUE gx_text_input_cursor_height;
1867     GX_UBYTE gx_text_input_cursor_flags;
1868 
1869     /* Cursor position information, managed by the cursor control code.*/
1870     GX_POINT gx_text_input_cursor_pos;
1871 } GX_TEXT_INPUT_CURSOR;
1872 
1873 /* Define pen configuration structure. */
1874 typedef struct GX_PEN_CONFIGURATION_STRUCT
1875 {
1876     GX_FIXED_VAL gx_pen_configuration_min_drag_dist;
1877     UINT         gx_pen_configuration_max_pen_speed_ticks;
1878 } GX_PEN_CONFIGURATION;
1879 
1880 
1881 #define GX_RESOURCE_HEADER_SIZE      20
1882 #define GX_THEME_HEADER_SIZE         114
1883 #define GX_COLOR_HEADER_SIZE         8
1884 #define GX_PALETTE_HEADER_SIZE       8
1885 #define GX_FONT_HEADER_SIZE          16
1886 #define GX_PAGE_HEADER_SIZE          21
1887 #define GX_GLYPH_HEADER_SIZE         22
1888 #define GX_KERNING_GLYPH_HEADER_SIZE 24
1889 #define GX_PIXELMAP_HEADER_SIZE      32
1890 #define GX_STRING_HEADER_SIZE        10
1891 #define GX_LANGUAGE_HEADER_SIZE      72
1892 #define GX_LANGUAGE_HEADER_NAME_SIZE 64
1893 
1894 /* Degine binary resource header type. */
1895 typedef struct GX_RESOURCE_HEADER_STRUCT{
1896     USHORT gx_resource_header_magic_number;
1897     USHORT gx_resource_header_version;
1898     USHORT gx_resource_header_theme_count;
1899     USHORT gx_resource_header_language_count;
1900     ULONG  gx_resource_header_theme_data_size;
1901     ULONG  gx_resource_header_string_data_size;
1902     ULONG  gx_resource_header_data_size;
1903 } GX_RESOURCE_HEADER;
1904 
1905 /* Define binary theme header type. */
1906 typedef struct GX_THEME_HEADER_STRUCT{
1907     USHORT                  gx_theme_header_magic_number;
1908     USHORT                  gx_theme_header_index;
1909     USHORT                  gx_theme_header_color_count;
1910     USHORT                  gx_theme_header_palette_count;
1911     USHORT                  gx_theme_header_font_count;
1912     USHORT                  gx_theme_header_pixelmap_count;
1913     GX_SCROLLBAR_APPEARANCE gx_theme_header_vscroll_appearance;
1914     GX_SCROLLBAR_APPEARANCE gx_theme_header_hscroll_appearance;
1915     ULONG                   gx_theme_header_vscroll_style;
1916     ULONG                   gx_theme_header_hscroll_style;
1917     ULONG                   gx_theme_header_color_data_size;
1918     ULONG                   gx_theme_header_palette_data_size;
1919     ULONG                   gx_theme_header_font_data_size;
1920     ULONG                   gx_theme_header_pixelmap_data_size;
1921     ULONG                   gx_theme_header_data_size;
1922 } GX_THEME_HEADER;
1923 
1924 /* Define binary color header type. */
1925 typedef struct GX_COLOR_HEADER_STRUCT{
1926     USHORT gx_color_header_magic_number;
1927     USHORT gx_color_header_color_count;
1928     ULONG  gx_color_header_data_size;
1929 }GX_COLOR_HEADER;
1930 
1931 /* Define binary palette header type.  */
1932 typedef struct GX_PALETTE_HEADER_STRUCT{
1933     USHORT gx_palette_header_magic_number;
1934     USHORT gx_palette_header_color_count;
1935     ULONG  gx_palette_header_data_size;
1936 }GX_PALETTE_HEADER;
1937 
1938 /* Define font header type. */
1939 typedef struct GX_FONT_HEADER_STRUCT{
1940     USHORT    gx_font_header_magic_number;
1941     USHORT    gx_font_header_index;
1942     USHORT    gx_font_header_page_count;
1943     GX_UBYTE  gx_font_header_deault;
1944     GX_UBYTE  gx_font_header_bits;
1945     ULONG     gx_font_header_data_size;
1946     ULONG     gx_font_header_data_offset;
1947 }GX_FONT_HEADER;
1948 
1949 /* Define font page header type. */
1950 typedef struct GX_PAGE_HEADER_STRUCT{
1951     USHORT        gx_page_header_magic_number;
1952     USHORT        gx_page_header_index;
1953     GX_UBYTE      gx_page_header_format;
1954     GX_UBYTE      gx_page_header_prespace;
1955     GX_UBYTE      gx_page_header_postspace;
1956     GX_UBYTE      gx_page_header_line_height;
1957     GX_UBYTE      gx_page_header_baseline;
1958     GX_CHAR_CODE  gx_page_header_first_glyph;
1959     GX_CHAR_CODE  gx_page_header_last_glyph;
1960     ULONG         gx_page_header_data_size;
1961 }GX_PAGE_HEADER;
1962 
1963 /* define glyph header type members. */
1964 #define GX_GLYPH_HEADER_MEMBERS_DECLARE                                              \
1965     USHORT    gx_glyph_header_magic_number;                                          \
1966     USHORT    gx_glyph_header_map_size;                                              \
1967     ULONG     gx_glyph_header_map_offset;                                            \
1968     USHORT    gx_glyph_header_index;                                                 \
1969     SHORT     gx_glyph_header_ascent;                                                \
1970     SHORT     gx_glyph_header_descent;                                               \
1971     GX_UBYTE  gx_glyph_header_advance;                                               \
1972     GX_BYTE   gx_glyph_header_leading;                                               \
1973     GX_UBYTE  gx_glyph_header_width;                                                 \
1974     GX_UBYTE  gx_glyph_header_height;
1975 
1976 /* Used for Guix after version 5.3.4(include). */
1977 typedef struct GX_GLYPH_HEADER_STRUCT {
1978     GX_GLYPH_HEADER_MEMBERS_DECLARE
1979     ULONG     gx_glyph_header_data_size;
1980     USHORT    gx_glyph_header_kerning_table_size;
1981 }GX_KERNING_GLYPH_HEADER;
1982 
1983 /* define glyph header type. */
1984 /* Used for Guix berfore Kerning. */
1985 typedef struct GX_GLYPH_HEADER_BEFORE_KERNING_STRUCT {
1986     GX_GLYPH_HEADER_MEMBERS_DECLARE
1987     ULONG     gx_glyph_header_data_size;
1988 }GX_GLYPH_HEADER;
1989 
1990 /* Define pixelmap header type. */
1991 typedef struct GX_PIXELMAP_HEADER_STRUCT{
1992     USHORT      gx_pixelmap_header_magic_number;
1993     USHORT      gx_pixelmap_header_index;
1994     GX_UBYTE    gx_pixelmap_header_version_major;
1995     GX_UBYTE    gx_pixelmap_header_version_minor;
1996     GX_UBYTE    gx_pixelmap_header_flags;
1997     GX_UBYTE    gx_pixelmap_header_format;
1998     ULONG       gx_pixelmap_header_map_size;
1999     ULONG       gx_pixelmap_header_aux_data_size;
2000     GX_COLOR    gx_pixelmap_header_transparent_color;
2001     USHORT      gx_pixelmap_header_width;
2002     USHORT      gx_pixelmap_header_height;
2003     ULONG       gx_pixelmap_header_data_size;
2004     ULONG       gx_pixelmap_header_data_offset;
2005 }GX_PIXELMAP_HEADER;
2006 
2007 /* Define string header type. */
2008 typedef struct GX_STRING_HEADER_STRUCT{
2009     USHORT gx_string_header_magic_number;
2010     USHORT gx_string_header_language_count;
2011     USHORT gx_string_header_string_count;
2012     ULONG  gx_string_header_data_size;
2013 }GX_STRING_HEADER;
2014 
2015 /* Define language header type. */
2016 typedef struct GX_LANGUAGE_HEADER_STRUCT{
2017     USHORT gx_language_header_magic_number;
2018     USHORT gx_language_header_index;
2019     UCHAR  gx_language_header_name[GX_LANGUAGE_HEADER_NAME_SIZE];
2020     ULONG  gx_language_header_data_size;
2021 }GX_LANGUAGE_HEADER;
2022 
2023 /* Define rich tet view fonts structure. */
2024 typedef struct GX_RICH_TEXT_FONTS_STRUCT{
2025     GX_RESOURCE_ID gx_rich_text_fonts_normal_id;
2026     GX_RESOURCE_ID gx_rich_text_fonts_bold_id;
2027     GX_RESOURCE_ID gx_rich_text_fonts_italic_id;
2028     GX_RESOURCE_ID gx_rich_text_fonts_bold_italic_id;
2029 }GX_RICH_TEXT_FONTS;
2030 
2031 /* Define rich text flags. */
2032 #define GX_RICH_TEXT_BOLD         0x01
2033 #define GX_RICH_TEXT_ITALIC       0x02
2034 #define GX_RICH_TEXT_UNDERLINE    0x04
2035 #define GX_RICH_TEXT_LEFT         0x00
2036 #define GX_RICH_TEXT_CENTER       0x10
2037 #define GX_RICH_TEXT_RIGHT        0x20
2038 #define GX_RICH_TEXT_ALIGN_MASK   0x30
2039 
2040 /* Define rich text view draw style structure. */
2041 typedef struct GX_RICH_TEXT_FORMAT_STRUCT
2042 {
2043     GX_RESOURCE_ID gx_rich_text_color;
2044     GX_RESOURCE_ID gx_rich_text_highlight_color;
2045     GX_RESOURCE_ID gx_rich_text_font_id;
2046     GX_UBYTE       gx_rich_text_flags;
2047 }GX_RICH_TEXT_FORMAT;
2048 
2049 /* Define rich text context structure. */
2050 typedef struct GX_RICH_TEXT_CONTEXT_STRUCT
2051 {
2052     GX_RICH_TEXT_FORMAT gx_rich_text_context_format;
2053     GX_CONST GX_STRING *gx_rich_text_context_tag;
2054 }GX_RICH_TEXT_CONTEXT;
2055 
2056 /* Define rich text context stack structure. */
2057 typedef struct GX_RICH_TEXT_CONTEXT_STACK_STRUCT
2058 {
2059     GX_RICH_TEXT_CONTEXT gx_rich_text_context_stack[GX_MAX_RICH_TEXT_CONTEXT_NESTING];
2060     GX_UBYTE             gx_rich_text_context_stack_top;
2061 } GX_RICH_TEXT_CONTEXT_STACK;
2062 
2063 /* Define macro for GX_WIDGET members.  */
2064 
2065 #if defined(GX_WIDGET_USER_DATA)
2066 #define GX_USER_DATA_FIELD INT gx_widget_user_data;
2067 #else
2068 #define GX_USER_DATA_FIELD
2069 #endif
2070 
2071 /* Define macro for GX_WIDGET and GX_RADIAL_PROGRESS_BAR members.  */
2072 #if defined(GX_BRUSH_ALPHA_SUPPORT)
2073 #define GX_WIDGET_ALPHA_FIELD GX_UBYTE gx_widget_alpha;
2074 #define GX_RADIAL_PROGRESS_BAR_CANVAS_FIELD GX_CANVAS gx_radial_progress_bar_canvas;
2075 #else
2076 #define GX_WIDGET_ALPHA_FIELD
2077 #define GX_RADIAL_PROGRESS_BAR_CANVAS_FIELD
2078 #endif
2079 
2080 #define GX_WIDGET_MEMBERS_DECLARE                                                                            \
2081     GX_CONST GX_CHAR        *gx_widget_name;                                                                 \
2082     struct GX_WIDGET_STRUCT *gx_widget_parent;                                                               \
2083     struct GX_WIDGET_STRUCT *gx_widget_first_child;                                                          \
2084     struct GX_WIDGET_STRUCT *gx_widget_last_child;                                                           \
2085     struct GX_WIDGET_STRUCT *gx_widget_next;                                                                 \
2086     struct GX_WIDGET_STRUCT *gx_widget_previous;                                                             \
2087     struct GX_WIDGET_STRUCT *gx_widget_nav_next;                                                             \
2088     struct GX_WIDGET_STRUCT *gx_widget_nav_previous;                                                         \
2089     GX_RECTANGLE             gx_widget_size;                                                                 \
2090     GX_RECTANGLE             gx_widget_clip;                                                                 \
2091     UINT                   (*gx_widget_event_process_function)(struct GX_WIDGET_STRUCT *, GX_EVENT *);       \
2092     VOID                   (*gx_widget_draw_function)(struct GX_WIDGET_STRUCT *);                            \
2093     ULONG                    gx_widget_status;                                                               \
2094     ULONG                    gx_widget_style;                                                                \
2095     GX_RESOURCE_ID           gx_widget_normal_fill_color;                                                    \
2096     GX_RESOURCE_ID           gx_widget_selected_fill_color;                                                  \
2097     GX_RESOURCE_ID           gx_widget_disabled_fill_color;                                                  \
2098     USHORT                   gx_widget_type;                                                                 \
2099     USHORT                   gx_widget_id;                                                                   \
2100     GX_USER_DATA_FIELD                                                                                       \
2101     GX_WIDGET_ALPHA_FIELD
2102 
2103 
2104 /* Define macro for GX_PROMPT, based on GX_WIDGET.  */
2105 
2106 #define GX_PROMPT_MEMBERS_DECLARE                                                           \
2107     GX_WIDGET_MEMBERS_DECLARE                                                               \
2108     GX_STRING         gx_prompt_string;                                                     \
2109     VOID            (*gx_prompt_text_get_function)(struct GX_PROMPT_STRUCT *, GX_STRING *); \
2110     GX_RESOURCE_ID    gx_prompt_text_id;                                                    \
2111     GX_RESOURCE_ID    gx_prompt_font_id;                                                    \
2112     GX_RESOURCE_ID    gx_prompt_normal_text_color;                                          \
2113     GX_RESOURCE_ID    gx_prompt_selected_text_color;                                        \
2114     GX_RESOURCE_ID    gx_prompt_disabled_text_color;                                        \
2115     GX_PROMPT_BIDI_RESOLVED_TEXT_INFO
2116 
2117 #define GX_NUMERIC_PROMPT_MEMBERS_DECLARE                                              \
2118     GX_PROMPT_MEMBERS_DECLARE                                                          \
2119     GX_CHAR gx_numeric_prompt_buffer[GX_NUMERIC_PROMPT_BUFFER_SIZE];                   \
2120     VOID(*gx_numeric_prompt_format_function)(struct GX_NUMERIC_PROMPT_STRUCT *, INT);
2121 
2122 /* Define macro for PIXELMAP_PROMPT, based on GX_PROMPT.   */
2123 
2124 #define GX_PIXELMAP_PROMPT_MEMBERS_DECLARE                  \
2125     GX_PROMPT_MEMBERS_DECLARE                               \
2126     GX_RESOURCE_ID gx_normal_left_pixelmap_id;              \
2127     GX_RESOURCE_ID gx_normal_right_pixelmap_id;             \
2128     GX_RESOURCE_ID gx_normal_fill_pixelmap_id;              \
2129     GX_RESOURCE_ID gx_selected_left_pixelmap_id;            \
2130     GX_RESOURCE_ID gx_selected_right_pixelmap_id;           \
2131     GX_RESOURCE_ID gx_selected_fill_pixelmap_id;
2132 
2133 /* Defube macro for NUMERIC_PIXEMAP_PROMPT, based on GX_PIXELMAP_PROMPT. */
2134 #define GX_NUMERIC_PIXELMAP_PROMPT_MEMBERS_DECLARE                            \
2135     GX_PIXELMAP_PROMPT_MEMBERS_DECLARE                                        \
2136     GX_CHAR gx_numeric_pixelmap_prompt_buffer[GX_NUMERIC_PROMPT_BUFFER_SIZE]; \
2137     VOID(*gx_numeric_pixelmap_prompt_format_function)(struct GX_NUMERIC_PIXELMAP_PROMPT_STRUCT *, INT);
2138 
2139 /* Define macro for GX_SINGLE_LINE_TEXT_INPUT, based on GX_PROMPT.  */
2140 
2141 #define GX_SINGLE_LINE_TEXT_INPUT_MEMBERS_DECLARE                       \
2142     GX_PROMPT_MEMBERS_DECLARE                                           \
2143     GX_CHAR             *gx_single_line_text_input_buffer;              \
2144     UINT                 gx_single_line_text_input_buffer_size;         \
2145     UINT                 gx_single_line_text_input_string_size;         \
2146     GX_VALUE             gx_single_line_text_input_xoffset;             \
2147     GX_VALUE             gx_single_line_text_input_yoffset;             \
2148     UINT                 gx_single_line_text_input_insert_pos;          \
2149     UINT                 gx_single_line_text_input_was_modified;        \
2150     GX_TEXT_INPUT_CURSOR gx_single_line_text_input_cursor_instance;     \
2151     GX_RESOURCE_ID       gx_single_line_text_input_readonly_text_color; \
2152     GX_RESOURCE_ID       gx_single_line_text_input_readonly_fill_color; \
2153     UINT                 gx_single_line_text_input_start_mark;          \
2154     UINT                 gx_single_line_text_input_end_mark;            \
2155 
2156 
2157 /* Define macro for GX_ICON, based on GX_WIDGET.  */
2158 
2159 #define GX_ICON_MEMBERS_DECLARE                  \
2160     GX_WIDGET_MEMBERS_DECLARE                    \
2161     GX_RESOURCE_ID gx_icon_normal_pixelmap;      \
2162     GX_RESOURCE_ID gx_icon_selected_pixelmap;
2163 
2164 /* Define macro for GX_SPRITE, based on GX_WIDGET. */
2165 
2166 #define GX_SPRITE_MEMBERS_DECLARE           \
2167     GX_WIDGET_MEMBERS_DECLARE               \
2168     GX_SPRITE_FRAME * gx_sprite_frame_list; \
2169     USHORT gx_sprite_frame_count;           \
2170     USHORT gx_sprite_current_frame;         \
2171     UCHAR  gx_sprite_run_state;
2172 
2173 
2174 /* Define macro for GX_BUTTON, based on GX_WIDGET.  */
2175 
2176 #define GX_BUTTON_MEMBERS_DECLARE                         \
2177     GX_WIDGET_MEMBERS_DECLARE                             \
2178     VOID (*gx_button_select_handler)(GX_WIDGET *button);  \
2179     VOID (*gx_button_deselect_handler)(GX_WIDGET *button, GX_BOOL gen_event);
2180 
2181 
2182 /* Define macro for GX_TEXT_BUTTON, based on GX_BUTTON.  */
2183 
2184 #define GX_TEXT_BUTTON_MEMBERS_DECLARE                     \
2185     GX_BUTTON_MEMBERS_DECLARE                              \
2186     GX_RESOURCE_ID     gx_text_button_text_id;             \
2187     GX_RESOURCE_ID     gx_text_button_font_id;             \
2188     GX_STRING          gx_text_button_string;              \
2189     GX_RESOURCE_ID     gx_text_button_normal_text_color;   \
2190     GX_RESOURCE_ID     gx_text_button_selected_text_color; \
2191     GX_RESOURCE_ID     gx_text_button_disabled_text_color; \
2192     GX_TEXT_BUTTON_BIDI_RESOLVED_TEXT_INFO
2193 
2194 /* Define macro for GX_MULTI_LINE_TEXT_BUTTON, based on GX_TEXT_BUTTON.  */
2195 
2196 #define GX_MULTI_LINE_TEXT_BUTTON_MEMBERS_DECLARE                                   \
2197     GX_TEXT_BUTTON_MEMBERS_DECLARE                                                  \
2198     INT      gx_multi_line_text_button_line_count;                                  \
2199     GX_STRING gx_multi_line_text_button_lines[GX_MULTI_LINE_TEXT_BUTTON_MAX_LINES];
2200 
2201 /* Define macro for GX_RADIO_BUTTON, based on GX_TEXT_BUTTON.  */
2202 
2203 #define GX_RADIO_BUTTON_MEMBERS_DECLARE                          \
2204     GX_TEXT_BUTTON_MEMBERS_DECLARE                               \
2205     GX_RESOURCE_ID gx_radio_button_off_pixelmap_id;              \
2206     GX_RESOURCE_ID gx_radio_button_on_pixelmap_id;               \
2207     GX_RESOURCE_ID gx_radio_button_off_disabled_pixelmap_id;     \
2208     GX_RESOURCE_ID gx_radio_button_on_disabled_pixelmap_id;
2209 
2210 
2211 /* Define macro for GX_CHECKBOX, based on GX_TEXT_BUTTON.  */
2212 
2213 #define GX_CHECKBOX_MEMBERS_DECLARE                                \
2214     GX_TEXT_BUTTON_MEMBERS_DECLARE                                 \
2215     GX_RESOURCE_ID gx_checkbox_unchecked_pixelmap_id;              \
2216     GX_RESOURCE_ID gx_checkbox_checked_pixelmap_id;                \
2217     GX_RESOURCE_ID gx_checkbox_unchecked_disabled_pixelmap_id;     \
2218     GX_RESOURCE_ID gx_checkbox_checked_disabled_pixelmap_id;
2219 
2220 /* Define macro for GX_ICON_BUTTON, based ON GX_BUTTON.  */
2221 
2222 #define GX_ICON_BUTTON_MEMBERS_DECLARE \
2223     GX_BUTTON_MEMBERS_DECLARE          \
2224     GX_RESOURCE_ID  gx_icon_button_icon_id;
2225 
2226 /* Define macro for GX_PIXELMAP_BUTTON, based ON GX_BUTTON.  */
2227 
2228 #define GX_PIXELMAP_BUTTON_MEMBERS_DECLARE         \
2229     GX_BUTTON_MEMBERS_DECLARE                      \
2230     GX_RESOURCE_ID gx_pixelmap_button_normal_id;   \
2231     GX_RESOURCE_ID gx_pixelmap_button_selected_id; \
2232     GX_RESOURCE_ID gx_pixelmap_button_disabled_id;
2233 
2234 
2235 /* Define macro for GX_WINDOW, based on GX_WIDGET.  */
2236 
2237 #define GX_WINDOW_MEMBERS_DECLARE                                                                                   \
2238     GX_WIDGET_MEMBERS_DECLARE                                                                                       \
2239     GX_RECTANGLE   gx_window_client;                                                                                \
2240     GX_VIEW       *gx_window_views;                                                                                 \
2241     VOID          (*gx_window_scroll_info_get)(struct GX_WINDOW_STRUCT *window, ULONG style, GX_SCROLL_INFO *info); \
2242     GX_BOOL        gx_window_move_mode;                                                                             \
2243     GX_POINT       gx_window_move_start;                                                                            \
2244     GX_RESOURCE_ID gx_window_wallpaper;
2245 
2246 /* Define macro for GX_WINDOW_ROOT, based on GX_WINDOW.   */
2247 
2248 #define GX_WINDOW_ROOT_MEMBERS_DECLARE                   \
2249     GX_WINDOW_MEMBERS_DECLARE                            \
2250     GX_CANVAS *gx_window_root_canvas;                    \
2251     GX_BOOL gx_window_root_views_changed;
2252 
2253 /* Define macro for GX_SCROLL_THUMB, based on GX_BUTTON.  */
2254 #define GX_SCROLL_THUMB_MEMBERS_DECLARE                       \
2255     GX_BUTTON_MEMBERS_DECLARE                                 \
2256     GX_RESOURCE_ID gx_scroll_thumb_pixelmap;                  \
2257     GX_RESOURCE_ID gx_scroll_thumb_border_color;              \
2258     GX_BOOL gx_scroll_thumb_drag_mode;                        \
2259     INT     gx_scroll_thumb_start_drag;
2260 
2261 
2262 /* Define macro for GX_SCROLLBAR, based on GX_WIDGET.  */
2263 
2264 #define GX_SCROLLBAR_MEMBERS_DECLARE                     \
2265     GX_WIDGET_MEMBERS_DECLARE                            \
2266     GX_SCROLLBAR_APPEARANCE     gx_scrollbar_appearance; \
2267     GX_SCROLL_INFO  gx_scrollbar_info;                   \
2268     GX_BUTTON       gx_scrollbar_upleft;                 \
2269     GX_BUTTON       gx_scrollbar_downright;              \
2270     GX_SCROLL_THUMB gx_scrollbar_thumb;
2271 
2272 
2273 /* Define macro for GX_SLIDER, based on GX_WIDGET.  */
2274 
2275 #define GX_SLIDER_MEMBERS_DECLARE               \
2276     GX_WIDGET_MEMBERS_DECLARE                   \
2277     GX_SLIDER_INFO gx_slider_info;              \
2278     INT            gx_slider_tick_count;        \
2279     GX_RESOURCE_ID gx_slider_tick_color;
2280 
2281 
2282 /* Define macro for GX_PIXELMAP_SLIDER, based on GX_WIDGET.  */
2283 #define GX_PIXELMAP_SLIDER_MEMBERS_DECLARE               \
2284     GX_SLIDER_MEMBERS_DECLARE                            \
2285     GX_PIXELMAP_SLIDER_INFO gx_pixelmap_slider_pixelmap_info;
2286 
2287 
2288 /* Define macro for GX_VERTICAL_LIST, based on GX_WINDOW.  */
2289 #define GX_VERTICAL_LIST_MEMBERS_DECLARE                                                                                      \
2290     GX_WINDOW_MEMBERS_DECLARE                                                                                                 \
2291     VOID    (*gx_vertical_list_callback)(struct GX_VERTICAL_LIST_STRUCT *, GX_WIDGET *widget, INT index);                     \
2292     INT      gx_vertical_list_selected;                                                                                       \
2293     INT      gx_vertical_list_pen_index;                                                                                      \
2294     INT      gx_vertical_list_top_index;                                                                                      \
2295     INT      gx_vertical_list_total_rows;                                                                                     \
2296     GX_VALUE gx_vertical_list_seperation;                                                                                     \
2297     GX_VALUE gx_vertical_list_visible_rows;                                                                                   \
2298     GX_VALUE gx_vertical_list_child_count;                                                                                    \
2299     GX_VALUE gx_vertical_list_child_height;                                                                                   \
2300     GX_VALUE gx_vertical_list_snap_back_distance;                                                                             \
2301     GX_WIDGET *gx_vertical_list_idle_child_list;
2302 
2303 /* Define macro for GX_VERTICAL_LIST, based on GX_WINDOW.  */
2304 #define GX_HORIZONTAL_LIST_MEMBERS_DECLARE                                                                                        \
2305     GX_WINDOW_MEMBERS_DECLARE                                                                                                     \
2306     VOID    (*gx_horizontal_list_callback)(struct GX_HORIZONTAL_LIST_STRUCT *, GX_WIDGET *widget, INT index);                     \
2307     INT      gx_horizontal_list_selected;                                                                                         \
2308     INT      gx_horizontal_list_pen_index;                                                                                        \
2309     INT      gx_horizontal_list_top_index;                                                                                        \
2310     INT      gx_horizontal_list_total_columns;                                                                                    \
2311     GX_VALUE gx_horizontal_list_seperation;                                                                                       \
2312     GX_VALUE gx_horizontal_list_visible_columns;                                                                                  \
2313     GX_VALUE gx_horizontal_list_child_count;                                                                                      \
2314     GX_VALUE gx_horizontal_list_child_width;                                                                                      \
2315     GX_VALUE gx_horizontal_list_snap_back_distance;                                                                               \
2316     GX_WIDGET *gx_horizontal_list_idle_child_list;
2317 
2318 #define GX_POPUP_LIST_MEMBERS_DECLARE           \
2319     GX_VERTICAL_LIST gx_popup_list_list;        \
2320     GX_WIDGET *gx_popup_list_owner;
2321 
2322 /* Define macro for GX_DROP_LIST, based on GX_WIDGET  */
2323 #define GX_DROP_LIST_MEMBERS_DECLARE                \
2324     GX_WIDGET_MEMBERS_DECLARE                       \
2325     GX_POPUP_LIST  gx_drop_list_popup;              \
2326     INT            gx_drop_list_open_height;        \
2327     GX_RESOURCE_ID gx_drop_list_pixelmap;           \
2328     GX_BOOL        gx_drop_list_popup_open;
2329 
2330 
2331 /* Define macro for GX_MULTI_LINE_TEXT_VIEW, based on GX_WINDOW.  */
2332 
2333 #define GX_MULTI_LINE_TEXT_VIEW_MEMBERS_DECLARE                  \
2334     GX_WINDOW_MEMBERS_DECLARE                                    \
2335     GX_RESOURCE_ID gx_multi_line_text_view_text_id;              \
2336     GX_RESOURCE_ID gx_multi_line_text_view_font_id;              \
2337     GX_RESOURCE_ID gx_multi_line_text_view_normal_text_color;    \
2338     GX_RESOURCE_ID gx_multi_line_text_view_selected_text_color;  \
2339     GX_RESOURCE_ID gx_multi_line_text_view_disabled_text_color;  \
2340     UINT           gx_multi_line_text_view_text_total_rows;      \
2341     UINT           gx_multi_line_text_view_text_visible_rows;    \
2342     INT            gx_multi_line_text_view_text_scroll_shift;    \
2343     GX_STRING      gx_multi_line_text_view_text;                 \
2344     GX_UBYTE       gx_multi_line_text_view_whitespace;           \
2345     GX_BYTE        gx_multi_line_text_view_line_space;           \
2346     GX_BOOL        gx_multi_line_text_view_line_index_old;       \
2347     GX_UBYTE       gx_multi_line_text_view_cache_size;           \
2348     UINT           gx_multi_line_text_view_first_cache_line;     \
2349     UINT           gx_multi_line_text_view_line_index[GX_MULTI_LINE_INDEX_CACHE_SIZE]; \
2350     GX_MULTI_LINE_TEXT_VIEW_BIDI_RESOLVED_TEXT_INFO
2351 
2352 /* Define macro for GX_RICH_TEXT_VIEW, based on GX_MULTI_LINE_TEXT_VIEW.  */
2353 
2354 #define GX_RICH_TEXT_VIEW_MEMBERS_DECLARE                        \
2355     GX_MULTI_LINE_TEXT_VIEW_MEMBERS_DECLARE                      \
2356     GX_RICH_TEXT_FONTS      gx_rich_text_view_fonts;             \
2357     ULONG                   gx_rich_text_view_text_total_height;
2358 
2359 /* GX_MULTI_LINE_TEXT_INPUT, based on GX_MULTI_LINE_TEXT_VIEW */
2360 #define GX_MULTI_LINE_TEXT_INPUT_MEMBERS_DECLARE                          \
2361     GX_MULTI_LINE_TEXT_VIEW_MEMBERS_DECLARE                               \
2362     UINT                 gx_multi_line_text_input_buffer_size;            \
2363     UINT                 gx_multi_line_text_input_text_insert_position;   \
2364     UINT                 gx_multi_line_text_input_text_was_modified;      \
2365     UINT                 gx_multi_line_text_input_text_cursor_line;       \
2366     GX_TEXT_INPUT_CURSOR gx_multi_line_text_input_cursor_instance;        \
2367     GX_RESOURCE_ID       gx_multi_line_text_input_readonly_text_color;    \
2368     GX_RESOURCE_ID       gx_multi_line_text_input_readonly_fill_color;    \
2369     UINT                 gx_multi_line_text_input_start_mark;             \
2370     UINT                 gx_multi_line_text_input_end_mark;               \
2371     GX_UBYTE             gx_multi_line_text_input_new_line_character[3];  \
2372     GX_UBYTE             gx_multi_line_text_input_new_line_character_size;
2373 
2374 /* Define macro for GX_PROGRESS_BAR, based on GX_WIDGET.  */
2375 #define GX_PROGRESS_BAR_MEMBERS_DECLARE \
2376     GX_WIDGET_MEMBERS_DECLARE           \
2377     GX_PROGRESS_BAR_INFO       gx_progress_bar_info;
2378 
2379 /* Define macro for GX_CIRCULAR_GAUGE members. */
2380 #define GX_CIRCULAR_GAUGE_MEMBERS_DECLARE                              \
2381     GX_ICON_MEMBERS_DECLARE                                            \
2382     GX_CIRCULAR_GAUGE_INFO gx_circular_gauge_info;                     \
2383     GX_PIXELMAP            gx_circular_gauge_needle_rotated;           \
2384     GX_PIXELMAP            *gx_circular_gauge_needle_source;           \
2385     INT                    gx_circular_gauge_current_needle_x;         \
2386     INT                    gx_circular_gauge_current_needle_y;         \
2387     INT                    gx_circular_gauge_start_angle;              \
2388     INT                    gx_circular_gauge_current_angle;            \
2389     INT                    gx_circular_gauge_target_angle;             \
2390     INT                    gx_circular_gauge_angle_increment;          \
2391     INT                    gx_circular_gauge_animation_step;           \
2392     GX_RECTANGLE           gx_circular_gauge_current_needle_rectangle;
2393 
2394 /* Define macro for GX_RADIAL_PROGRESS_BAR members. */
2395 #define GX_RADIAL_PROGRESS_BAR_MEMBERS_DECLARE                            \
2396     GX_WIDGET_MEMBERS_DECLARE                                             \
2397     GX_RADIAL_PROGRESS_BAR_INFO gx_radial_progress_bar_info;              \
2398     GX_RADIAL_PROGRESS_BAR_CANVAS_FIELD
2399 
2400 /* Define macro of GX_RADIAL_SLIDER members. */
2401 #define GX_RADIAL_SLIDER_MEMBERS_DECLARE                                \
2402     GX_WIDGET_MEMBERS_DECLARE                                           \
2403     GX_RADIAL_SLIDER_INFO       gx_radial_slider_info;                  \
2404     GX_VALUE                    gx_radial_slider_start_angle;           \
2405     GX_VALUE                    gx_radial_slider_target_angle;          \
2406     GX_POINT                    gx_radial_slider_pendown_point;         \
2407     USHORT                      gx_radial_slider_animation_total_steps; \
2408     USHORT                      gx_radial_slider_animation_step;        \
2409     USHORT                      gx_radial_slider_animation_delay;       \
2410     USHORT                      gx_radial_slider_animation_style;       \
2411     VOID                      (*gx_radial_slider_animation_update_callback)(struct GX_RADIAL_SLIDER_STRUCT *slider);
2412 
2413 /* Define macro for GX_LINE_CHART members. */
2414 #define GX_LINE_CHART_MEMBERS_DECLARE      \
2415     GX_WINDOW_MEMBERS_DECLARE              \
2416     GX_LINE_CHART_INFO gx_line_chart_info;
2417 
2418 /* Define macro for GX_SCROLL_WHEEL members */
2419 #define GX_SCROLL_WHEEL_MEMBERS_DECLARE                            \
2420     GX_WINDOW_MEMBERS_DECLARE                                      \
2421     UINT            (*gx_scroll_wheel_scroll)(struct GX_SCROLL_WHEEL_STRUCT *wheel, GX_VALUE amount); \
2422     GX_BOOL         (*gx_scroll_wheel_wrap_style_check)(struct GX_SCROLL_WHEEL_STRUCT *wheel); \
2423     INT               gx_scroll_wheel_selected_row;                \
2424     INT               gx_scroll_wheel_total_rows;                  \
2425     GX_RESOURCE_ID    gx_scroll_wheel_selected_background;         \
2426     GX_GRADIENT       gx_scroll_wheel_gradient;                    \
2427     GX_VALUE          gx_scroll_wheel_selected_yshift;             \
2428     GX_VALUE          gx_scroll_wheel_animation_speed;             \
2429     GX_VALUE          gx_scroll_wheel_animation_end_speed;         \
2430     GX_VALUE          gx_scroll_wheel_animation_steps;             \
2431     GX_VALUE          gx_scroll_wheel_animation_delay;             \
2432     GX_VALUE          gx_scroll_wheel_animation_max_steps;         \
2433     GX_FIXED_VAL      gx_scroll_wheel_animation_start_speed_rate;  \
2434     GX_FIXED_VAL      gx_scroll_wheel_animation_end_speed_rate;    \
2435     GX_VALUE          gx_scroll_wheel_row_height;                  \
2436     GX_VALUE          gx_scroll_wheel_shift_error;
2437 
2438 /* Define macro for GX_GENERIC_SCROLL_WHEEL members. */
2439 #define GX_GENERIC_SCROLL_WHEEL_MEMBERS_DECLARE                                                                      \
2440     GX_SCROLL_WHEEL_MEMBERS_DECLARE                                                                                  \
2441     VOID (*gx_generic_scroll_wheel_callback)(struct GX_GENERIC_SCROLL_WHEEL_STRUCT *, GX_WIDGET *widget, INT index); \
2442     INT    gx_generic_scroll_wheel_top_index;                                                                        \
2443     INT    gx_generic_scroll_wheel_child_count;                                                                      \
2444     INT    gx_generic_scroll_wheel_visible_rows;
2445 
2446 /* Define macro for GX_TEXT_SCROLL_WHEEL members. */
2447 #define GX_TEXT_SCROLL_WHEEL_MEMBERS_DECLARE                                                                   \
2448     GX_SCROLL_WHEEL_MEMBERS_DECLARE                                                                            \
2449     GX_RESOURCE_ID      gx_text_scroll_wheel_normal_font;                                                      \
2450     GX_RESOURCE_ID      gx_text_scroll_wheel_selected_font;                                                    \
2451     GX_RESOURCE_ID      gx_text_scroll_wheel_normal_text_color;                                                \
2452     GX_RESOURCE_ID      gx_text_scroll_wheel_selected_text_color;                                              \
2453     GX_RESOURCE_ID      gx_text_scroll_wheel_disabled_text_color;                                              \
2454     UINT              (*gx_text_scroll_wheel_text_get)(struct GX_TEXT_SCROLL_WHEEL_STRUCT *, INT, GX_STRING *);\
2455     GX_TEXT_SCROLL_WHEEL_TEXT_GET_DEPRECATED                                                                   \
2456     GX_TEXT_SCROLL_WHEEL_BIDI_RESOLVED_TEXT_INFO
2457 
2458 /* Define macro for GX_STRING_SCROLL_WHEEL members. */
2459 #define GX_STRING_SCROLL_WHEEL_MEMBERS_DECLARE                               \
2460     GX_TEXT_SCROLL_WHEEL_MEMBERS_DECLARE                                     \
2461     GX_CONST GX_STRING       *gx_string_scroll_wheel_string_list;            \
2462     USHORT                    gx_string_scroll_wheel_string_list_buffer_size;\
2463     GX_CONST GX_RESOURCE_ID  *gx_string_scroll_wheel_string_id_list;         \
2464     GX_STRING_SCROLL_WHEEL_STRING_LIST_DEPRECATED
2465 
2466 /* Define macro for GX_RANGE_SCROLL_WHEEL members. */
2467 #define GX_NUMERIC_SCROLL_WHEEL_MEMBERS_DECLARE               \
2468     GX_TEXT_SCROLL_WHEEL_MEMBERS_DECLARE                      \
2469     INT gx_numeric_scroll_wheel_start_val;                    \
2470     INT gx_numeric_scroll_wheel_end_val;                      \
2471     GX_CHAR gx_numeric_scroll_wheel_string_buffer[GX_NUMERIC_SCROLL_WHEEL_STRING_BUFFER_SIZE];
2472 
2473 #define GX_MENU_LIST_MEMBERS_DECLARE               \
2474     GX_WIDGET_MEMBERS_DECLARE                      \
2475     GX_WIDGET                 *gx_menu_list_owner;
2476 
2477 #define GX_MENU_MEMBERS_DECLARE                          \
2478     GX_PIXELMAP_PROMPT_MEMBERS_DECLARE                   \
2479     GX_MENU_LIST               gx_menu_list;             \
2480     GX_VALUE                   gx_menu_list_total_count; \
2481     GX_VALUE                   gx_menu_text_x_offset;    \
2482     GX_VALUE                   gx_menu_text_y_offset;
2483 
2484 #define GX_ACCORDION_MENU_MEMBERS_DECLARE          \
2485     GX_WIDGET_MEMBERS_DECLARE                      \
2486     GX_WIDGET *gx_accordion_menu_collapse_item;    \
2487     GX_WIDGET *gx_accordion_menu_expand_item;      \
2488     GX_UBYTE   gx_accordion_menu_animation_status;
2489 
2490 #define GX_TREE_VIEW_MEMBERS_DECLARE                  \
2491     GX_WINDOW_MEMBERS_DECLARE                         \
2492     GX_RESOURCE_ID gx_tree_view_collapse_pixelmap_id; \
2493     GX_RESOURCE_ID gx_tree_view_expand_pixelmap_id;   \
2494     GX_RESOURCE_ID gx_tree_view_root_line_color;      \
2495     GX_VALUE       gx_tree_view_indentation;          \
2496     GX_VALUE       gx_tree_view_x_shift;              \
2497     GX_VALUE       gx_tree_view_y_shift;              \
2498     GX_VALUE       gx_tree_view_tree_width;           \
2499     GX_VALUE       gx_tree_view_tree_height;          \
2500     GX_WIDGET     *gx_tree_view_selected;
2501 
2502 /* Define Widget type.  */
2503 
2504 typedef struct GX_WIDGET_STRUCT
2505 {
2506     GX_WIDGET_MEMBERS_DECLARE
2507 } GX_WIDGET;
2508 
2509 
2510 /* Define Prompt type.  */
2511 
2512 typedef struct GX_PROMPT_STRUCT
2513 {
2514     GX_PROMPT_MEMBERS_DECLARE
2515 } GX_PROMPT;
2516 
2517 /* Define Numeric Prompt type.  */
2518 
2519 typedef struct GX_NUMERIC_PROMPT_STRUCT
2520 {
2521     GX_NUMERIC_PROMPT_MEMBERS_DECLARE
2522 }GX_NUMERIC_PROMPT;
2523 
2524 /* Define Pixelmap type.  */
2525 
2526 typedef struct GX_PIXELMAP_PROMPT_STRUCT
2527 {
2528     GX_PIXELMAP_PROMPT_MEMBERS_DECLARE
2529 } GX_PIXELMAP_PROMPT;
2530 
2531 /* Define Numeric Pixelmap Prompt type.  */
2532 typedef struct GX_NUMERIC_PIXELMAP_PROMPT_STRUCT
2533 {
2534     GX_NUMERIC_PIXELMAP_PROMPT_MEMBERS_DECLARE
2535 }GX_NUMERIC_PIXELMAP_PROMPT;
2536 
2537 /* Define Icon type.  */
2538 
2539 typedef struct GX_ICON_STRUCT
2540 {
2541     GX_ICON_MEMBERS_DECLARE
2542 } GX_ICON;
2543 
2544 /* Define Sprite type. */
2545 
2546 typedef struct GX_SPRITE_STRUCT
2547 {
2548     GX_SPRITE_MEMBERS_DECLARE
2549 } GX_SPRITE;
2550 
2551 
2552 /* Define Button type.  */
2553 
2554 typedef struct GX_BUTTON_STRUCT
2555 {
2556     GX_BUTTON_MEMBERS_DECLARE
2557 } GX_BUTTON;
2558 
2559 
2560 /* Define Text Button type.  */
2561 
2562 typedef struct GX_TEXT_BUTTON_STRUCT
2563 {
2564     GX_TEXT_BUTTON_MEMBERS_DECLARE
2565 } GX_TEXT_BUTTON;
2566 
2567 
2568 /* Define Multi-line Text Button type.  */
2569 
2570 typedef struct GX_MULTI_LINE_TEXT_BUTTON_STRUCT
2571 {
2572     GX_MULTI_LINE_TEXT_BUTTON_MEMBERS_DECLARE
2573 } GX_MULTI_LINE_TEXT_BUTTON;
2574 
2575 
2576 /* Define Radio Button type.  */
2577 
2578 typedef struct GX_RADIO_BUTTON_STRUCT
2579 {
2580     GX_RADIO_BUTTON_MEMBERS_DECLARE
2581 } GX_RADIO_BUTTON;
2582 
2583 
2584 /* Define Checkbox type.  */
2585 
2586 typedef struct GX_CHECKBOX_STRUCT
2587 {
2588     GX_CHECKBOX_MEMBERS_DECLARE
2589 } GX_CHECKBOX;
2590 
2591 
2592 /* Defing Icon Button type.  */
2593 
2594 typedef struct GX_ICON_BUTTON_STRUCT
2595 {
2596     GX_ICON_BUTTON_MEMBERS_DECLARE
2597 } GX_ICON_BUTTON;
2598 
2599 
2600 /* Define Pixelmap Button type.  */
2601 
2602 typedef struct GX_PIXELMAP_BUTTON_STRUCT
2603 {
2604     GX_PIXELMAP_BUTTON_MEMBERS_DECLARE
2605 } GX_PIXELMAP_BUTTON;
2606 
2607 
2608 /* Define Scroll Thumb type.  */
2609 
2610 typedef struct GX_SCROLL_THUMB_STRUCT
2611 {
2612     GX_SCROLL_THUMB_MEMBERS_DECLARE
2613 } GX_SCROLL_THUMB;
2614 
2615 
2616 /* Define Scrollbar type.  */
2617 
2618 typedef struct GX_SCROLLBAR_STRUCT
2619 {
2620     GX_SCROLLBAR_MEMBERS_DECLARE
2621 } GX_SCROLLBAR;
2622 
2623 
2624 /* Define Slider type.  */
2625 
2626 typedef struct GX_SLIDER_STRUCT
2627 {
2628     GX_SLIDER_MEMBERS_DECLARE
2629 } GX_SLIDER;
2630 
2631 
2632 /* Define Pixelmap Slider type.  */
2633 
2634 typedef struct GX_PIXELMAP_SLIDER_STRUCT
2635 {
2636     GX_PIXELMAP_SLIDER_MEMBERS_DECLARE
2637 } GX_PIXELMAP_SLIDER;
2638 
2639 
2640 /* Define Window type.  */
2641 
2642 typedef struct GX_WINDOW_STRUCT
2643 {
2644     GX_WINDOW_MEMBERS_DECLARE
2645 } GX_WINDOW;
2646 
2647 /* Define Root Window type.  */
2648 
2649 typedef struct GX_WINDOW_ROOT_STRUCT
2650 {
2651     GX_WINDOW_ROOT_MEMBERS_DECLARE
2652 } GX_WINDOW_ROOT;
2653 
2654 /*Define Single Line Text Input type.  */
2655 
2656 typedef struct GX_SINGLE_LINE_TEXT_INPUT_STRUCT
2657 {
2658     GX_SINGLE_LINE_TEXT_INPUT_MEMBERS_DECLARE
2659 } GX_SINGLE_LINE_TEXT_INPUT;
2660 
2661 
2662 /* Define Multi Line Text View type.  */
2663 
2664 typedef struct GX_MULTI_LINE_TEXT_VIEW_STRUCT
2665 {
2666     GX_MULTI_LINE_TEXT_VIEW_MEMBERS_DECLARE
2667 } GX_MULTI_LINE_TEXT_VIEW;
2668 
2669 /* Define Rich Text View type.  */
2670 
2671 typedef struct GX_RICH_TEXT_VIEW_STRUCT
2672 {
2673     GX_RICH_TEXT_VIEW_MEMBERS_DECLARE
2674 } GX_RICH_TEXT_VIEW;
2675 
2676 /*Define GX_MULTI_LINE_TEXT_INFO type. */
2677 typedef struct GX_MULTI_LINE_TEXT_INFO_STRUCT
2678 {
2679     USHORT   gx_text_display_width;
2680     USHORT   gx_text_display_number;
2681 } GX_MULTI_LINE_TEXT_INFO;
2682 
2683 typedef struct GX_RICH_TEXT_INOT_STRUCT
2684 {
2685     GX_COLOR gx_rich_text_info_foreground_color;
2686     GX_COLOR gx_rich_text_info_background_color;
2687     USHORT   gx_rich_text_info_style;
2688     ULONG    gx_rich_text_info_start_index;
2689     ULONG    gx_rich_text_info_end_index;
2690 }GX_RICH_TEXT_INFO;
2691 
2692 /*Define GX_MULTI_TEXT_INPUT type. */
2693 
2694 typedef struct GX_MULTI_LINE_TEXT_INPUT_STRUCT
2695 {
2696     GX_MULTI_LINE_TEXT_INPUT_MEMBERS_DECLARE
2697 } GX_MULTI_LINE_TEXT_INPUT;
2698 
2699 typedef struct GX_VERTICAL_LIST_STRUCT
2700 {
2701     GX_VERTICAL_LIST_MEMBERS_DECLARE
2702 } GX_VERTICAL_LIST;
2703 
2704 typedef struct GX_HORIZONTAL_LIST_STRUCT
2705 {
2706     GX_HORIZONTAL_LIST_MEMBERS_DECLARE
2707 } GX_HORIZONTAL_LIST;
2708 
2709 typedef struct GX_POPUP_LIST_STRUCT
2710 {
2711     GX_POPUP_LIST_MEMBERS_DECLARE
2712 } GX_POPUP_LIST;
2713 
2714 typedef struct GX_DROP_LIST_STRUCT
2715 {
2716     GX_DROP_LIST_MEMBERS_DECLARE
2717 } GX_DROP_LIST;
2718 
2719 /* Define GX_PROGRESS_BAR type.  */
2720 
2721 typedef struct GX_PROGRESS_BAR_STRUCT
2722 {
2723     GX_PROGRESS_BAR_MEMBERS_DECLARE
2724 } GX_PROGRESS_BAR;
2725 
2726 /* Circular gauge control block */
2727 typedef struct GX_CIRCULAR_GAUGE_STRUCT
2728 {
2729     GX_CIRCULAR_GAUGE_MEMBERS_DECLARE
2730 } GX_CIRCULAR_GAUGE;
2731 
2732 /* Define Radial Progress Bar type */
2733 typedef struct GX_RADIAL_PROGRESS_BAR_STRUCT
2734 {
2735     GX_RADIAL_PROGRESS_BAR_MEMBERS_DECLARE
2736 } GX_RADIAL_PROGRESS_BAR;
2737 
2738 /* Define Radial Slider type. */
2739 typedef struct GX_RADIAL_SLIDER_STRUCT
2740 {
2741     GX_RADIAL_SLIDER_MEMBERS_DECLARE
2742 } GX_RADIAL_SLIDER;
2743 
2744 /* Define GX_LINE_CHART control block type */
2745 typedef struct GX_LINE_CHART_STRUCT
2746 {
2747     GX_LINE_CHART_MEMBERS_DECLARE
2748 } GX_LINE_CHART;
2749 
2750 /* Define GX_SCROLL_WHEEL control block type */
2751 typedef struct GX_SCROLL_WHEEL_STRUCT
2752 {
2753     GX_SCROLL_WHEEL_MEMBERS_DECLARE
2754 } GX_SCROLL_WHEEL;
2755 
2756 /* Define GX_GENERIC_SCROLL_WHEEL control block type. */
2757 typedef struct GX_GENERIC_SCROLL_WHEEL_STRUCT
2758 {
2759     GX_GENERIC_SCROLL_WHEEL_MEMBERS_DECLARE
2760 } GX_GENERIC_SCROLL_WHEEL;
2761 
2762 /* Define GX_TEXT_SCROLL_WHEEL_BASE control block type */
2763 typedef struct GX_TEXT_SCROLL_WHEEL_STRUCT
2764 {
2765     GX_TEXT_SCROLL_WHEEL_MEMBERS_DECLARE
2766 } GX_TEXT_SCROLL_WHEEL;
2767 
2768 /* Define GX_STRING_SCROLL_WHEEL control block type */
2769 typedef struct GX_STRING_SCROLL_WHEEL_STRUCT
2770 {
2771     GX_STRING_SCROLL_WHEEL_MEMBERS_DECLARE
2772 } GX_STRING_SCROLL_WHEEL;
2773 
2774 /* Define GX_NUMERIC_SCROLL_WHEEL control block type */
2775 typedef struct GX_NUMERIC_SCROLL_WHEEL_STRUCT
2776 {
2777     GX_NUMERIC_SCROLL_WHEEL_MEMBERS_DECLARE
2778 } GX_NUMERIC_SCROLL_WHEEL;
2779 
2780 
2781 typedef struct GX_MENU_LIST_STRUCT
2782 {
2783     GX_MENU_LIST_MEMBERS_DECLARE
2784 }GX_MENU_LIST;
2785 
2786 typedef struct GX_MENU_STRUCT
2787 {
2788     GX_MENU_MEMBERS_DECLARE
2789 }GX_MENU;
2790 
2791 typedef struct GX_ACCORDION_MENU_STRUCT
2792 {
2793     GX_ACCORDION_MENU_MEMBERS_DECLARE
2794 }GX_ACCORDION_MENU;
2795 
2796 typedef struct GX_TREE_VIEW_STRUCT
2797 {
2798     GX_TREE_VIEW_MEMBERS_DECLARE
2799 }GX_TREE_VIEW;
2800 
2801 /* Animation information structure. This structure is used to define the
2802    parameters of a screen transition animation.  */
2803 
2804 typedef struct GX_ANIMATION_INFO_STRUCT
2805 {
2806     GX_WIDGET  *gx_animation_target;
2807     GX_WIDGET  *gx_animation_parent;
2808     GX_WIDGET **gx_animation_slide_screen_list;
2809     USHORT      gx_animation_style;
2810     USHORT      gx_animation_id;
2811     USHORT      gx_animation_start_delay;
2812     USHORT      gx_animation_frame_interval;
2813     GX_POINT    gx_animation_start_position;
2814     GX_POINT    gx_animation_end_position;
2815     GX_UBYTE    gx_animation_start_alpha;
2816     GX_UBYTE    gx_animation_end_alpha;
2817     GX_UBYTE    gx_animation_steps;
2818 } GX_ANIMATION_INFO;
2819 
2820 /* Animation control block */
2821 typedef struct GX_ANIMATION_STRUCT
2822 {
2823     GX_ANIMATION_INFO           gx_animation_info;
2824     GX_CANVAS                  *gx_animation_canvas;
2825     struct GX_ANIMATION_STRUCT *gx_animation_next;
2826     UINT                      (*gx_animation_original_event_process_function)(struct GX_WIDGET_STRUCT *, GX_EVENT *);
2827 
2828     GX_VALUE                    gx_animation_slide_target_index_1;
2829     GX_VALUE                    gx_animation_slide_target_index_2;
2830     GX_VALUE                    gx_animation_slide_tracking_start_pos;
2831     GX_VALUE                    gx_animation_slide_tracking_current_pos;
2832     USHORT                      gx_animation_landing_speed;
2833     USHORT                      gx_animation_timer;
2834     USHORT                      gx_animation_slide_screen_list_size;
2835     GX_UBYTE                    gx_animation_status;
2836     GX_UBYTE                    gx_animation_slide_direction;
2837     GX_UBYTE                    gx_animation_system_allocated;
2838     GX_UBYTE                    gx_animation_total_steps;
2839 } GX_ANIMATION;
2840 
2841 typedef struct GX_PIXEL_STRUCT
2842 {
2843     GX_UBYTE                   gx_pixel_red;
2844     GX_UBYTE                   gx_pixel_green;
2845     GX_UBYTE                   gx_pixel_blue;
2846     GX_UBYTE                   gx_pixel_alpha;
2847 } GX_PIXEL;
2848 
2849 /* Image reader control block */
2850 typedef struct GX_IMAGE_READER_STRUCT
2851 {
2852     UINT              (*gx_image_reader_pixel_write)(struct GX_IMAGE_READER_STRUCT *image_reader, GX_PIXEL *pixel);
2853     UINT              (*gx_image_reader_pixel_read)(struct GX_IMAGE_READER_STRUCT *image_reader, INT index, GX_PIXEL *pixel);
2854     GX_CONST GX_UBYTE  *gx_image_reader_source_data;
2855     UINT                gx_image_reader_source_data_size;
2856     GX_UBYTE           *gx_image_reader_getdata;
2857     GX_UBYTE           *gx_image_reader_getauxdata;
2858     GX_UBYTE           *gx_image_reader_putdata;
2859     GX_UBYTE           *gx_image_reader_putauxdata;
2860     GX_UBYTE           *gx_image_reader_putdatarow;
2861     GX_UBYTE           *gx_image_reader_putauxdatarow;
2862     GX_UBYTE            gx_image_reader_color_format;
2863     GX_UBYTE            gx_image_reader_mode;
2864     GX_UBYTE            gx_image_reader_image_type;
2865     GX_UBYTE            gx_image_reader_putdata_mask;
2866     GX_UBYTE            gx_image_reader_putauxdata_mask;
2867     GX_UBYTE            gx_image_reader_mono_shreshold;
2868     GX_COLOR           *gx_image_reader_palette;
2869     UINT                gx_image_reader_palette_size;
2870     UINT                gx_image_reader_input_stride;
2871     GX_BYTE             gx_image_reader_putdatarow_stride;
2872     GX_BYTE             gx_image_reader_putauxdatarow_stride;
2873     GX_BOOL             gx_image_reader_size_testing;
2874     GX_COLOR           *gx_image_reader_png_trans;
2875     GX_COLOR           *gx_image_reader_png_palette;
2876     UINT                gx_image_reader_png_palette_size;
2877     UINT                gx_image_reader_image_width;
2878     UINT                gx_image_reader_image_height;
2879 } GX_IMAGE_READER;
2880 
2881 #define GX_IMAGE_READER_MODE_NONE       0x00
2882 #define GX_IMAGE_READER_MODE_COMPRESS   0x01
2883 #define GX_IMAGE_READER_MODE_ALPHA      0x02
2884 #define GX_IMAGE_READER_MODE_DITHER     0x04
2885 #define GX_IMAGE_READER_MODE_ROTATE_CW  0x10
2886 #define GX_IMAGE_READER_MODE_ROTATE_CCW 0x20
2887 
2888 /* Define Screen stack control block */
2889 typedef struct GX_SCREEN_STACK_CONTROL_STRUCT
2890 {
2891     GX_WIDGET  **gx_screen_stack_control_memory;
2892     INT          gx_screen_stack_control_top;
2893     INT          gx_screen_stack_control_max;
2894 } GX_SCREEN_STACK_CONTROL;
2895 
2896 /* define resistive touch screen calibration params */
2897 typedef struct TOUCH_CAL_MATRIX_STRUCT {
2898     INT  An;     /* A = An/Divider */
2899     INT  Bn;     /* B = Bn/Divider */
2900     INT  Cn;     /* C = Cn/Divider */
2901     INT  Dn;     /* D = Dn/Divider */
2902     INT  En;     /* E = En/Divider */
2903     INT  Fn;     /* F = Fn/Divider */
2904     INT  Divider ;
2905 } TOUCH_CALIBRATION_MATRIX;
2906 
2907 /* touch driver info specified by application. This information is required
2908    to run the touch screen calibration */
2909 typedef struct GX_RESISTIVE_TOUCH_INFO_STRUCT {
2910     GX_RESOURCE_ID  gx_touch_info_string_id_no_touch;
2911     GX_RESOURCE_ID  gx_touch_info_string_id_touch_1;
2912     GX_RESOURCE_ID  gx_touch_info_string_id_touch_2;
2913     GX_RESOURCE_ID  gx_touch_info_string_id_touch_3;
2914     GX_MULTI_LINE_TEXT_VIEW *gx_touch_info_text;
2915     GX_ICON         *gx_touch_info_target;
2916 } GX_RESISTIVE_TOUCH_INFO;
2917 
2918 /* touch driver control block */
2919 typedef struct GX_RESISTIVE_TOUCH_STRUCT {
2920     GX_RESISTIVE_TOUCH_INFO   gx_resistive_touch_info;
2921     GX_BOOL                   gx_resistive_touch_calibrated;
2922     USHORT                    gx_resistive_touch_min_drag_delta;
2923     USHORT                    gx_resistive_touch_sample_size;
2924     USHORT                    gx_resistive_touch_max_retries;
2925     USHORT                    gx_resistive_touch_stability_limit;
2926     USHORT                    gx_resistive_touch_x_range;
2927     USHORT                    gx_resistive_touch_y_range;
2928     USHORT                    gx_resistive_touch_current_touch_state;
2929     USHORT                    gx_resistive_touch_last_touch_state;
2930     GX_POINT                 *gx_resistive_touch_sample_ram;
2931     GX_POINT                  gx_resistive_touch_current_touch_coord;
2932     GX_POINT                  gx_resistive_touch_last_touch_coord;
2933     GX_BOOL                 (*gx_resistive_touch_pen_down_detect)(VOID);
2934     USHORT                  (*gx_resistive_touch_sample_read)(GX_VALUE axis);
2935     TOUCH_CALIBRATION_MATRIX  gx_resistive_touch_calibration_matrix;
2936 } GX_RESISTIVE_TOUCH;
2937 
2938 /* pen down or up status, returned to generic driver */
2939 #define GX_TOUCH_STATE_TOUCHED  1
2940 #define GX_TOUCH_STATE_RELEASED 2
2941 #define GX_TOUCH_X_AXIS         1
2942 #define GX_TOUCH_Y_AXIS         2
2943 
2944 /* GUIX fixed point math helpers */
2945 
2946 typedef struct GX_FIXED_POINT_STRUCT
2947 {
2948     GX_FIXED_VAL x;
2949     GX_FIXED_VAL y;
2950 } GX_FIXED_POINT;
2951 
2952 #define GX_FIXED_VAL_SHIFT         10
2953 #define GX_FIXED_VAL_HALF          512
2954 #define GX_FIXED_VAL_ONE           1024
2955 #define GX_FIXED_VAL_FRACTION_MASK 0x3ff
2956 
2957 #define GX_FIXED_VAL_MAKE(_a)      (((int)_a) << GX_FIXED_VAL_SHIFT)
2958 #define GX_FIXED_VAL_TO_INT(_a)    ((int)(((int)_a) >> GX_FIXED_VAL_SHIFT))
2959 #define GX_FIXED_VAL_MUL(_a, _b)   ((((int)_a) * (_b)) >> GX_FIXED_VAL_SHIFT)
2960 #define GX_FIXED_VAL_DIV(_a, _b)   ((((int)_a) << GX_FIXED_VAL_SHIFT) / ((int)_b))
2961 #define GX_FIXED_VAL_RND(_a)       (GX_VALUE)((((GX_FIXED_VAL)_a) + GX_FIXED_VAL_HALF) >> GX_FIXED_VAL_SHIFT)
2962 #define GX_FIXED_VAL_RND_UP(_a)    ((((GX_FIXED_VAL)_a) + GX_FIXED_VAL_ONE - 1) >> GX_FIXED_VAL_SHIFT)
2963 #define GX_FIXED_VAL_ADD_ONE(_a)   (((int)_a) + GX_FIXED_VAL_ONE)
2964 #define GX_FIXED_VAL_SUB_ONE(_a)   (((int)_a) - GX_FIXED_VAL_ONE)
2965 
2966 /* Define the system API mappings based on the error checking
2967    selected by the user.  Note: this section is only applicable to
2968    application source code, hence the conditional that turns off this
2969    stuff when the include file is processed by the GUIX source. */
2970 
2971 #ifndef GX_SOURCE_CODE
2972 
2973 
2974 /* Determine if error checking is desired.  If so, map API functions
2975    to the appropriate error checking front-ends.  Otherwise, map API
2976    functions to the core functions that actually perform the work.
2977    Note: error checking is enabled by default.  */
2978 
2979 #ifdef GX_DISABLE_ERROR_CHECKING
2980 
2981 
2982 /* Services without error checking.  */
2983 
2984 #define gx_accordion_menu_create(a, b, c, d, e, f)               _gx_accordion_menu_create(a, b, c, d, e, f)
2985 #define gx_accordion_menu_draw                                   _gx_accordion_menu_draw
2986 #define gx_accordion_menu_event_process                          _gx_accordion_menu_event_process
2987 #define gx_accordion_menu_position(a)                            _gx_accordion_menu_position(a)
2988 
2989 #define gx_animation_canvas_define                               _gx_animation_canvas_define
2990 #define gx_animation_create                                      _gx_animation_create
2991 #define gx_animation_delete                                      _gx_animation_delete
2992 #define gx_animation_drag_disable                                _gx_animation_drag_disable
2993 #define gx_animation_drag_enable                                 _gx_animation_drag_enable
2994 #define gx_animation_landing_speed_set                           _gx_animation_landing_speed_set
2995 #define gx_animation_start                                       _gx_animation_start
2996 #define gx_animation_stop                                        _gx_animation_stop
2997 
2998 #define gx_binres_language_count_get                             _gx_binres_language_count_get
2999 #define gx_binres_language_info_load                             _gx_binres_language_info_load
3000 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3001 #define gx_binres_language_table_load                            _gx_binres_language_table_load
3002 #endif
3003 #define gx_binres_language_table_load_ext                        _gx_binres_language_table_load_ext
3004 #define gx_binres_theme_load                                     _gx_binres_theme_load
3005 
3006 #define gx_brush_default                                         _gx_brush_default
3007 #define gx_brush_define                                          _gx_brush_define
3008 
3009 #define gx_button_background_draw                                _gx_button_background_draw
3010 #define gx_button_create(a, b, c, d, e, f)                       _gx_button_create(a, b, (GX_WIDGET *)c, d, e, f)
3011 #define gx_button_deselect                                       _gx_button_deselect
3012 #define gx_button_draw                                           _gx_button_draw
3013 #define gx_button_event_process                                  _gx_button_event_process
3014 #define gx_button_select                                         _gx_button_select
3015 
3016 #define gx_canvas_alpha_set                                      _gx_canvas_alpha_set
3017 #define gx_canvas_arc_draw                                       _gx_canvas_arc_draw
3018 #define gx_canvas_block_move(a, b, c, d)                         _gx_canvas_block_move(a, b, c, d)
3019 #define gx_canvas_circle_draw                                    _gx_canvas_circle_draw
3020 #define gx_canvas_create                                         _gx_canvas_create
3021 #define gx_canvas_delete                                         _gx_canvas_delete
3022 #define gx_canvas_drawing_complete                               _gx_canvas_drawing_complete
3023 #define gx_canvas_drawing_initiate(a, b, c)                      _gx_canvas_drawing_initiate(a, (GX_WIDGET *)b, c)
3024 #define gx_canvas_ellipse_draw                                   _gx_canvas_ellipse_draw
3025 #define gx_canvas_hardware_layer_bind                            _gx_canvas_hardware_layer_bind
3026 #define gx_canvas_hide                                           _gx_canvas_hide
3027 #define gx_canvas_line_draw                                      _gx_canvas_line_draw
3028 #define gx_canvas_memory_define                                  _gx_canvas_memory_define
3029 
3030 #if defined (GX_MOUSE_SUPPORT)
3031 #define gx_canvas_mouse_define                                   _gx_canvas_mouse_define
3032 #define gx_canvas_mouse_hide                                     _gx_canvas_mouse_hide
3033 #define gx_canvas_mouse_show                                     _gx_canvas_mouse_show
3034 #endif
3035 #define gx_canvas_offset_set                                     _gx_canvas_offset_set
3036 #define gx_canvas_pixel_draw                                     _gx_canvas_pixel_draw
3037 #define gx_canvas_pixelmap_blend                                 _gx_canvas_pixelmap_blend
3038 #define gx_canvas_pixelmap_draw                                  _gx_canvas_pixelmap_draw
3039 #define gx_canvas_pixelmap_get                                   _gx_canvas_pixelmap_get
3040 #define gx_canvas_pixelmap_rotate                                _gx_canvas_pixelmap_rotate
3041 #define gx_canvas_pixelmap_tile                                  _gx_canvas_pixelmap_tile
3042 #define gx_canvas_polygon_draw                                   _gx_canvas_polygon_draw
3043 #define gx_canvas_pie_draw                                       _gx_canvas_pie_draw
3044 #define gx_canvas_rectangle_draw                                 _gx_canvas_rectangle_draw
3045 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3046 #define gx_canvas_rotated_text_draw                              _gx_canvas_rotated_text_draw
3047 #endif
3048 #define gx_canvas_rotated_text_draw_ext                          _gx_canvas_rotated_text_draw_ext
3049 #define gx_canvas_shift                                          _gx_canvas_shift
3050 #define gx_canvas_show                                           _gx_canvas_show
3051 #define gx_canvas_aligned_text_draw                              _gx_canvas_aligned_text_draw
3052 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3053 #define gx_canvas_text_draw                                      _gx_canvas_text_draw
3054 #endif
3055 #define gx_canvas_text_draw_ext                                  _gx_canvas_text_draw_ext
3056 
3057 #define gx_checkbox_create(a, b, c, d, e, f, g)                  _gx_checkbox_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3058 #define gx_checkbox_draw                                         _gx_checkbox_draw
3059 #define gx_checkbox_event_process                                _gx_checkbox_event_process
3060 #define gx_checkbox_pixelmap_set                                 _gx_checkbox_pixelmap_set
3061 #define gx_checkbox_select                                       _gx_checkbox_select
3062 
3063 #define gx_circular_gauge_angle_get                              _gx_circular_gauge_angle_get
3064 #define gx_circular_gauge_angle_set                              _gx_circular_gauge_angle_set
3065 #define gx_circular_gauge_animation_set                          _gx_circular_gauge_animation_set
3066 #define gx_circular_gauge_background_draw                        _gx_circular_gauge_background_draw
3067 #define gx_circular_gauge_create(a, b, c, d, e, f, g, h, i)      _gx_circular_gauge_create((GX_CIRCULAR_GAUGE *) a, b, c, d, e, f, g, h, i)
3068 #define gx_circular_gauge_draw                                   _gx_circular_gauge_draw
3069 #define gx_circular_gauge_event_process                          _gx_circular_gauge_event_process
3070 
3071 #define gx_context_brush_default                                 _gx_context_brush_default
3072 #define gx_context_brush_define                                  _gx_context_brush_define
3073 #define gx_context_brush_get                                     _gx_context_brush_get
3074 #define gx_context_brush_pattern_set                             _gx_context_brush_pattern_set
3075 #define gx_context_brush_set                                     _gx_context_brush_set
3076 #define gx_context_brush_style_set                               _gx_context_brush_style_set
3077 #define gx_context_brush_width_set                               _gx_context_brush_width_set
3078 #define gx_context_color_get                                     _gx_context_color_get
3079 #define gx_context_fill_color_set                                _gx_context_fill_color_set
3080 #define gx_context_font_get                                      _gx_context_font_get
3081 #define gx_context_font_set                                      _gx_context_font_set
3082 #define gx_context_line_color_set                                _gx_context_line_color_set
3083 #define gx_context_pixelmap_get                                  _gx_context_pixelmap_get
3084 #define gx_context_pixelmap_set                                  _gx_context_pixelmap_set
3085 #define gx_context_raw_brush_define                              _gx_context_raw_brush_define
3086 #define gx_context_raw_fill_color_set                            _gx_context_raw_fill_color_set
3087 #define gx_context_raw_line_color_set                            _gx_context_raw_line_color_set
3088 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3089 #define gx_context_string_get                                    _gx_context_string_get
3090 #endif
3091 #define gx_context_string_get_ext                                _gx_context_string_get_ext
3092 
3093 #define gx_display_active_language_set                           _gx_display_active_language_set
3094 #define gx_display_color_set                                     _gx_display_color_set
3095 #define gx_display_color_table_set                               _gx_display_color_table_set
3096 #define gx_display_create                                        _gx_display_create
3097 #define gx_display_delete                                        _gx_display_delete
3098 #define gx_display_font_table_set                                _gx_display_font_table_set
3099 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3100 #define gx_display_language_table_get                            _gx_display_language_table_get
3101 #define gx_display_language_table_set                            _gx_display_language_table_set
3102 #endif
3103 #define gx_display_language_table_get_ext                        _gx_display_language_table_get_ext
3104 #define gx_display_language_table_set_ext                        _gx_display_language_table_set_ext
3105 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
3106 #define gx_display_language_direction_table_set                  _gx_display_language_direction_table_set
3107 #endif
3108 #define gx_display_pixelmap_table_set                            _gx_display_pixelmap_table_set
3109 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3110 #define gx_display_string_get                                    _gx_display_string_get
3111 #define gx_display_string_table_get                              _gx_display_string_table_get
3112 #endif
3113 #define gx_display_string_get_ext                                _gx_display_string_get_ext
3114 #define gx_display_string_table_get_ext                          _gx_display_string_table_get_ext
3115 #define gx_display_theme_install                                 _gx_display_theme_install
3116 
3117 #define gx_drop_list_close                                       _gx_drop_list_close
3118 #define gx_drop_list_create(a, b, c, d, e, f, g, h, i)           _gx_drop_list_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, i)
3119 #define gx_drop_list_event_process                               _gx_drop_list_event_process
3120 #define gx_drop_list_open                                        _gx_drop_list_open
3121 #define gx_drop_list_pixelmap_set                                _gx_drop_list_pixelmap_set
3122 #define gx_drop_list_popup_get                                   _gx_drop_list_popup_get
3123 
3124 #define gx_generic_scroll_wheel_children_position                _gx_generic_scroll_wheel_children_position
3125 #define gx_generic_scroll_wheel_create                           _gx_generic_scroll_wheel_create
3126 #define gx_generic_scroll_wheel_draw                             _gx_generic_scroll_wheel_draw
3127 #define gx_generic_scroll_wheel_event_process                    _gx_generic_scroll_wheel_event_process
3128 #define gx_generic_scroll_wheel_row_height_set                   _gx_generic_scroll_wheel_row_height_set
3129 #define gx_generic_scroll_wheel_total_rows_set                   _gx_generic_scroll_wheel_total_rows_set
3130 
3131 #define gx_horizontal_list_children_position                     _gx_horizontal_list_children_position
3132 #define gx_horizontal_list_create(a, b, c, d, e, f, g, h)        _gx_horizontal_list_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3133 #define gx_horizontal_list_event_process                         _gx_horizontal_list_event_process
3134 #define gx_horizontal_list_page_index_set(a, b)                  _gx_horizontal_list_page_index_set((GX_HORIZONTAL_LIST *)a, b)
3135 #define gx_horizontal_list_selected_index_get(a, b)              _gx_horizontal_list_selected_index_get(a, b)
3136 #define gx_horizontal_list_selected_set(a, b)                    _gx_horizontal_list_selected_set(a, b)
3137 #define gx_horizontal_list_selected_widget_get(a, b)             _gx_horizontal_list_selected_widget_get(a, (GX_WIDGET **)b)
3138 #define gx_horizontal_list_total_columns_set(a, b)               _gx_horizontal_list_total_columns_set((GX_HORIZONTAL_LIST *)a, b)
3139 
3140 #define gx_horizontal_scrollbar_create(a, b, c, d, e)            _gx_horizontal_scrollbar_create(a, b, (GX_WINDOW *)c, d, e)
3141 
3142 #define gx_icon_background_draw                                  _gx_icon_background_draw
3143 #define gx_icon_button_create(a, b, c, d, e, f, g)               _gx_icon_button_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3144 #define gx_icon_button_draw                                      _gx_icon_button_draw
3145 #define gx_icon_button_pixelmap_set                              _gx_icon_button_pixelmap_set
3146 #define gx_icon_create(a, b, c, d, e, f, g, h)                   _gx_icon_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3147 #define gx_icon_draw                                             _gx_icon_draw
3148 #define gx_icon_event_process                                    _gx_icon_event_process
3149 #define gx_icon_pixelmap_set                                     _gx_icon_pixelmap_set
3150 
3151 #define gx_image_reader_create                                   _gx_image_reader_create
3152 #define gx_image_reader_palette_set                              _gx_image_reader_palette_set
3153 #define gx_image_reader_start                                    _gx_image_reader_start
3154 
3155 #define gx_line_chart_axis_draw                                  _gx_line_chart_axis_draw
3156 #define gx_line_chart_create(a, b, c, d, e, f, g)                _gx_line_chart_create(a, b, (GX_WIDGET *) c, d, e, f, g)
3157 #define gx_line_chart_data_draw                                  _gx_line_chart_data_draw
3158 #define gx_line_chart_draw                                       _gx_line_chart_draw
3159 #define gx_line_chart_update                                     _gx_line_chart_update
3160 #define gx_line_chart_y_scale_calculate                          _gx_line_chart_y_scale_calculate
3161 
3162 #define gx_menu_create(a, b, c, d, e, f, g, h)                   _gx_menu_create((GX_MENU *)a, b, (GX_WIDGET *)c, d, e, f, g, h)
3163 #define gx_menu_draw                                             _gx_menu_draw
3164 #define gx_menu_event_process                                    _gx_menu_event_process
3165 #define gx_menu_insert                                           _gx_menu_insert
3166 #define gx_menu_remove                                           _gx_menu_remove
3167 #define gx_menu_remove                                           _gx_menu_remove
3168 #define gx_menu_text_draw                                        _gx_menu_text_draw
3169 #define gx_menu_text_offset_set                                  _gx_menu_text_offset_set
3170 
3171 #define gx_multi_line_text_button_create(a, b, c, d, e, f, g)    _gx_multi_line_text_button_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3172 #define gx_multi_line_text_button_draw                           _gx_multi_line_text_button_draw
3173 #define gx_multi_line_text_button_event_process                  _gx_multi_line_text_button_event_process
3174 #define gx_multi_line_text_button_text_draw                      _gx_multi_line_text_button_text_draw
3175 #define gx_multi_line_text_button_text_id_set                    _gx_multi_line_text_button_text_id_set
3176 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3177 #define gx_multi_line_text_button_text_set                       _gx_multi_line_text_button_text_set
3178 #endif
3179 #define gx_multi_line_text_button_text_set_ext                   _gx_multi_line_text_button_text_set_ext
3180 
3181 #define gx_multi_line_text_input_backspace                       _gx_multi_line_text_input_backspace
3182 #define gx_multi_line_text_input_buffer_clear                    _gx_multi_line_text_input_buffer_clear
3183 #define gx_multi_line_text_input_buffer_get                      _gx_multi_line_text_input_buffer_get
3184 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3185 #define gx_multi_line_text_input_char_insert                     _gx_multi_line_text_input_char_insert
3186 #endif
3187 #define gx_multi_line_text_input_char_insert_ext                 _gx_multi_line_text_input_char_insert_ext
3188 #define gx_multi_line_text_input_create(a, b, c, d, e, f, g, h)  _gx_multi_line_text_input_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3189 #define gx_multi_line_text_input_cursor_pos_get                  _gx_multi_line_text_input_cursor_pos_get
3190 #define gx_multi_line_text_input_delete                          _gx_multi_line_text_input_delete
3191 #define gx_multi_line_text_input_down_arrow                      _gx_multi_line_text_input_down_arrow
3192 #define gx_multi_line_text_input_end                             _gx_multi_line_text_input_end
3193 #define gx_multi_line_text_input_event_process                   _gx_multi_line_text_input_event_process
3194 #define gx_multi_line_text_input_fill_color_set                  _gx_multi_line_text_input_fill_color_set
3195 #define gx_multi_line_text_input_home                            _gx_multi_line_text_input_home
3196 #define gx_multi_line_text_input_left_arrow                      _gx_multi_line_text_input_left_arrow
3197 #define gx_multi_line_text_input_right_arrow                     _gx_multi_line_text_input_right_arrow
3198 #define gx_multi_line_text_input_style_add                       _gx_multi_line_text_input_style_add
3199 #define gx_multi_line_text_input_style_remove                    _gx_multi_line_text_input_style_remove
3200 #define gx_multi_line_text_input_style_set                       _gx_multi_line_text_input_style_set
3201 #define gx_multi_line_text_input_text_color_set                  _gx_multi_line_text_input_text_color_set
3202 #define gx_multi_line_text_input_text_select                     _gx_multi_line_text_input_text_select
3203 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3204 #define gx_multi_line_text_input_text_set                        _gx_multi_line_text_input_text_set
3205 #endif
3206 #define gx_multi_line_text_input_text_set_ext                    _gx_multi_line_text_input_text_set_ext
3207 #define gx_multi_line_text_input_up_arrow                        _gx_multi_line_text_input_up_arrow
3208 
3209 #define gx_multi_line_text_view_create(a, b, c, d, e, f, g)      _gx_multi_line_text_view_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3210 #define gx_multi_line_text_view_draw                             _gx_multi_line_text_view_draw
3211 #define gx_multi_line_text_view_event_process                    _gx_multi_line_text_view_event_process
3212 #define gx_multi_line_text_view_font_set                         _gx_multi_line_text_view_font_set
3213 #define gx_multi_line_text_view_line_space_set                   _gx_multi_line_text_view_line_space_set
3214 #define gx_multi_line_text_view_scroll_info_get                  _gx_multi_line_text_view_scroll_info_get
3215 #if defined(GUIX_5_4_0_COMPATIBILITY)
3216 #define gx_multi_line_text_view_text_color_set(a, b, c)          _gx_multi_line_text_view_text_color_set((GX_MUILTI_LINE_TEXT_VIEW *)a, b, c, b)
3217 #else
3218 #define gx_multi_line_text_view_text_color_set                   _gx_multi_line_text_view_text_color_set
3219 #endif
3220 #define gx_multi_line_text_view_text_id_set                      _gx_multi_line_text_view_text_id_set
3221 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3222 #define gx_multi_line_text_view_text_set                         _gx_multi_line_text_view_text_set
3223 #endif
3224 #define gx_multi_line_text_view_text_set_ext                     _gx_multi_line_text_view_text_set_ext
3225 #define gx_multi_line_text_view_whitespace_set                   _gx_multi_line_text_view_whitespace_set
3226 
3227 #define gx_rich_text_view_create(a, b, c, d, e, f, g, h)         _gx_rich_text_view_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3228 #define gx_rich_text_view_draw                                   _gx_rich_text_view_draw
3229 #define gx_rich_text_view_text_draw                              _gx_rich_text_view_text_draw
3230 #define gx_rich_text_view_fonts_set                              _gx_rich_text_view_fonts_set
3231 
3232 #define gx_numeric_pixelmap_prompt_create                        _gx_numeric_pixelmap_prompt_create
3233 #define gx_numeric_pixelmap_prompt_format_function_set           _gx_numeric_pixelmap_prompt_format_function_set
3234 #define gx_numeric_pixelmap_prompt_value_set                     _gx_numeric_pixelmap_prompt_value_set
3235 
3236 #define gx_numeric_prompt_create                                 _gx_numeric_prompt_create
3237 #define gx_numeric_prompt_format_function_set                    _gx_numeric_prompt_format_function_set
3238 #define gx_numeric_prompt_value_set                              _gx_numeric_prompt_value_set
3239 
3240 #define gx_numeric_scroll_wheel_create(a, b, c, d, e, f, g, h)   _gx_numeric_scroll_wheel_create(a, b, (GX_WIDGET *) c, d, e, f, g, h)
3241 #define gx_numeric_scroll_wheel_range_set                        _gx_numeric_scroll_wheel_range_set
3242 
3243 #define gx_pixelmap_button_create(a, b, c, d, e, f, g, h, i)     _gx_pixelmap_button_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, i)
3244 #define gx_pixelmap_button_draw                                  _gx_pixelmap_button_draw
3245 #define gx_pixelmap_button_event_process                         _gx_pixelmap_button_event_process
3246 #define gx_pixelmap_button_pixelmap_set                          _gx_pixelmap_button_pixelmap_set
3247 
3248 #define gx_pixelmap_prompt_create(a, b, c, d, e, f, g, h)        _gx_pixelmap_prompt_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3249 #define gx_pixelmap_prompt_draw                                  _gx_pixelmap_prompt_draw
3250 #define gx_pixelmap_prompt_pixelmap_set                          _gx_pixelmap_prompt_pixelmap_set
3251 
3252 #define gx_pixelmap_slider_create(a, b, c, d, e, f, g, h)        _gx_pixelmap_slider_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3253 #define gx_pixelmap_slider_draw                                  _gx_pixelmap_slider_draw
3254 #define gx_pixelmap_slider_event_process                         _gx_pixelmap_slider_event_process
3255 #define gx_pixelmap_slider_pixelmap_set                          _gx_pixelmap_slider_pixelmap_set
3256 
3257 #define gx_progress_bar_background_draw                          _gx_progress_bar_background_draw
3258 #define gx_progress_bar_create(a, b, c, d, e, f, g)              _gx_progress_bar_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3259 #define gx_progress_bar_draw                                     _gx_progress_bar_draw
3260 #define gx_progress_bar_event_process                            _gx_progress_bar_event_process
3261 #define gx_progress_bar_font_set                                 _gx_progress_bar_font_set
3262 #define gx_progress_bar_info_set(a, b)                           _gx_progress_bar_info_set((GX_PROGRESS_BAR *)a, b)
3263 #define gx_progress_bar_pixelmap_set                             _gx_progress_bar_pixelmap_set
3264 #define gx_progress_bar_range_set                                _gx_progress_bar_range_set
3265 #if defined(GUIX_5_4_0_COMPATIBILITY)
3266 #define gx_progress_bar_text_color_set(a, b, c)                  _gx_progress_bar_text_color_set((GX_PROGRESS_BAR *)a, b, c, b)
3267 #else
3268 #define gx_progress_bar_text_color_set                           _gx_progress_bar_text_color_set
3269 #endif
3270 #define gx_progress_bar_text_draw                                _gx_progress_bar_text_draw
3271 #define gx_progress_bar_value_set                                _gx_progress_bar_value_set
3272 
3273 #define gx_prompt_create(a, b, c, d, e, f, g)                    _gx_prompt_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3274 #define gx_prompt_event_process                                  _gx_prompt_event_process
3275 #define gx_prompt_draw                                           _gx_prompt_draw
3276 #define gx_prompt_font_set                                       _gx_prompt_font_set
3277 
3278 #if defined(GUIX_5_4_0_COMPATIBILITY)
3279 #define gx_prompt_text_color_set(a, b, c)                        _gx_prompt_text_color_set((GX_PROGRESS_BAR *)a, b, c, b)
3280 #else
3281 #define gx_prompt_text_color_set                                 _gx_prompt_text_color_set
3282 #endif
3283 #define gx_prompt_text_draw                                      _gx_prompt_text_draw
3284 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3285 #define gx_prompt_text_get                                       _gx_prompt_text_get
3286 #endif
3287 #define gx_prompt_text_get_ext                                   _gx_prompt_text_get_ext
3288 #define gx_prompt_text_id_set                                    _gx_prompt_text_id_set
3289 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3290 #define gx_prompt_text_set                                       _gx_prompt_text_set
3291 #endif
3292 #define gx_prompt_text_set_ext                                   _gx_prompt_text_set_ext
3293 
3294 #define gx_radial_progress_bar_anchor_set                        _gx_radial_progress_bar_anchor_set
3295 #define gx_radial_progress_bar_background_draw                   _gx_radial_progress_bar_background_draw
3296 #define gx_radial_progress_bar_create                            _gx_radial_progress_bar_create
3297 #define gx_radial_progress_bar_draw                              _gx_radial_progress_bar_draw
3298 #define gx_radial_progress_bar_event_process                     _gx_radial_progress_bar_event_process
3299 #define gx_radial_progress_bar_font_set                          _gx_radial_progress_bar_font_set
3300 #define gx_radial_progress_bar_info_set                          _gx_radial_progress_bar_info_set
3301 #if defined(GUIX_5_4_0_COMPATIBILITY)
3302 #define gx_radial_progress_bar_text_color_set(a, b, c)           _gx_radial_progress_bar_text_color_set((GX_RADIAL_PROGRESS_BAR *)a, b, c, b)
3303 #else
3304 #define gx_radial_progress_bar_text_color_set                    _gx_radial_progress_bar_text_color_set
3305 #endif
3306 #define gx_radial_progress_bar_text_draw                         _gx_radial_progress_bar_text_draw
3307 #define gx_radial_progress_bar_value_set                         _gx_radial_progress_bar_value_set
3308 
3309 #define gx_radial_slider_anchor_angles_set                       _gx_radial_slider_anchor_anglees_set
3310 #define gx_radial_slider_animation_set                           _gx_radial_slider_animation_set
3311 #define gx_radial_slider_animation_start                         _gx_radial_slider_animation_start
3312 #define gx_radial_slider_create                                  _gx_radial_slider_create
3313 #define gx_radial_slider_draw                                    _gx_radial_slider_draw
3314 #define gx_radial_slider_event_process                           _gx_radial_slider_event_process
3315 #define gx_radial_slider_info_get                                _gx_radial_slider_info_get
3316 #define gx_radial_slider_info_set                                _gx_radial_slider_info_set
3317 #define gx_radial_slider_pixelmap_set                            _gx_radial_slider_pixelmap_set
3318 #define gx_radial_slider_angle_set                               _gx_radial_slider_angle_set
3319 
3320 #define gx_radio_button_create(a, b, c, d, e, f, g)              _gx_radio_button_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3321 #define gx_radio_button_draw                                     _gx_radio_button_draw
3322 #define gx_radio_button_pixelmap_set                             _gx_radio_button_pixelmap_set
3323 
3324 #define gx_screen_stack_create                                   _gx_screen_stack_create
3325 #define gx_screen_stack_pop                                      _gx_screen_stack_pop
3326 #define gx_screen_stack_push                                     _gx_screen_stack_push
3327 #define gx_screen_stack_reset                                    _gx_screen_stack_reset
3328 
3329 #define gx_scroll_thumb_create                                   _gx_scroll_thumb_create
3330 #define gx_scroll_thumb_draw                                     _gx_scroll_thumb_draw
3331 #define gx_scroll_thumb_event_process                            _gx_scroll_thumb_event_process
3332 
3333 #define gx_scrollbar_draw                                        _gx_scrollbar_draw
3334 #define gx_scrollbar_event_process                               _gx_scrollbar_event_process
3335 #define gx_scrollbar_limit_check                                 _gx_scrollbar_limit_check
3336 #define gx_scrollbar_reset                                       _gx_scrollbar_reset
3337 #define gx_scrollbar_value_set                                   _gx_scrollbar_value_set
3338 
3339 #define gx_scroll_wheel_create                                   _gx_scroll_wheel_create
3340 #define gx_scroll_wheel_event_process                            _gx_scroll_wheel_event_process
3341 #define gx_scroll_wheel_gradient_alpha_set(a, b, c)              _gx_scroll_wheel_gradient_alpha_set((GX_SCROLL_WHEEL *) a, b, c)
3342 #define gx_scroll_wheel_row_height_set(a, b)                     _gx_scroll_wheel_row_height_set((GX_SCROLL_WHEEL *) a, b)
3343 #define gx_scroll_wheel_selected_background_set(a, b)            _gx_scroll_wheel_selected_background_set((GX_SCROLL_WHEEL *) a, b)
3344 #define gx_scroll_wheel_selected_get(a, b)                       _gx_scroll_wheel_selected_get((GX_SCROLL_WHEEL *) a, b)
3345 #define gx_scroll_wheel_selected_set(a, b)                       _gx_scroll_wheel_selected_set((GX_SCROLL_WHEEL *) a, b)
3346 #define gx_scroll_wheel_speed_set(a, b, c, d, e)                 _gx_scroll_wheel_speed_set((GX_SCROLL_WHEEL *) a, b, c, d, e)
3347 #define gx_scroll_wheel_total_rows_set(a, b)                     _gx_scroll_wheel_total_rows_set((GX_SCROLL_WHEEL *) a, b)
3348 
3349 #define gx_single_line_text_input_backspace(a)                   _gx_single_line_text_input_backspace((GX_SINGLE_LINE_TEXT_INPUT *)a)
3350 #define gx_single_line_text_input_buffer_clear(a)                _gx_single_line_text_input_buffer_clear((GX_SINGLE_LINE_TEXT_INPUT *)a)
3351 #define gx_single_line_text_input_buffer_get(a, b, c, d)         _gx_single_line_text_input_buffer_get((GX_SINGLE_LINE_TEXT_INPUT *)a, b, c, d)
3352 #define gx_single_line_text_input_character_delete(a)            _gx_single_line_text_input_character_delete(a)
3353 #define gx_single_line_text_input_character_insert(a, b, c)      _gx_single_line_text_input_character_insert(a, b, c)
3354 #define gx_single_line_text_input_create(a, b, c, d, e, f, g, h) _gx_single_line_text_input_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3355 #define gx_single_line_text_input_draw(a)                        _gx_single_line_text_input_draw(a)
3356 #define gx_single_line_text_input_draw_position_get(a, b, c)     _gx_single_line_text_input_draw_position_get(a, b, c)
3357 #define gx_single_line_text_input_end(a)                         _gx_single_line_text_input_end((GX_SINGLE_LINE_TEXT_INPUT *)a)
3358 #define gx_single_line_text_input_event_process(a, b)            _gx_single_line_text_input_event_process((GX_SINGLE_LINE_TEXT_INPUT *)a, b)
3359 #define gx_single_line_text_input_fill_color_set(a, b, c, d, e)  _gx_single_line_text_input_fill_color_set((GX_SINGLE_LINE_TEXT_INPUT *)a, b, c, d, e)
3360 #define gx_single_line_text_input_home(a)                        _gx_single_line_text_input_home((GX_SINGLE_LINE_TEXT_INPUT *)a)
3361 #define gx_single_line_text_input_left_arrow(a)                  _gx_single_line_text_input_left_arrow((GX_SINGLE_LINE_TEXT_INPUT *)a)
3362 #define gx_single_line_text_input_position_get(a, b)             _gx_single_line_text_input_position_get(a, b)
3363 #define gx_single_line_text_input_right_arrow(a)                 _gx_single_line_text_input_right_arrow((GX_SINGLE_LINE_TEXT_INPUT *)a)
3364 #define gx_single_line_text_input_style_add(a, b)                _gx_single_line_text_input_style_add((GX_SINGLE_LINE_TEXT_INPUT *)a, b);
3365 #define gx_single_line_text_input_style_remove(a, b)             _gx_single_line_text_input_style_remove((GX_SINGLE_LINE_TEXT_INPUT *)a, b)
3366 #define gx_single_line_text_input_style_set(a, b)                _gx_single_line_text_input_style_set((GX_SINGLE_LINE_TEXT_INPUT *)a, b)
3367 #define gx_single_line_text_input_text_color_set(a, b, c, d, e)  _gx_single_line_text_input_text_color_set((GX_SINGLE_LINE_TEXT_INPUT *)a, b, c, d, e)
3368 #define gx_single_line_text_input_text_select                    _gx_single_line_text_input_text_select
3369 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3370 #define gx_single_line_text_input_text_set                       _gx_single_line_text_input_text_set
3371 #endif
3372 #define gx_single_line_text_input_text_set_ext                   _gx_single_line_text_input_text_set_ext
3373 
3374 #define gx_slider_create(a, b, c, d, e, f, g, h)                 _gx_slider_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3375 #define gx_slider_draw                                           _gx_slider_draw
3376 #define gx_slider_event_process                                  _gx_slider_event_process
3377 #define gx_slider_info_set                                       _gx_slider_info_set
3378 #define gx_slider_needle_draw                                    _gx_slider_needle_draw
3379 #define gx_slider_needle_position_get                            _gx_slider_needle_position_get
3380 #define gx_slider_tickmarks_draw                                 _gx_slider_tickmarks_draw
3381 #define gx_slider_travel_get                                     _gx_slider_travel_get
3382 #define gx_slider_value_calculate                                _gx_slider_value_calculate
3383 #define gx_slider_value_set                                      _gx_slider_value_set
3384 
3385 #define gx_sprite_create(a, b, c, d, e, f, g, h)                 _gx_sprite_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3386 #define gx_sprite_current_frame_set                              _gx_sprite_current_frame_set
3387 #define gx_sprite_frame_list_set                                 _gx_sprite_frame_list_set
3388 #define gx_sprite_start(a, b)                                    _gx_sprite_start(a, b)
3389 #define gx_sprite_stop(a)                                        _gx_sprite_stop(a)
3390 
3391 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3392 #define gx_string_scroll_wheel_create(a, b, c, d, e, f, g, h)    _gx_string_scroll_wheel_create(a, b, c, d, e, f, g, h)
3393 #define gx_string_scroll_wheel_string_list_set                   _gx_string_scroll_wheel_string_list_set
3394 #endif
3395 #define gx_string_scroll_wheel_create_ext(a, b, c, d, e, f, g, h) _gx_string_scroll_wheel_create_ext(a, b, c, d, e, f, g, h)
3396 #define gx_string_scroll_wheel_event_process                     _gx_string_scroll_wheel_event_process
3397 #define gx_string_scroll_wheel_string_id_list_set                _gx_string_scroll_wheel_string_id_list_set
3398 #define gx_string_scroll_wheel_string_list_set_ext               _gx_string_scroll_wheel_string_list_set_ext
3399 
3400 #define gx_system_active_language_set                            _gx_system_active_language_set
3401 
3402 #if (GX_ANIMATION_POOL_SIZE > 0)
3403 #define gx_system_animation_get                                  _gx_system_animation_get
3404 #define gx_system_animation_free                                 _gx_system_animation_free
3405 #endif
3406 
3407 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
3408 #define gx_system_bidi_text_enable                               _gx_system_bidi_text_enable
3409 #define gx_system_bidi_text_disable                              _gx_system_bidi_text_disable
3410 #endif
3411 
3412 #if defined(GX_THAI_GLYPH_SHAPING_SUPPORT)
3413 #define gx_system_text_render_style_set                          _gx_system_text_render_style_set
3414 #endif
3415 
3416 #define gx_system_canvas_refresh                                 _gx_system_canvas_refresh
3417 #define gx_system_dirty_mark(a)                                  _gx_system_dirty_mark((GX_WIDGET *)a);
3418 #define gx_system_dirty_partial_add(a, b)                        _gx_system_dirty_partial_add((GX_WIDGET *)a, b)
3419 #define gx_system_draw_context_get                               _gx_system_draw_context_get
3420 #define gx_system_event_fold                                     _gx_system_event_fold
3421 #define gx_system_event_send                                     _gx_system_event_send
3422 #define gx_system_focus_claim(a)                                 _gx_system_focus_claim((GX_WIDGET *)a)
3423 #define gx_system_initialize                                     _gx_system_initialize
3424 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3425 #define gx_system_language_table_get                             _gx_system_language_table_get
3426 #define gx_system_language_table_set                             _gx_system_language_table_set
3427 #endif
3428 #define gx_system_memory_allocator_set                           _gx_system_memory_allocator_set
3429 #define gx_system_pen_configure                                  _gx_system_pen_configure
3430 #define gx_system_screen_stack_create                            _gx_system_screen_stack_create
3431 #define gx_system_screen_stack_get                               _gx_system_screen_stack_get
3432 #define gx_system_screen_stack_pop                               _gx_system_screen_stack_pop
3433 #define gx_system_screen_stack_push                              _gx_system_screen_stack_push
3434 #define gx_system_screen_stack_reset                             _gx_system_screen_stack_reset
3435 #define gx_system_scroll_appearance_get                          _gx_system_scroll_appearance_get
3436 #define gx_system_scroll_appearance_set                          _gx_system_scroll_appearance_set
3437 #define gx_system_start                                          _gx_system_start
3438 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3439 #define gx_system_string_get                                     _gx_system_string_get
3440 #define gx_system_string_table_get                               _gx_system_string_table_get
3441 #define gx_system_string_width_get                               _gx_system_string_width_get
3442 #endif
3443 #define gx_system_string_width_get_ext                           _gx_system_string_width_get_ext
3444 
3445 #define gx_system_timer_start(a, b, c, d)                        _gx_system_timer_start((GX_WIDGET *)a, b, c, d)
3446 #define gx_system_timer_stop(a, b)                               _gx_system_timer_stop((GX_WIDGET *)a, b)
3447 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3448 #define gx_system_version_string_get                             _gx_system_version_string_get
3449 #endif
3450 #define gx_system_version_string_get_ext                         _gx_system_version_string_get_ext
3451 #define gx_system_widget_find                                    _gx_system_widget_find
3452 
3453 #define gx_text_button_create(a, b, c, d, e, f, g)               _gx_text_button_create(a, b, (GX_WIDGET *)c, d, e, f, g)
3454 #define gx_text_button_draw                                      _gx_text_button_draw
3455 #define gx_text_button_event_process                             _gx_text_button_event_process
3456 #define gx_text_button_font_set                                  _gx_text_button_font_set
3457 #if defined(GUIX_5_4_0_COMPATIBILITY)
3458 #define gx_text_button_text_color_set(a, b, c)                   _gx_text_button_text_color_set((GX_TEXT_BUTTON *)a, b, c)
3459 #else
3460 #define gx_text_button_text_color_set                            _gx_text_button_text_color_set
3461 #endif
3462 #define gx_text_button_text_draw                                 _gx_text_button_text_draw
3463 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3464 #define gx_text_button_text_get                                  _gx_text_button_text_get
3465 #endif
3466 #define gx_text_button_text_get_ext                              _gx_text_button_text_get_ext
3467 #define gx_text_button_text_id_set                               _gx_text_button_text_id_set
3468 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3469 #define gx_text_button_text_set                                  _gx_text_button_text_set
3470 #endif
3471 #define gx_text_button_text_set_ext                              _gx_text_button_text_set_ext
3472 
3473 #define gx_text_input_cursor_blink_interval_set                  _gx_text_input_cursor_blink_interval_set
3474 #define gx_text_input_cursor_height_set                          _gx_text_input_cursor_height_set
3475 #define gx_text_input_cursor_width_set                           _gx_text_input_cursor_width_set
3476 
3477 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3478 #define gx_text_scroll_wheel_callback_set(a, b)                  _gx_text_scroll_wheel_callback_set((GX_TEXT_SCROLL_WHEEL *)a, (GX_CONST GX_CHAR *(*)(GX_TEXT_SCROLL_WHEEL *, INT)) b)
3479 #endif
3480 #define gx_text_scroll_wheel_callback_set_ext(a, b)              _gx_text_scroll_wheel_callback_set_ext((GX_TEXT_SCROLL_WHEEL *)a, (UINT(*)(GX_TEXT_SCROLL_WHEEL *, INT, GX_STRING *)) b)
3481 #define gx_text_scroll_wheel_font_set(a, b, c)                   _gx_text_scroll_wheel_font_set((GX_TEXT_SCROLL_WHEEL *) a, b, c)
3482 #if defined(GUIX_5_4_0_COMPATIBILITY)
3483 #define gx_text_scroll_wheel_text_color_set(a, b, c)             _gx_text_scroll_wheel_text_color_set((GX_TEXT_SCROLL_WHEEL *) a, b, c, b)
3484 #else
3485 #define gx_text_scroll_wheel_text_color_set(a, b, c, d)          _gx_text_scroll_wheel_text_color_set((GX_TEXT_SCROLL_WHEEL *) a, b, c, d)
3486 #endif
3487 #define gx_text_scroll_wheel_create                              _gx_text_scroll_wheel_create
3488 #define gx_text_scroll_wheel_draw                                _gx_text_scroll_wheel_draw
3489 #define gx_text_scroll_wheel_event_process                       _gx_text_scroll_wheel_event_process
3490 
3491 #define gx_transition_window_create(a, b, c, d, e, f)            _gx_transition_window_create(a, b, (GX_WIDGET *)c, d, e, f)
3492 
3493 #define gx_tree_view_create(a, b, c, d, e, f)                    _gx_tree_view_create((GX_TREE_VIEW *)a, b, (GX_WIDGET *)c, d, e, f)
3494 #define gx_tree_view_draw                                        _gx_tree_view_draw
3495 #define gx_tree_view_event_process                               _gx_tree_view_event_process
3496 #define gx_tree_view_indentation_set                             _gx_tree_view_indentation_set
3497 #define gx_tree_view_position                                    _gx_tree_view_position
3498 #define gx_tree_view_root_line_color_set                         _gx_tree_view_root_line_color_set
3499 #define gx_tree_view_root_pixelmap_set                           _gx_tree_view_root_pixelmap_set
3500 #define gx_tree_view_selected_get                                _gx_tree_view_selected_get
3501 #define gx_tree_view_selected_set                                _gx_tree_view_selected_set
3502 
3503 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
3504 #define gx_utility_bidi_paragraph_reorder                        _gx_utility_bidi_paragraph_reorder
3505 #define gx_utility_bidi_paragraph_reorder_ext                    _gx_utility_bidi_paragraph_reorder_ext
3506 #define gx_utility_bidi_resolved_text_info_delete                _gx_utility_bidi_resolved_text_info_delete
3507 #endif
3508 #define gx_utility_canvas_to_bmp                                 _gx_utility_canvas_to_bmp
3509 #define gx_utility_gradient_create                               _gx_utility_gradient_create
3510 #define gx_utility_gradient_delete                               _gx_utility_gradient_delete
3511 #define gx_utility_circle_point_get                              _gx_utility_circle_point_get
3512 #define gx_utility_ltoa                                          _gx_utility_ltoa
3513 #if defined(GUIX_5_4_0_COMPATIBILITY)
3514 #define gx_utility_math_acos                                     _gx_utility_math_acos_5_4_0
3515 #define gx_utility_math_asin                                     _gx_utility_math_asin_5_4_0
3516 #define gx_utility_math_cos                                      _gx_utility_math_cos_5_4_0
3517 #define gx_utility_math_sin                                      _gx_utility_math_sin_5_4_0
3518 #else
3519 #define gx_utility_math_acos                                     _gx_utility_math_acos
3520 #define gx_utility_math_asin                                     _gx_utility_math_asin
3521 #define gx_utility_math_cos                                      _gx_utility_math_cos
3522 #define gx_utility_math_sin                                      _gx_utility_math_sin
3523 #endif
3524 #define gx_utility_math_sqrt                                     _gx_utility_math_sqrt
3525 #define gx_utility_pixelmap_resize                               _gx_utility_pixelmap_resize
3526 #define gx_utility_pixelmap_rotate                               _gx_utility_pixelmap_rotate
3527 #define gx_utility_pixelmap_simple_rotate                        _gx_utility_pixelmap_simple_rotate
3528 #define gx_utility_rectangle_center                              _gx_utility_rectangle_center
3529 #define gx_utility_rectangle_center_find                         _gx_utility_rectangle_center_find
3530 #define gx_utility_rectangle_combine                             _gx_utility_rectangle_combine
3531 #define gx_utility_rectangle_compare                             _gx_utility_rectangle_compare
3532 #define gx_utility_rectangle_define                              _gx_utility_rectangle_define
3533 #define gx_utility_rectangle_resize                              _gx_utility_rectangle_resize
3534 #define gx_utility_rectangle_overlap_detect                      _gx_utility_rectangle_overlap_detect
3535 #define gx_utility_rectangle_point_detect                        _gx_utility_rectangle_point_detect
3536 #define gx_utility_rectangle_shift                               _gx_utility_rectangle_shift
3537 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3538 #define gx_utility_string_to_alphamap                            _gx_utility_string_to_alphamap
3539 #endif
3540 #define gx_utility_string_to_alphamap_ext                        _gx_utility_string_to_alphamap_ext
3541 
3542 #define gx_vertical_list_children_position                       _gx_vertical_list_children_position
3543 #define gx_vertical_list_create(a, b, c, d, e, f, g, h)          _gx_vertical_list_create(a, b, (GX_WIDGET *)c, d, e, f, g, h)
3544 #define gx_vertical_list_event_process                           _gx_vertical_list_event_process
3545 #define gx_vertical_list_page_index_set(a, b)                    _gx_vertical_list_page_index_set((GX_VERTICAL_LIST *)a, b)
3546 #define gx_vertical_list_selected_index_get(a, b)                _gx_vertical_list_selected_index_get(a, b)
3547 #define gx_vertical_list_selected_set(a, b)                      _gx_vertical_list_selected_set(a, b)
3548 #define gx_vertical_list_selected_widget_get(a, b)               _gx_vertical_list_selected_widget_get(a, (GX_WIDGET **)b)
3549 #define gx_vertical_list_total_rows_set(a, b)                    _gx_vertical_list_total_rows_set((GX_VERTICAL_LIST *)a, b)
3550 
3551 #define gx_vertical_scrollbar_create(a, b, c, d, e)              _gx_vertical_scrollbar_create(a, b, (GX_WINDOW *)c, d, e)
3552 
3553 #define gx_widget_allocate(a, b)                                 _gx_widget_allocate((GX_WIDGET **)a, b)
3554 #define gx_widget_attach(a, b)                                   _gx_widget_attach((GX_WIDGET *)a, (GX_WIDGET *)b)
3555 #define gx_widget_back_attach(a, b)                              _gx_widget_back_attach((GX_WIDGET *)a, (GX_WIDGET *)b)
3556 #define gx_widget_back_move(a, b)                                _gx_widget_back_move((GX_WIDGET *)a, b)
3557 #define gx_widget_background_draw(a)                             _gx_widget_background_draw((GX_WIDGET *)a)
3558 #define gx_widget_block_move(a, b, c, d)                         _gx_widget_block_move((GX_WIDGET *)a, b, c, d)
3559 #define gx_widget_border_draw(a, b, c, d, e)                     _gx_widget_border_draw((GX_WIDGET *)a, b, c, d, e)
3560 #define gx_widget_border_style_set(a, b)                         _gx_widget_border_style_set((GX_WIDGET *)a, b)
3561 #define gx_widget_border_width_get(a, b)                         _gx_widget_border_width_get((GX_WIDGET *)a, b)
3562 #define gx_widget_canvas_get(a, b)                               _gx_widget_canvas_get((GX_WIDGET *)a, b)
3563 #define gx_widget_child_detect(a, b, c)                          _gx_widget_child_detect((GX_WIDGET *)a, b, c)
3564 #define gx_widget_children_draw(a)                               _gx_widget_children_draw((GX_WIDGET *)a)
3565 #define gx_widget_client_get(a, b, c)                            _gx_widget_client_get((GX_WIDGET *)a, b, c)
3566 #define gx_widget_color_get(a, b, c)                             _gx_widget_color_get((GX_WIDGET *)a, b, c)
3567 #define gx_widget_create(a, b, c, d, e, f)                       _gx_widget_create((GX_WIDGET *)a, b, (GX_WIDGET *)c, d, e, f)
3568 #define gx_widget_created_test(a, b)                             _gx_widget_created_test((GX_WIDGET *)a, b)
3569 #define gx_widget_delete(a)                                      _gx_widget_delete((GX_WIDGET *)a)
3570 #define gx_widget_detach(a)                                      _gx_widget_detach((GX_WIDGET *)a)
3571 #define gx_widget_draw(a)                                        _gx_widget_draw((GX_WIDGET *)a)
3572 #define gx_widget_draw_set(a, b)                                 _gx_widget_draw_set((GX_WIDGET *)a, (void (*)(GX_WIDGET *))b)
3573 #define gx_widget_event_generate(a, b, c)                        _gx_widget_event_generate((GX_WIDGET *)a, b, c)
3574 #define gx_widget_event_process(a, b)                            _gx_widget_event_process((GX_WIDGET *)a, b)
3575 #define gx_widget_event_process_set(a, b)                        _gx_widget_event_process_set((GX_WIDGET *)a, (UINT (*)(GX_WIDGET *, GX_EVENT *)) b)
3576 #define gx_widget_event_to_parent(a, b)                          _gx_widget_event_to_parent((GX_WIDGET *)a, b)
3577 #if defined(GUIX_5_4_0_COMPATIBILITY)
3578 #define gx_widget_fill_color_set(a, b, c)                        _gx_widget_fill_color_set((GX_WIDGET *)a, b, c, b)
3579 #else
3580 #define gx_widget_fill_color_set(a, b, c, d)                     _gx_widget_fill_color_set((GX_WIDGET *)a, b, c, d)
3581 #endif
3582 #define gx_widget_find(a, b, c, d)                               _gx_widget_find((GX_WIDGET *)a, b, c, (GX_WIDGET **)d)
3583 #define gx_widget_first_child_get(a, b)                          _gx_widget_first_child_get((GX_WIDGET *) a, (GX_WIDGET **) b)
3584 #define gx_widget_focus_next(a)                                  _gx_widget_focus_next((GX_WIDGET *)a)
3585 #define gx_widget_focus_previous(a)                              _gx_widget_focus_previous((GX_WIDGET *)a)
3586 #define gx_widget_font_get(a, b, c)                              _gx_widget_font_get((GX_WIDGET *)a, b, c)
3587 #define gx_widget_free(a)                                        _gx_widget_free((GX_WIDGET *)a)
3588 #define gx_widget_front_move(a, b)                               _gx_widget_front_move((GX_WIDGET *)a, b)
3589 #define gx_widget_height_get(a, b)                               _gx_widget_height_get((GX_WIDGET *)a, b)
3590 #define gx_widget_hide(a)                                        _gx_widget_hide((GX_WIDGET *)a)
3591 #define gx_widget_last_child_get(a, b)                           _gx_widget_last_child_get((GX_WIDGET *) a, (GX_WIDGET **) b)
3592 #define gx_widget_next_sibling_get(a, b)                         _gx_widget_next_sibling_get((GX_WIDGET *) a, (GX_WIDGET **) b)
3593 #define gx_widget_parent_get(a, b)                               _gx_widget_parent_get((GX_WIDGET *) a, (GX_WIDGET **) b)
3594 #define gx_widget_pixelmap_get(a, b, c)                          _gx_widget_pixelmap_get((GX_WIDGET *)a, b, c)
3595 #define gx_widget_previous_sibling_get(a, b)                     _gx_widget_previous_sibling_get((GX_WIDGET *) a, (GX_WIDGET **) b)
3596 #define gx_widget_resize(a, b)                                   _gx_widget_resize((GX_WIDGET *)a, b)
3597 #define gx_widget_shift(a, b, c, d)                              _gx_widget_shift((GX_WIDGET *)a, b, c, d)
3598 #define gx_widget_show(a)                                        _gx_widget_show((GX_WIDGET *)a)
3599 #define gx_widget_status_add(a, b)                               _gx_widget_status_add((GX_WIDGET *)a, b)
3600 #define gx_widget_status_get(a, b)                               _gx_widget_status_get((GX_WIDGET *)a, b)
3601 #define gx_widget_status_remove(a, b)                            _gx_widget_status_remove((GX_WIDGET *)a, b)
3602 #define gx_widget_status_test(a, b, c)                           _gx_widget_status_test((GX_WIDGET *)a, b, c)
3603 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3604 #define gx_widget_string_get(a, b, c)                            _gx_widget_string_get((GX_WIDGET *)a, b, c)
3605 #endif
3606 #define gx_widget_string_get_ext(a, b, c)                        _gx_widget_string_get_ext((GX_WIDGET *)a, b, c)
3607 #define gx_widget_style_add(a, b)                                _gx_widget_style_add((GX_WIDGET *)a, b)
3608 #define gx_widget_style_get(a, b)                                _gx_widget_style_get((GX_WIDGET *)a, b)
3609 #define gx_widget_style_remove(a, b)                             _gx_widget_style_remove((GX_WIDGET *)a, b)
3610 #define gx_widget_style_set(a, b)                                _gx_widget_style_set((GX_WIDGET *)a, b)
3611 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3612 #define gx_widget_text_blend(a, b, c, d, e, f, g)                _gx_widget_text_blend((GX_WIDGET *)a, b, c, d, e, f, g)
3613 #define gx_widget_text_draw(a, b, c, d, e, f)                    _gx_widget_text_draw((GX_WIDGET *)a, b, c, d, e, f)
3614 #endif
3615 #define gx_widget_text_blend_ext(a, b, c, d, e, f, g)            _gx_widget_text_blend_ext((GX_WIDGET *)a, b, c, d, e, f, g)
3616 #define gx_widget_text_draw_ext(a, b, c, d, e, f)                _gx_widget_text_draw_ext((GX_WIDGET *)a, b, c, d, e, f)
3617 #define gx_widget_text_id_draw(a, b, c, d, e, f)                 _gx_widget_text_id_draw((GX_WIDGET *)a, b, c, d, e, f)
3618 #define gx_widget_top_visible_child_find(a, b)                   _gx_widget_top_visible_child_find((GX_WIDGET *) a, (GX_WIDGET **) b)
3619 #define gx_widget_type_find(a, b, c)                             _gx_widget_type_find((GX_WIDGET *)a, b, (GX_WIDGET **)c)
3620 #define gx_widget_width_get(a, b)                                _gx_widget_width_get((GX_WIDGET *)a, b)
3621 
3622 #define gx_window_background_draw                                _gx_window_background_draw
3623 #define gx_window_client_height_get                              _gx_window_client_height_get
3624 #define gx_window_client_scroll                                  _gx_window_client_scroll
3625 #define gx_window_client_width_get                               _gx_window_client_width_get
3626 #define gx_window_close(a)                                       _gx_window_close((GX_WINDOW *) a)
3627 #define gx_window_create(a, b, c, d, e, f)                       _gx_window_create(a, b, (GX_WIDGET *)c, d, e, f)
3628 #define gx_window_draw                                           _gx_window_draw
3629 #define gx_window_event_process                                  _gx_window_event_process
3630 #define gx_window_execute                                        _gx_window_execute
3631 #define gx_window_root_create                                    _gx_window_root_create
3632 #define gx_window_root_delete                                    _gx_window_root_delete
3633 #define gx_window_root_event_process                             _gx_window_root_event_process
3634 #define gx_window_root_find(a, b)                                _gx_window_root_find((GX_WIDGET *)a, b)
3635 #define gx_window_scroll_info_get                                _gx_window_scroll_info_get
3636 #define gx_window_scrollbar_find                                 _gx_window_scrollbar_find
3637 #define gx_window_wallpaper_get                                  _gx_window_wallpaper_get
3638 #define gx_window_wallpaper_set(a, b, c)                         _gx_window_wallpaper_set((GX_WINDOW *)a, b, c)
3639 
3640 /* Define the non-error checking function prototypes of the GUIX API.  These are the routines called when the application code is built with
3641    GX_DISABLE_ERROR_CHECKING defined.  */
3642 
3643 UINT _gx_accordion_menu_create(GX_ACCORDION_MENU *accordion, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
3644                                ULONG style, USHORT accordion_menu_id, GX_CONST GX_RECTANGLE *size);
3645 VOID _gx_accordion_menu_draw(GX_ACCORDION_MENU *menu);
3646 UINT _gx_accordion_menu_event_process(GX_ACCORDION_MENU *accordion, GX_EVENT *event_ptr);
3647 UINT _gx_accordion_menu_position(GX_ACCORDION_MENU *accordion);
3648 
3649 UINT _gx_animation_canvas_define(GX_ANIMATION *animation, GX_CANVAS *canvas);
3650 UINT _gx_animation_create(GX_ANIMATION *animation);
3651 UINT _gx_animation_delete(GX_ANIMATION *target, GX_WIDGET *parent);
3652 UINT _gx_animation_drag_disable(GX_ANIMATION *animation, GX_WIDGET *widget);
3653 UINT _gx_animation_drag_enable(GX_ANIMATION *animation, GX_WIDGET *widget, GX_ANIMATION_INFO *info);
3654 UINT _gx_animation_landing_speed_set(GX_ANIMATION *animation, USHORT shift_per_step);
3655 UINT _gx_animation_start(GX_ANIMATION *animation, GX_ANIMATION_INFO *info);
3656 UINT _gx_animation_stop(GX_ANIMATION *animation);
3657 
3658 UINT _gx_binres_language_count_get(GX_UBYTE *root_address, GX_VALUE *put_count);
3659 UINT _gx_binres_language_info_load(GX_UBYTE *root_address, GX_LANGUAGE_HEADER *put_info);
3660 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3661 UINT _gx_binres_language_table_load(GX_UBYTE *root_address, GX_UBYTE ****returned_language_table);
3662 #endif
3663 UINT _gx_binres_language_table_load_ext(GX_UBYTE *root_address, GX_STRING ***returned_language_table);
3664 UINT _gx_binres_theme_load(GX_UBYTE *root_address, INT theme_id, GX_THEME **returned_theme);
3665 
3666 UINT _gx_brush_default(GX_BRUSH *brush);
3667 UINT _gx_brush_define(GX_BRUSH *brush, GX_COLOR line_color, GX_COLOR fill_color, UINT style);
3668 
3669 VOID _gx_button_background_draw(GX_BUTTON *button);
3670 UINT _gx_button_create(GX_BUTTON *button,
3671                        GX_CONST GX_CHAR *name,
3672                        GX_WIDGET *parent,
3673                        ULONG style, USHORT Id,
3674                        GX_CONST GX_RECTANGLE *size);
3675 UINT _gx_button_deselect(GX_BUTTON *button, GX_BOOL gen_event);
3676 VOID _gx_button_draw(GX_BUTTON *button);
3677 UINT _gx_button_event_process(GX_BUTTON *button, GX_EVENT *event_ptr);
3678 UINT _gx_button_select(GX_BUTTON *button);
3679 
3680 UINT _gx_canvas_alpha_set(GX_CANVAS *canvas, GX_UBYTE alpha);
3681 UINT _gx_canvas_arc_draw(INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
3682 UINT _gx_canvas_block_move(GX_RECTANGLE *block, GX_VALUE x_shift, GX_VALUE y_shift, GX_RECTANGLE *dirty);
3683 UINT _gx_canvas_circle_draw(INT xcenter, INT ycenter, UINT r);
3684 UINT _gx_canvas_create(GX_CANVAS *canvas, GX_CONST GX_CHAR *name, GX_DISPLAY *display,
3685                        UINT type, UINT width, UINT height, GX_COLOR *memory_area, ULONG memory_size);
3686 UINT _gx_canvas_delete(GX_CANVAS *canvas);
3687 UINT _gx_canvas_drawing_complete(GX_CANVAS *canvas, GX_BOOL Flush);
3688 UINT _gx_canvas_drawing_initiate(GX_CANVAS *canvas, GX_WIDGET *who, GX_RECTANGLE *dirty_area);
3689 UINT _gx_canvas_ellipse_draw(INT xcenter, INT ycenter, INT a, INT b);
3690 UINT _gx_canvas_hardware_layer_bind(GX_CANVAS *canvas, INT layer);
3691 UINT _gx_canvas_hide(GX_CANVAS *canvas);
3692 UINT _gx_canvas_line_draw(GX_VALUE x_start, GX_VALUE y_start, GX_VALUE x_end, GX_VALUE y_end);
3693 UINT _gx_canvas_memory_define(GX_CANVAS *canvas, GX_COLOR *memory, ULONG memsize);
3694 
3695 #if defined(GX_MOUSE_SUPPORT)
3696 UINT _gx_canvas_mouse_define(GX_CANVAS *canvas, GX_MOUSE_CURSOR_INFO *info);
3697 UINT _gx_canvas_mouse_hide(GX_CANVAS *canvas);
3698 UINT _gx_canvas_mouse_show(GX_CANVAS *canvas);
3699 #endif
3700 UINT _gx_canvas_offset_set(GX_CANVAS *canvas, GX_VALUE x, GX_VALUE y);
3701 UINT _gx_canvas_pie_draw(INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
3702 UINT _gx_canvas_pixel_draw(GX_POINT position);
3703 UINT _gx_canvas_pixelmap_blend(GX_VALUE x_position, GX_VALUE y_position, GX_PIXELMAP *pixelmap, GX_UBYTE alpha);
3704 UINT _gx_canvas_pixelmap_draw(GX_VALUE x_position, GX_VALUE y_position, GX_PIXELMAP *pixelmap);
3705 UINT _gx_canvas_pixelmap_get(GX_PIXELMAP *pixelmap);
3706 UINT _gx_canvas_pixelmap_rotate(GX_VALUE x_position, GX_VALUE y_position, GX_PIXELMAP *pixelmap,
3707                                 INT angle, INT rot_cx, INT rot_cy);
3708 UINT _gx_canvas_pixelmap_tile(GX_RECTANGLE *fill, GX_PIXELMAP *pixelmap);
3709 UINT _gx_canvas_polygon_draw(GX_POINT *point_array, INT number_of_points);
3710 UINT _gx_canvas_rectangle_draw(GX_RECTANGLE *rectangle);
3711 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3712 UINT _gx_canvas_rotated_text_draw(GX_CONST GX_CHAR *text, GX_VALUE xcenter, GX_VALUE ycenter, INT angle);
3713 #endif
3714 UINT _gx_canvas_rotated_text_draw_ext(GX_CONST GX_STRING *text, GX_VALUE xcenter, GX_VALUE ycenter, INT angle);
3715 UINT _gx_canvas_shift(GX_CANVAS *canvas, GX_VALUE x, GX_VALUE y);
3716 UINT _gx_canvas_show(GX_CANVAS *canvas);
3717 
3718 UINT _gx_canvas_aligned_text_draw(GX_CONST GX_STRING *string, GX_RECTANGLE *rectangle, ULONG alignment);
3719 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3720 UINT _gx_canvas_text_draw(GX_VALUE x_start, GX_VALUE y_start, GX_CONST GX_CHAR *string, INT length);
3721 #endif
3722 UINT _gx_canvas_text_draw_ext(GX_VALUE x_start, GX_VALUE y_start, GX_CONST GX_STRING *string);
3723 
3724 UINT _gx_checkbox_create(GX_CHECKBOX *checkbox,
3725                          GX_CONST GX_CHAR *name,
3726                          GX_WIDGET *parent,
3727                          GX_RESOURCE_ID text_id, ULONG style, USHORT checkbox_id,
3728                          GX_CONST GX_RECTANGLE *size);
3729 VOID _gx_checkbox_draw(GX_CHECKBOX *checkbox);
3730 UINT _gx_checkbox_event_process(GX_CHECKBOX *checkbox, GX_EVENT *event_ptr);
3731 UINT _gx_checkbox_pixelmap_set(GX_CHECKBOX *button,  GX_RESOURCE_ID unchecked_id, GX_RESOURCE_ID checked_id,
3732                                GX_RESOURCE_ID unchecked_disabled_id, GX_RESOURCE_ID checked_disabled_id);
3733 UINT _gx_checkbox_select(GX_CHECKBOX *checkbox);
3734 
3735 UINT _gx_circular_gauge_angle_get(GX_CIRCULAR_GAUGE *circular_gauge, INT *angle);
3736 UINT _gx_circular_gauge_angle_set(GX_CIRCULAR_GAUGE *circular_gauge, INT angle);
3737 UINT _gx_circular_gauge_animation_set(GX_CIRCULAR_GAUGE *circular_gauge, INT steps, INT delay);
3738 VOID _gx_circular_gauge_background_draw(GX_CIRCULAR_GAUGE *gauge);
3739 UINT _gx_circular_gauge_create(GX_CIRCULAR_GAUGE *circular_gauge,
3740                                GX_CONST GX_CHAR *name,
3741                                GX_WIDGET *parent,
3742                                GX_CIRCULAR_GAUGE_INFO *circular_gauge_info,
3743                                GX_RESOURCE_ID background,
3744                                ULONG style,
3745                                USHORT circular_gauge_id,
3746                                GX_VALUE xpos, GX_VALUE ypos);
3747 VOID _gx_circular_gauge_draw(GX_CIRCULAR_GAUGE *circular_gauge);
3748 UINT _gx_circular_gauge_event_process(GX_CIRCULAR_GAUGE *circular_gauge, GX_EVENT *event_ptr);
3749 
3750 UINT _gx_context_brush_default(GX_DRAW_CONTEXT *context);
3751 UINT _gx_context_brush_define(GX_RESOURCE_ID line_color_id, GX_RESOURCE_ID fill_color_id, UINT style);
3752 UINT _gx_context_brush_get(GX_BRUSH **return_brush);
3753 UINT _gx_context_brush_pattern_set(ULONG pattern);
3754 UINT _gx_context_brush_set(GX_BRUSH *brush);
3755 UINT _gx_context_brush_style_set(UINT style);
3756 UINT _gx_context_brush_width_set(UINT width);
3757 UINT _gx_context_color_get(GX_RESOURCE_ID color_id, GX_COLOR *return_color);
3758 UINT _gx_context_fill_color_set(GX_RESOURCE_ID fill_color_id);
3759 UINT _gx_context_font_get(GX_RESOURCE_ID color_id, GX_FONT **return_font);
3760 UINT _gx_context_font_set(GX_RESOURCE_ID font_id);
3761 UINT _gx_context_line_color_set(GX_RESOURCE_ID line_color_id);
3762 UINT _gx_context_pixelmap_get(GX_RESOURCE_ID pixelmap_id, GX_PIXELMAP **return_pixelmap);
3763 UINT _gx_context_pixelmap_set(GX_RESOURCE_ID pixelmap_id);
3764 UINT _gx_context_raw_brush_define(GX_COLOR line_color, GX_COLOR fill_color, UINT style);
3765 UINT _gx_context_raw_fill_color_set(GX_COLOR line_color);
3766 UINT _gx_context_raw_line_color_set(GX_COLOR line_color);
3767 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3768 UINT _gx_context_string_get(GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
3769 #endif
3770 UINT _gx_context_string_get_ext(GX_RESOURCE_ID string_id, GX_STRING *return_string);
3771 
3772 UINT _gx_display_active_language_set(GX_DISPLAY *display, GX_UBYTE language);
3773 UINT _gx_display_color_set(GX_DISPLAY *display, GX_RESOURCE_ID resource_id, GX_COLOR new_color);
3774 UINT _gx_display_color_table_set(GX_DISPLAY *display, GX_COLOR *color_table, INT number_of_colors);
3775 UINT _gx_display_create(GX_DISPLAY *display, GX_CONST GX_CHAR *name, UINT (*display_driver_setup)(GX_DISPLAY *), GX_VALUE xres, GX_VALUE yres);
3776 UINT _gx_display_delete(GX_DISPLAY *display, VOID (*display_driver_cleanup)(GX_DISPLAY *));
3777 UINT _gx_display_font_table_set(GX_DISPLAY *display, GX_FONT **font_table, UINT number_of_fonts);
3778 
3779 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3780 UINT _gx_display_language_table_get(GX_DISPLAY *display, GX_CHAR ****table, GX_UBYTE *language_count, UINT *string_count);
3781 UINT _gx_display_language_table_set(GX_DISPLAY *display, GX_CHAR ***table, GX_UBYTE num_languages, UINT number_of_strings);
3782 #endif
3783 UINT _gx_display_language_table_get_ext(GX_DISPLAY *display, GX_STRING ***table, GX_UBYTE *language_count, UINT *string_count);
3784 UINT _gx_display_language_table_set_ext(GX_DISPLAY *display, GX_CONST GX_STRING **table, GX_UBYTE num_languages, UINT number_of_strings);
3785 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
3786 UINT _gx_display_language_direction_table_set(GX_DISPLAY *display, GX_CONST GX_UBYTE *language_direction_table, GX_UBYTE num_languages);
3787 #endif
3788 UINT _gx_display_pixelmap_table_set(GX_DISPLAY *display, GX_PIXELMAP **pixelmap_table, UINT number_of_pixelmaps);
3789 
3790 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3791 UINT _gx_display_string_get(GX_DISPLAY *display, GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
3792 UINT _gx_display_string_table_get(GX_DISPLAY *display, GX_UBYTE language, GX_CHAR ***table, UINT *size);
3793 #endif
3794 UINT _gx_display_string_get_ext(GX_DISPLAY *display, GX_RESOURCE_ID string_id, GX_STRING *return_string);
3795 UINT _gx_display_string_table_get_ext(GX_DISPLAY *display, GX_UBYTE language, GX_STRING **table, UINT *size);
3796 
3797 UINT _gx_display_theme_install(GX_DISPLAY *display, GX_CONST GX_THEME *theme_ptr);
3798 
3799 UINT _gx_drop_list_close(GX_DROP_LIST *drop_list);
3800 UINT _gx_drop_list_create(GX_DROP_LIST *drop_list,
3801                           GX_CONST GX_CHAR *name,
3802                           GX_WIDGET *parent,
3803                           INT total_rows, INT open_height,
3804                           VOID (*callback)(GX_VERTICAL_LIST *, GX_WIDGET *, INT),
3805                           ULONG style, USHORT drop_list_id,
3806                           GX_CONST GX_RECTANGLE *size);
3807 UINT _gx_drop_list_event_process(GX_DROP_LIST *list, GX_EVENT *event_ptr);
3808 UINT _gx_drop_list_open(GX_DROP_LIST *list);
3809 UINT _gx_drop_list_pixelmap_set(GX_DROP_LIST *drop_list, GX_RESOURCE_ID pixelmap_id);
3810 UINT _gx_drop_list_popup_get(GX_DROP_LIST *box, GX_VERTICAL_LIST **return_list);
3811 
3812 UINT _gx_generic_scroll_wheel_create(GX_GENERIC_SCROLL_WHEEL *wheel,
3813                                      GX_CONST GX_CHAR *name,
3814                                      GX_WIDGET *parent,
3815                                      INT total_rows,
3816                                      VOID (*callback)(GX_GENERIC_SCROLL_WHEEL *, GX_WIDGET *, INT),
3817                                      ULONG style,
3818                                      USHORT id,
3819                                      GX_CONST GX_RECTANGLE *size);
3820 UINT _gx_generic_scroll_wheel_children_position(GX_GENERIC_SCROLL_WHEEL *wheel);
3821 UINT _gx_generic_scroll_wheel_event_process(GX_GENERIC_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
3822 UINT _gx_generic_scroll_wheel_row_height_set(GX_GENERIC_SCROLL_WHEEL *wheel, GX_VALUE row_height);
3823 UINT _gx_generic_scroll_wheel_total_rows_set(GX_GENERIC_SCROLL_WHEEL *wheel, INT count);
3824 
3825 UINT _gx_horizontal_list_children_position(GX_HORIZONTAL_LIST *horizontal_list);
3826 UINT _gx_horizontal_list_create(GX_HORIZONTAL_LIST *horizontal_list,
3827                                 GX_CONST GX_CHAR *name,
3828                                 GX_WIDGET *parent,
3829                                 INT total_columns,
3830                                 VOID (*callback)(GX_HORIZONTAL_LIST *, GX_WIDGET *, INT),
3831                                 ULONG style, USHORT horizontal_list_id,
3832                                 GX_CONST GX_RECTANGLE *size);
3833 UINT _gx_horizontal_list_event_process(GX_HORIZONTAL_LIST *list, GX_EVENT *event_ptr);
3834 UINT _gx_horizontal_list_page_index_set(GX_HORIZONTAL_LIST *list, INT index);
3835 UINT _gx_horizontal_list_selected_index_get(GX_HORIZONTAL_LIST *horizontal_list, INT *return_index);
3836 UINT _gx_horizontal_list_selected_set(GX_HORIZONTAL_LIST *horizontal_list, INT index);
3837 UINT _gx_horizontal_list_selected_widget_get(GX_HORIZONTAL_LIST *horizontal_list, GX_WIDGET **return_list_entry);
3838 UINT _gx_horizontal_list_total_columns_set(GX_HORIZONTAL_LIST *horizontal_list, INT count);
3839 
3840 UINT _gx_horizontal_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name,
3841                                      GX_WINDOW *parent, GX_SCROLLBAR_APPEARANCE *appearance, ULONG style);
3842 
3843 VOID _gx_icon_background_draw(GX_ICON *icon);
3844 UINT _gx_icon_button_create(GX_ICON_BUTTON *button,
3845                             GX_CONST GX_CHAR *name,
3846                             GX_WIDGET *parent,
3847                             GX_RESOURCE_ID icon_id,
3848                             ULONG style, USHORT icon_button_id,
3849                             GX_CONST GX_RECTANGLE *size);
3850 VOID _gx_icon_button_draw(GX_ICON_BUTTON *button);
3851 UINT _gx_icon_button_pixelmap_set(GX_ICON_BUTTON *button, GX_RESOURCE_ID icon_id);
3852 UINT _gx_icon_create(GX_ICON *icon,
3853                      GX_CONST GX_CHAR *name,
3854                      GX_WIDGET *parent,
3855                      GX_RESOURCE_ID pixelmap_id, ULONG style,
3856                      USHORT icon_id, GX_VALUE x, GX_VALUE y);
3857 VOID _gx_icon_draw(GX_ICON *icon);
3858 UINT _gx_icon_event_process(GX_ICON *icon, GX_EVENT *event_ptr);
3859 UINT _gx_icon_pixelmap_set(GX_ICON *icon, GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id);
3860 
3861 UINT _gx_image_reader_create(GX_IMAGE_READER *image_reader,
3862                              GX_CONST GX_UBYTE *read_data,
3863                              INT read_data_size,
3864                              GX_UBYTE color_format,
3865                              GX_UBYTE mode);
3866 UINT _gx_image_reader_palette_set(GX_IMAGE_READER *image_reader, GX_COLOR *pal, UINT palsize);
3867 UINT _gx_image_reader_start(GX_IMAGE_READER *image_reader, GX_PIXELMAP *outmap);
3868 
3869 VOID _gx_line_chart_axis_draw(GX_LINE_CHART *chart);
3870 UINT _gx_line_chart_create(GX_LINE_CHART *chart,
3871                            GX_CONST GX_CHAR *name,
3872                            GX_WIDGET *parent,
3873                            GX_CONST GX_LINE_CHART_INFO *info,
3874                            ULONG style,
3875                            USHORT chart_id,
3876                            GX_CONST GX_RECTANGLE *size);
3877 VOID _gx_line_chart_data_draw(GX_LINE_CHART *chart);
3878 VOID _gx_line_chart_draw(GX_LINE_CHART *chart);
3879 UINT _gx_line_chart_update(GX_LINE_CHART *chart, INT *data, INT data_count);
3880 UINT _gx_line_chart_y_scale_calculate(GX_LINE_CHART *chart, INT *return_val);
3881 
3882 UINT _gx_menu_create(GX_MENU *menu, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
3883                      GX_RESOURCE_ID text_id, GX_RESOURCE_ID fill_id,
3884                      ULONG style, USHORT menu_id, GX_CONST GX_RECTANGLE *size);
3885 VOID _gx_menu_draw(GX_MENU *menu);
3886 UINT _gx_menu_event_process(GX_MENU *menu, GX_EVENT *event_ptr);
3887 UINT _gx_menu_insert(GX_MENU *menu, GX_WIDGET *widget);
3888 UINT _gx_menu_remove(GX_MENU *menu, GX_WIDGET *widget);
3889 UINT _gx_menu_remove(GX_MENU *menu, GX_WIDGET *widget);
3890 VOID _gx_menu_text_draw(GX_MENU *menu);
3891 UINT _gx_menu_text_offset_set(GX_MENU *menu, GX_VALUE x_offset, GX_VALUE y_offset);
3892 
3893 UINT _gx_multi_line_text_button_create(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_CHAR *name,
3894                                        GX_WIDGET *parent, GX_RESOURCE_ID text_id, ULONG style, USHORT Id,
3895                                        GX_CONST GX_RECTANGLE *size);
3896 VOID _gx_multi_line_text_button_draw(GX_MULTI_LINE_TEXT_BUTTON *button);
3897 UINT _gx_multi_line_text_button_event_process(GX_MULTI_LINE_TEXT_BUTTON *button, GX_EVENT *event_ptr);
3898 VOID _gx_multi_line_text_button_text_draw(GX_MULTI_LINE_TEXT_BUTTON *button);
3899 UINT _gx_multi_line_text_button_text_id_set(GX_MULTI_LINE_TEXT_BUTTON *button, GX_RESOURCE_ID string_id);
3900 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3901 UINT _gx_multi_line_text_button_text_set(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_CHAR *text);
3902 #endif
3903 UINT _gx_multi_line_text_button_text_set_ext(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_STRING text);
3904 
3905 UINT _gx_multi_line_text_input_backspace(GX_MULTI_LINE_TEXT_INPUT *text_input);
3906 UINT _gx_multi_line_text_input_buffer_clear(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr);
3907 UINT _gx_multi_line_text_input_buffer_get(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, GX_CHAR **buffer_address,
3908                                           UINT *content_size, UINT *buffer_size);
3909 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3910 UINT _gx_multi_line_text_input_char_insert(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_UBYTE *str, UINT str_size);
3911 #endif
3912 UINT _gx_multi_line_text_input_char_insert_ext(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_CONST GX_STRING *str);
3913 UINT _gx_multi_line_text_input_create(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr,
3914                                       GX_CONST GX_CHAR *name_ptr, GX_WIDGET *parent,
3915                                       GX_CHAR *input_buffer, UINT buffer_size,
3916                                       ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size);
3917 UINT _gx_multi_line_text_input_cursor_pos_get(GX_MULTI_LINE_TEXT_INPUT *input, GX_POINT *cursor_pos);
3918 UINT _gx_multi_line_text_input_delete(GX_MULTI_LINE_TEXT_INPUT *text_input);
3919 UINT _gx_multi_line_text_input_down_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
3920 UINT _gx_multi_line_text_input_end(GX_MULTI_LINE_TEXT_INPUT *text_input);
3921 UINT _gx_multi_line_text_input_event_process(GX_MULTI_LINE_TEXT_INPUT *input, GX_EVENT *event_ptr);
3922 UINT _gx_multi_line_text_input_style_add(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, ULONG cursor_type);
3923 UINT _gx_multi_line_text_input_style_remove(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, ULONG cursor_type);
3924 UINT _gx_multi_line_text_input_style_set(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, ULONG cursor_type);
3925 UINT _gx_multi_line_text_input_fill_color_set(GX_MULTI_LINE_TEXT_INPUT *view,
3926                                               GX_RESOURCE_ID normal_id,
3927                                               GX_RESOURCE_ID selected_id,
3928                                               GX_RESOURCE_ID disabled_id,
3929                                               GX_RESOURCE_ID readonly_id);
3930 UINT _gx_multi_line_text_input_home(GX_MULTI_LINE_TEXT_INPUT *text_input);
3931 UINT _gx_multi_line_text_input_left_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
3932 UINT _gx_multi_line_text_input_right_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
3933 UINT _gx_multi_line_text_input_text_color_set(GX_MULTI_LINE_TEXT_INPUT *view,
3934                                               GX_RESOURCE_ID normal_id,
3935                                               GX_RESOURCE_ID selected_id,
3936                                               GX_RESOURCE_ID disabled_id,
3937                                               GX_RESOURCE_ID readonly_id);
3938 UINT _gx_multi_line_text_input_text_select(GX_MULTI_LINE_TEXT_INPUT *input, UINT start_index, UINT end_index);
3939 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3940 UINT _gx_multi_line_text_input_text_set(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_CONST GX_CHAR *text);
3941 #endif
3942 UINT _gx_multi_line_text_input_text_set_ext(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_CONST GX_STRING *text);
3943 UINT _gx_multi_line_text_input_up_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
3944 
3945 UINT _gx_multi_line_text_view_create(GX_MULTI_LINE_TEXT_VIEW *text_view_ptr,
3946                                      GX_CONST GX_CHAR *name_ptr, GX_WIDGET *parent,
3947                                      GX_RESOURCE_ID text_id, ULONG style, USHORT Id,
3948                                      GX_CONST GX_RECTANGLE *size);
3949 VOID _gx_multi_line_text_view_draw(GX_MULTI_LINE_TEXT_VIEW *view);
3950 UINT _gx_multi_line_text_view_event_process(GX_MULTI_LINE_TEXT_VIEW *view, GX_EVENT *event_ptr);
3951 UINT _gx_multi_line_text_view_font_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_RESOURCE_ID font_id);
3952 UINT _gx_multi_line_text_view_line_space_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_BYTE line_space);
3953 UINT _gx_multi_line_text_view_scroll_info_get(GX_MULTI_LINE_TEXT_VIEW *view, ULONG style, GX_SCROLL_INFO *return_scroll_info);
3954 UINT _gx_multi_line_text_view_text_color_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id, GX_RESOURCE_ID disabled_id);
3955 UINT _gx_multi_line_text_view_text_id_set(GX_MULTI_LINE_TEXT_VIEW *text_view_ptr, GX_RESOURCE_ID text_id);
3956 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
3957 UINT _gx_multi_line_text_view_text_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_CONST GX_CHAR *text);
3958 #endif
3959 UINT _gx_multi_line_text_view_text_set_ext(GX_MULTI_LINE_TEXT_VIEW *view, GX_CONST GX_STRING *text);
3960 UINT _gx_multi_line_text_view_whitespace_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_UBYTE whitespace);
3961 
3962 UINT _gx_rich_text_view_create(GX_RICH_TEXT_VIEW *rich_view,
3963                                GX_CONST GX_CHAR *name,
3964                                GX_WIDGET *parent,
3965                                GX_RESOURCE_ID text_id,
3966                                GX_RICH_TEXT_FONTS *fonts,
3967                                ULONG style,
3968                                USHORT id,
3969                                GX_CONST GX_RECTANGLE *size);
3970 VOID _gx_rich_text_view_draw(GX_RICH_TEXT_VIEW *text_view);
3971 VOID _gx_rich_text_view_text_draw(GX_RICH_TEXT_VIEW *text_view);
3972 UINT _gx_rich_text_view_fonts_set(GX_RICH_TEXT_VIEW *rich_view, GX_RICH_TEXT_FONTS *fonts);
3973 
3974 UINT _gx_numeric_pixelmap_prompt_create(GX_NUMERIC_PIXELMAP_PROMPT *prompt,
3975                                         GX_CONST GX_CHAR *name, GX_WIDGET *parent,
3976                                         GX_RESOURCE_ID text_id, GX_RESOURCE_ID fill_id,
3977                                         ULONG style, USHORT pixelmap_prompt_id,
3978                                         GX_CONST GX_RECTANGLE *size);
3979 UINT _gx_numeric_pixelmap_prompt_format_function_set(GX_NUMERIC_PIXELMAP_PROMPT *prompt, VOID (*format_func)(GX_NUMERIC_PIXELMAP_PROMPT *, INT));
3980 UINT _gx_numeric_pixelmap_prompt_value_set(GX_NUMERIC_PIXELMAP_PROMPT *prompt, INT value);
3981 
3982 UINT _gx_numeric_prompt_create(GX_NUMERIC_PROMPT *prompt, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
3983                                GX_RESOURCE_ID text_id, ULONG style, USHORT prompt_id, GX_CONST GX_RECTANGLE *size);
3984 UINT _gx_numeric_prompt_format_function_set(GX_NUMERIC_PROMPT *prompt, VOID (*format_func)(GX_NUMERIC_PROMPT *, INT));
3985 UINT _gx_numeric_prompt_value_set(GX_NUMERIC_PROMPT *prompt, INT value);
3986 
3987 UINT _gx_numeric_scroll_wheel_create(GX_NUMERIC_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
3988                                      INT start_val, INT end_val,
3989                                      ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size);
3990 UINT _gx_numeric_scroll_wheel_range_set(GX_NUMERIC_SCROLL_WHEEL *wheel, INT start_val, INT end_val);
3991 
3992 UINT _gx_pixelmap_button_create(GX_PIXELMAP_BUTTON *button,
3993                                 GX_CONST GX_CHAR *name,
3994                                 GX_WIDGET *parent, GX_RESOURCE_ID normal_id,
3995                                 GX_RESOURCE_ID selected_id, GX_RESOURCE_ID disabled_id,
3996                                 ULONG style, USHORT pixelmap_button_id,
3997                                 GX_CONST GX_RECTANGLE *size);
3998 VOID _gx_pixelmap_button_draw(GX_PIXELMAP_BUTTON *button);
3999 UINT _gx_pixelmap_button_event_process(GX_PIXELMAP_BUTTON *button, GX_EVENT *event_ptr);
4000 UINT _gx_pixelmap_button_pixelmap_set(GX_PIXELMAP_BUTTON *button, GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id, GX_RESOURCE_ID disabled_id);
4001 
4002 UINT _gx_pixelmap_prompt_create(GX_PIXELMAP_PROMPT *prompt,
4003                                 GX_CONST GX_CHAR *name, GX_WIDGET *parent, GX_RESOURCE_ID text_id,
4004                                 GX_RESOURCE_ID normal_fill_id, ULONG style, USHORT prompt_id,
4005                                 GX_CONST GX_RECTANGLE *size);
4006 VOID _gx_pixelmap_prompt_draw(GX_PIXELMAP_PROMPT *prompt);
4007 UINT _gx_pixelmap_prompt_pixelmap_set(GX_PIXELMAP_PROMPT *prompt,
4008                                       GX_RESOURCE_ID normal_left_id,
4009                                       GX_RESOURCE_ID normal_fill_id,
4010                                       GX_RESOURCE_ID normal_right_id,
4011                                       GX_RESOURCE_ID selected_left_id,
4012                                       GX_RESOURCE_ID selected_fill_id,
4013                                       GX_RESOURCE_ID selected_right_id);
4014 
4015 UINT _gx_pixelmap_slider_create(GX_PIXELMAP_SLIDER *slider,
4016                                 GX_CONST GX_CHAR *name, GX_WIDGET *parent, GX_SLIDER_INFO *info,
4017                                 GX_PIXELMAP_SLIDER_INFO *pixelmap_info,
4018                                 ULONG style, USHORT pixelmap_slider_id,
4019                                 GX_CONST GX_RECTANGLE *size);
4020 VOID _gx_pixelmap_slider_draw(GX_PIXELMAP_SLIDER *slider);
4021 UINT _gx_pixelmap_slider_event_process(GX_PIXELMAP_SLIDER *slider, GX_EVENT *event_ptr);
4022 UINT _gx_pixelmap_slider_pixelmap_set(GX_PIXELMAP_SLIDER *slider, GX_PIXELMAP_SLIDER_INFO *info);
4023 
4024 VOID _gx_progress_bar_background_draw(GX_PROGRESS_BAR *progress_bar);
4025 UINT _gx_progress_bar_create(GX_PROGRESS_BAR *progress_bar, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
4026                              GX_PROGRESS_BAR_INFO *progress_bar_info, ULONG style,
4027                              USHORT progress_bar_id, GX_CONST GX_RECTANGLE *size);
4028 VOID _gx_progress_bar_draw(GX_PROGRESS_BAR *progress_bar);
4029 UINT _gx_progress_bar_event_process(GX_PROGRESS_BAR *progress_bar, GX_EVENT *event_ptr);
4030 UINT _gx_progress_bar_font_set(GX_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID font_id);
4031 UINT _gx_progress_bar_info_set(GX_PROGRESS_BAR *progress_bar, GX_PROGRESS_BAR_INFO *info);
4032 UINT _gx_progress_bar_pixelmap_set(GX_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID pixelmap);
4033 UINT _gx_progress_bar_range_set(GX_PROGRESS_BAR *progress_bar, INT min_value, INT max_value);
4034 UINT _gx_progress_bar_text_color_set(GX_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID normal_text_color_id,
4035                                      GX_RESOURCE_ID selected_text_color_id, GX_RESOURCE_ID disabled_text_color_id);
4036 UINT _gx_progress_bar_value_set(GX_PROGRESS_BAR *progress_bar, INT new_value);
4037 
4038 UINT _gx_prompt_create(GX_PROMPT *prompt, GX_CONST GX_CHAR *name,
4039                        GX_WIDGET *parent, GX_RESOURCE_ID text_id, ULONG style,
4040                        USHORT prompt_id, GX_CONST GX_RECTANGLE *size);
4041 UINT _gx_prompt_event_process(GX_PROMPT *prompt, GX_EVENT *event_ptr);
4042 VOID _gx_prompt_draw(GX_PROMPT *prompt);
4043 UINT _gx_prompt_font_set(GX_PROMPT *prompt, GX_RESOURCE_ID fontid);
4044 UINT _gx_prompt_text_color_set(GX_PROMPT *prompt,
4045                                GX_RESOURCE_ID normal_text_color_id,
4046                                GX_RESOURCE_ID selected_text_color_id,
4047                                GX_RESOURCE_ID disabled_text_color_id);
4048 VOID _gx_prompt_text_draw(GX_PROMPT *prompt);
4049 
4050 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4051 UINT _gx_prompt_text_get(GX_PROMPT *prompt, GX_CONST GX_CHAR **return_text);
4052 #endif
4053 UINT _gx_prompt_text_get_ext(GX_PROMPT *prompt, GX_STRING *return_text);
4054 UINT _gx_prompt_text_id_set(GX_PROMPT *prompt, GX_RESOURCE_ID string_id);
4055 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4056 UINT _gx_prompt_text_set(GX_PROMPT *prompt, GX_CONST GX_CHAR *text);
4057 #endif
4058 UINT _gx_prompt_text_set_ext(GX_PROMPT *prompt, GX_CONST GX_STRING *text);
4059 
4060 UINT _gx_radial_progress_bar_anchor_set(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_VALUE angle);
4061 VOID _gx_radial_progress_bar_background_draw(GX_RADIAL_PROGRESS_BAR *progress_bar);
4062 UINT _gx_radial_progress_bar_create(GX_RADIAL_PROGRESS_BAR *progress_bar,
4063                                     GX_CONST GX_CHAR *name,
4064                                     GX_WIDGET *parent,
4065                                     GX_RADIAL_PROGRESS_BAR_INFO *progress_bar_info,
4066                                     ULONG style,
4067                                     USHORT progress_bar_id);
4068 VOID _gx_radial_progress_bar_draw(GX_RADIAL_PROGRESS_BAR *progress_bar);
4069 UINT _gx_radial_progress_bar_event_process(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_EVENT *event_ptr);
4070 UINT _gx_radial_progress_bar_font_set(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID font_id);
4071 UINT _gx_radial_progress_bar_info_set(GX_RADIAL_PROGRESS_BAR *bar, GX_RADIAL_PROGRESS_BAR_INFO *info);
4072 UINT _gx_radial_progress_bar_text_color_set(GX_RADIAL_PROGRESS_BAR *progress_bar,
4073                                             GX_RESOURCE_ID normal_text_color_id,
4074                                             GX_RESOURCE_ID selected_text_color_id,
4075                                             GX_RESOURCE_ID disabled_text_color_id);
4076 VOID _gx_radial_progress_bar_text_draw(GX_RADIAL_PROGRESS_BAR *bar);
4077 UINT _gx_radial_progress_bar_value_set(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_VALUE new_value);
4078 
4079 UINT _gx_radial_slider_anchor_angles_set(GX_RADIAL_SLIDER *slider, GX_VALUE *anchor_angles, USHORT anchor_count);
4080 UINT _gx_radial_slider_animation_set(GX_RADIAL_SLIDER *slider, USHORT steps, USHORT delay, USHORT animation_style,
4081                                      VOID (*animation_update_callback)(GX_RADIAL_SLIDER *slider));
4082 UINT _gx_radial_slider_animation_start(GX_RADIAL_SLIDER *slider, GX_VALUE new_value);
4083 UINT _gx_radial_slider_create(GX_RADIAL_SLIDER *slider, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
4084                               GX_RADIAL_SLIDER_INFO *info, ULONG style, USHORT slider_id, GX_CONST GX_RECTANGLE *size);
4085 VOID _gx_radial_slider_draw(GX_RADIAL_SLIDER *slider);
4086 UINT _gx_radial_slider_event_process(GX_RADIAL_SLIDER *slider, GX_EVENT *event_ptr);
4087 UINT _gx_radial_slider_info_get(GX_RADIAL_SLIDER *slider, GX_RADIAL_SLIDER_INFO **info);
4088 UINT _gx_radial_slider_info_set(GX_RADIAL_SLIDER *slider,  GX_RADIAL_SLIDER_INFO *info);
4089 UINT _gx_radial_slider_pixelmap_set(GX_RADIAL_SLIDER *slider, GX_RESOURCE_ID background_pixelmap, GX_RESOURCE_ID needle_pixelmap);
4090 UINT _gx_radial_slider_angle_set(GX_RADIAL_SLIDER *slider, GX_VALUE new_angle);
4091 
4092 UINT _gx_radio_button_create(GX_RADIO_BUTTON *button,
4093                              GX_CONST GX_CHAR *name, GX_WIDGET *parent, GX_RESOURCE_ID text_id,
4094                              ULONG style, USHORT radio_button_id, GX_CONST GX_RECTANGLE *size);
4095 VOID _gx_radio_button_draw(GX_RADIO_BUTTON *button);
4096 UINT _gx_radio_button_pixelmap_set(GX_RADIO_BUTTON *button, GX_RESOURCE_ID off_id, GX_RESOURCE_ID on_id,
4097                                    GX_RESOURCE_ID off_disabled_id, GX_RESOURCE_ID on_disabled_id);
4098 
4099 UINT _gx_screen_stack_create(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET **memory, INT size);
4100 UINT _gx_screen_stack_pop(GX_SCREEN_STACK_CONTROL *control);
4101 UINT _gx_screen_stack_push(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET *screen, GX_WIDGET *new_screen);
4102 UINT _gx_screen_stack_reset(GX_SCREEN_STACK_CONTROL *control);
4103 
4104 UINT _gx_scroll_thumb_create(GX_SCROLL_THUMB *scroll_thumb, GX_SCROLLBAR *parent, ULONG style);
4105 VOID _gx_scroll_thumb_draw(GX_SCROLL_THUMB *scroll_thumb);
4106 UINT _gx_scroll_thumb_event_process(GX_SCROLL_THUMB *scroll_thumb, GX_EVENT *event_ptr);
4107 
4108 VOID _gx_scrollbar_draw(GX_SCROLLBAR *scrollbar);
4109 UINT _gx_scrollbar_event_process(GX_SCROLLBAR *scrollbar, GX_EVENT *event_ptr);
4110 UINT _gx_scrollbar_limit_check(GX_SCROLLBAR *scrollbar);
4111 UINT _gx_scrollbar_reset(GX_SCROLLBAR *scrollbar, GX_SCROLL_INFO *info);
4112 UINT _gx_scrollbar_value_set(GX_SCROLLBAR *scrollbar, INT value);
4113 
4114 UINT _gx_scroll_wheel_create(GX_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT total_rows,
4115                              ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size);
4116 UINT _gx_scroll_wheel_event_process(GX_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
4117 UINT _gx_scroll_wheel_gradient_alpha_set(GX_SCROLL_WHEEL *wheel, GX_UBYTE start_alpha, GX_UBYTE end_alpha);
4118 UINT _gx_scroll_wheel_row_height_set(GX_SCROLL_WHEEL *wheel, GX_VALUE row_height);
4119 UINT _gx_scroll_wheel_selected_background_set(GX_SCROLL_WHEEL *wheel, GX_RESOURCE_ID selected_bg);
4120 UINT _gx_scroll_wheel_selected_get(GX_SCROLL_WHEEL *wheel, INT *row);
4121 UINT _gx_scroll_wheel_selected_set(GX_SCROLL_WHEEL *wheel, INT row);
4122 UINT _gx_scroll_wheel_speed_set(GX_SCROLL_WHEEL *wheel, GX_FIXED_VAL start_speed_rate, GX_FIXED_VAL end_speed_rate, GX_VALUE max_steps, GX_VALUE delay);
4123 UINT _gx_scroll_wheel_total_rows_set(GX_SCROLL_WHEEL *wheel, INT total_rows);
4124 
4125 UINT _gx_single_line_text_input_backspace(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4126 UINT _gx_single_line_text_input_buffer_clear(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4127 UINT _gx_single_line_text_input_buffer_get(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, GX_CHAR **buffer_address,
4128                                            UINT *content_size, UINT *buffer_size);
4129 UINT _gx_single_line_text_input_character_delete(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4130 UINT _gx_single_line_text_input_character_insert(GX_SINGLE_LINE_TEXT_INPUT *text_input, GX_UBYTE *str, UINT str_size);
4131 UINT _gx_single_line_text_input_create(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr,
4132                                        GX_CONST GX_CHAR *name, GX_WIDGET *parent, GX_CHAR *input_buffer,
4133                                        UINT buffer_size, UINT style, USHORT text_input_id,
4134                                        GX_CONST GX_RECTANGLE *size);
4135 VOID _gx_single_line_text_input_draw(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4136 UINT _gx_single_line_text_input_draw_position_get(GX_SINGLE_LINE_TEXT_INPUT *input, GX_VALUE *xpos, GX_VALUE *ypos);
4137 UINT _gx_single_line_text_input_end(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4138 UINT _gx_single_line_text_input_event_process(GX_SINGLE_LINE_TEXT_INPUT *text_input, GX_EVENT *event_ptr);
4139 UINT _gx_single_line_text_input_fill_color_set(GX_SINGLE_LINE_TEXT_INPUT *input,
4140                                                GX_RESOURCE_ID normal_fill_color_id,
4141                                                GX_RESOURCE_ID selected_fill_color_id,
4142                                                GX_RESOURCE_ID disabled_fill_color_id,
4143                                                GX_RESOURCE_ID readonly_fill_color_id);
4144 UINT _gx_single_line_text_input_home(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4145 UINT _gx_single_line_text_input_left_arrow(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4146 UINT _gx_single_line_text_input_position_get(GX_SINGLE_LINE_TEXT_INPUT *text_input, INT pixel_position);
4147 UINT _gx_single_line_text_input_right_arrow(GX_SINGLE_LINE_TEXT_INPUT *text_input);
4148 UINT _gx_single_line_text_input_style_add(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, ULONG style);
4149 UINT _gx_single_line_text_input_style_remove(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, ULONG style);
4150 UINT _gx_single_line_text_input_style_set(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, ULONG style);
4151 UINT _gx_single_line_text_input_text_color_set(GX_SINGLE_LINE_TEXT_INPUT *input,
4152                                                GX_RESOURCE_ID normal_text_color_id,
4153                                                GX_RESOURCE_ID selected_text_color_id,
4154                                                GX_RESOURCE_ID disabled_text_color_id,
4155                                                GX_RESOURCE_ID readonly_text_color_id);
4156 UINT _gx_single_line_text_input_text_select(GX_SINGLE_LINE_TEXT_INPUT *input, UINT start_index, UINT end_index);
4157 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4158 UINT _gx_single_line_text_input_text_set(GX_SINGLE_LINE_TEXT_INPUT *input, GX_CONST GX_CHAR *text);
4159 #endif
4160 UINT _gx_single_line_text_input_text_set_ext(GX_SINGLE_LINE_TEXT_INPUT *input, GX_CONST GX_STRING *text);
4161 
4162 UINT _gx_slider_create(GX_SLIDER *slider, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
4163                        INT tick_count, GX_SLIDER_INFO *slider_info, ULONG style, USHORT slider_id,
4164                        GX_CONST GX_RECTANGLE *size);
4165 VOID _gx_slider_draw(GX_SLIDER *slider);
4166 UINT _gx_slider_event_process(GX_SLIDER *slider, GX_EVENT *event_ptr);
4167 UINT _gx_slider_info_set(GX_SLIDER *slider, GX_SLIDER_INFO *info);
4168 VOID _gx_slider_needle_draw(GX_SLIDER *slider);
4169 UINT _gx_slider_needle_position_get(GX_SLIDER *slider, GX_SLIDER_INFO *slider_info, GX_RECTANGLE *return_position);
4170 VOID _gx_slider_tickmarks_draw(GX_SLIDER *slider);
4171 UINT _gx_slider_travel_get(GX_SLIDER *widget, GX_SLIDER_INFO *info, INT *mintravel, INT *maxtravel);
4172 UINT _gx_slider_value_calculate(GX_SLIDER *slider, GX_SLIDER_INFO *info, INT newpos);
4173 UINT _gx_slider_value_set(GX_SLIDER *slider, GX_SLIDER_INFO *info, INT new_value);
4174 
4175 UINT _gx_sprite_create(GX_SPRITE *sprite, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
4176                        GX_SPRITE_FRAME *frame_list, USHORT framecount,
4177                        ULONG style, USHORT sprite_id, GX_CONST GX_RECTANGLE *size);
4178 UINT _gx_sprite_current_frame_set(GX_SPRITE *sprite, USHORT frame);
4179 UINT _gx_sprite_frame_list_set(GX_SPRITE *sprite, GX_SPRITE_FRAME *frame_list, USHORT frame_count);
4180 UINT _gx_sprite_start(GX_SPRITE *sprite, USHORT start_frame);
4181 UINT _gx_sprite_stop(GX_SPRITE *sprite);
4182 
4183 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4184 UINT _gx_string_scroll_wheel_create(GX_STRING_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT total_rows,
4185                                     GX_CONST GX_CHAR **string_list,
4186                                     ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size);
4187 #endif
4188 UINT _gx_string_scroll_wheel_create_ext(GX_STRING_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT total_rows,
4189                                         GX_CONST GX_STRING *string_list,
4190                                         ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size);
4191 UINT _gx_string_scroll_wheel_event_process(GX_STRING_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
4192 UINT _gx_string_scroll_wheel_string_id_list_set(GX_STRING_SCROLL_WHEEL *wheel,
4193                                                 GX_CONST GX_RESOURCE_ID *string_id_list,
4194                                                 INT id_count);
4195 
4196 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4197 UINT _gx_string_scroll_wheel_string_list_set(GX_STRING_SCROLL_WHEEL *wheel,
4198                                              GX_CONST GX_CHAR **string_list,
4199                                              INT string_count);
4200 #endif
4201 UINT _gx_string_scroll_wheel_string_list_set_ext(GX_STRING_SCROLL_WHEEL *wheel,
4202                                                  GX_CONST GX_STRING *string_list,
4203                                                  INT string_count);
4204 
4205 UINT _gx_system_active_language_set(GX_UBYTE language);
4206 
4207 #if (GX_ANIMATION_POOL_SIZE > 0)
4208 UINT _gx_system_animation_get(GX_ANIMATION **free_return);
4209 UINT _gx_system_animation_free(GX_ANIMATION *free_return);
4210 #endif
4211 
4212 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
4213 UINT _gx_system_bidi_text_enable(VOID);
4214 UINT _gx_system_bidi_text_disable(VOID);
4215 #endif
4216 
4217 #if defined(GX_THAI_GLYPH_SHAPING_SUPPORT)
4218 UINT _gx_system_text_render_style_set(GX_UBYTE style);
4219 #endif
4220 
4221 UINT _gx_system_canvas_refresh(VOID);
4222 UINT _gx_system_dirty_mark(GX_WIDGET *widget);
4223 UINT _gx_system_dirty_partial_add(GX_WIDGET *widget, GX_RECTANGLE *dirty_area);
4224 UINT _gx_system_draw_context_get(GX_DRAW_CONTEXT **current_context);
4225 UINT _gx_system_event_fold(GX_EVENT *in_event);
4226 UINT _gx_system_event_send(GX_EVENT *in_event);
4227 UINT _gx_system_focus_claim(GX_WIDGET *me);
4228 UINT _gx_system_initialize(VOID);
4229 
4230 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4231 UINT _gx_system_language_table_get(GX_CHAR ****language_table, GX_UBYTE *languages_count, UINT *string_count);
4232 UINT _gx_system_language_table_set(GX_CHAR ***language_table, GX_UBYTE number_of_languages, UINT number_of_strings);
4233 #endif
4234 
4235 UINT _gx_system_memory_allocator_set(VOID *(*allocate)(ULONG size), VOID (*release)(VOID *));
4236 UINT _gx_system_pen_configure(GX_PEN_CONFIGURATION *pen_configuration);
4237 UINT _gx_system_screen_stack_create(GX_WIDGET **memory, INT size);
4238 UINT _gx_system_screen_stack_pop(VOID);
4239 UINT _gx_system_screen_stack_push(GX_WIDGET *screen);
4240 UINT _gx_system_screen_stack_get(GX_WIDGET **popped_parent, GX_WIDGET **popped_screen);
4241 UINT _gx_system_screen_stack_reset(VOID);
4242 UINT _gx_system_scroll_appearance_get(ULONG style, GX_SCROLLBAR_APPEARANCE *appearance);
4243 UINT _gx_system_scroll_appearance_set(ULONG style, GX_SCROLLBAR_APPEARANCE *appearance);
4244 UINT _gx_system_start(VOID);
4245 
4246 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4247 UINT _gx_system_string_get(GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
4248 UINT _gx_system_string_table_get(GX_UBYTE language, GX_CHAR ***get_table, UINT *get_size);
4249 UINT _gx_system_string_width_get(GX_CONST GX_FONT *font, GX_CONST GX_CHAR *string, INT string_length, GX_VALUE *return_width);
4250 #endif
4251 UINT _gx_system_string_width_get_ext(GX_CONST GX_FONT *font, GX_CONST GX_STRING *string, GX_VALUE *return_width);
4252 UINT _gx_system_timer_start(GX_WIDGET *owner, UINT timer_id, UINT initial_ticks, UINT reschedule_ticks);
4253 UINT _gx_system_timer_stop(GX_WIDGET *owner, UINT timer_id);
4254 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4255 UINT _gx_system_version_string_get(GX_CHAR **return_string);
4256 #endif
4257 UINT _gx_system_version_string_get_ext(GX_STRING *return_string);
4258 UINT _gx_system_widget_find(USHORT widget_id, INT search_level, GX_WIDGET **return_search_result);
4259 
4260 UINT _gx_text_button_create(GX_TEXT_BUTTON *button, GX_CONST GX_CHAR *name,
4261                             GX_WIDGET *parent, GX_RESOURCE_ID text_id, ULONG style, USHORT Id,
4262                             GX_CONST GX_RECTANGLE *size);
4263 VOID _gx_text_button_draw(GX_TEXT_BUTTON *button);
4264 UINT _gx_text_button_event_process(GX_TEXT_BUTTON *button, GX_EVENT *event_ptr);
4265 UINT _gx_text_button_font_set(GX_TEXT_BUTTON *button, GX_RESOURCE_ID font_id);
4266 UINT _gx_text_button_text_color_set(GX_TEXT_BUTTON *text_button,
4267                                     GX_RESOURCE_ID normal_text_color_id,
4268                                     GX_RESOURCE_ID selected_text_color_id,
4269                                     GX_RESOURCE_ID disabled_text_color_id);
4270 VOID _gx_text_button_text_draw(GX_TEXT_BUTTON *button);
4271 UINT _gx_text_button_text_get(GX_TEXT_BUTTON *button, GX_CONST GX_CHAR **return_text);
4272 UINT _gx_text_button_text_id_set(GX_TEXT_BUTTON *button, GX_RESOURCE_ID string_id);
4273 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4274 UINT _gx_text_button_text_set(GX_TEXT_BUTTON *button, GX_CONST GX_CHAR *text);
4275 #endif
4276 UINT _gx_text_button_text_set_ext(GX_TEXT_BUTTON *button, GX_CONST GX_STRING *text);
4277 
4278 UINT _gx_text_input_cursor_blink_interval_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE blink_interval);
4279 UINT _gx_text_input_cursor_height_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE height);
4280 UINT _gx_text_input_cursor_width_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE width);
4281 
4282 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4283 UINT _gx_text_scroll_wheel_callback_set(GX_TEXT_SCROLL_WHEEL * wheel, GX_CONST GX_CHAR * (*callback)(GX_TEXT_SCROLL_WHEEL *, INT));
4284 #endif
4285 UINT _gx_text_scroll_wheel_callback_set_ext(GX_TEXT_SCROLL_WHEEL *wheel, UINT (*callback)(GX_TEXT_SCROLL_WHEEL *, INT, GX_STRING *));
4286 UINT _gx_text_scroll_wheel_create(GX_TEXT_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT total_rows,
4287                                   ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size);
4288 VOID _gx_text_scroll_wheel_draw(GX_TEXT_SCROLL_WHEEL *wheel);
4289 UINT _gx_text_scroll_wheel_event_process(GX_TEXT_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
4290 UINT _gx_text_scroll_wheel_font_set(GX_TEXT_SCROLL_WHEEL *wheel, GX_RESOURCE_ID normal_font, GX_RESOURCE_ID selected_font);
4291 UINT _gx_text_scroll_wheel_text_color_set(GX_TEXT_SCROLL_WHEEL *wheel, GX_RESOURCE_ID normal_text_color,
4292                                           GX_RESOURCE_ID selected_text_color, GX_RESOURCE_ID disabled_text_color);
4293 
4294 UINT _gx_tree_view_create(GX_TREE_VIEW *tree, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
4295                           ULONG style, USHORT tree_view_id, GX_CONST GX_RECTANGLE *size);
4296 VOID _gx_tree_view_draw(GX_TREE_VIEW *tree);
4297 UINT _gx_tree_view_event_process(GX_TREE_VIEW *tree, GX_EVENT *event_ptr);
4298 UINT _gx_tree_view_indentation_set(GX_TREE_VIEW *tree, GX_VALUE indentation);
4299 UINT _gx_tree_view_position(GX_TREE_VIEW *tree);
4300 UINT _gx_tree_view_root_line_color_set(GX_TREE_VIEW *tree, GX_RESOURCE_ID color);
4301 UINT _gx_tree_view_root_pixelmap_set(GX_TREE_VIEW *tree, GX_RESOURCE_ID expand_map_id, GX_RESOURCE_ID collapse_map_id);
4302 UINT _gx_tree_view_selected_get(GX_TREE_VIEW *tree, GX_WIDGET **selected);
4303 UINT _gx_tree_view_selected_set(GX_TREE_VIEW *tree, GX_WIDGET *selected);
4304 
4305 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
4306 UINT    _gx_utility_bidi_paragraph_reorder(GX_BIDI_TEXT_INFO *input_info, GX_BIDI_RESOLVED_TEXT_INFO **resolved_info_head);
4307 UINT    _gx_utility_bidi_paragraph_reorder_ext(GX_BIDI_TEXT_INFO *input_info, GX_BIDI_RESOLVED_TEXT_INFO **resolved_info_head);
4308 UINT    _gx_utility_bidi_resolved_text_info_delete(GX_BIDI_RESOLVED_TEXT_INFO **resolved_info_head);
4309 #endif
4310 UINT    _gx_utility_canvas_to_bmp(GX_CANVAS *canvas, GX_RECTANGLE *rect, UINT(*write_data)(GX_UBYTE *byte_data, UINT data_count));
4311 UINT    _gx_utility_gradient_create(GX_GRADIENT *gradient, GX_VALUE width, GX_VALUE height, UCHAR type, GX_UBYTE start_alpha, GX_UBYTE end_alpha);
4312 UINT    _gx_utility_gradient_delete(GX_GRADIENT *gradient);
4313 
4314 UINT    _gx_utility_circle_point_get(INT xcenter, INT ycenter, UINT r, INT angle, GX_POINT *point);
4315 UINT    _gx_utility_ltoa(LONG value, GX_CHAR *return_buffer, UINT return_buffer_size);
4316 #if defined(GUIX_5_4_0_COMPATIBILITY)
4317 INT     _gx_utility_math_acos_5_4_0(INT x);
4318 INT     _gx_utility_math_asin_5_4_0(INT x);
4319 INT     _gx_utility_math_cos_5_4_0(INT angle);
4320 INT     _gx_utility_math_sin_5_4_0(INT angle);
4321 #else
4322 INT     _gx_utility_math_acos(GX_FIXED_VAL x);
4323 INT     _gx_utility_math_asin(GX_FIXED_VAL x);
4324 GX_FIXED_VAL _gx_utility_math_cos(GX_FIXED_VAL angle);
4325 GX_FIXED_VAL _gx_utility_math_sin(GX_FIXED_VAL angle);
4326 #endif
4327 UINT    _gx_utility_math_sqrt(UINT n);
4328 UINT    _gx_utility_pixelmap_resize(GX_PIXELMAP *src, GX_PIXELMAP *destination, INT width, INT height);
4329 UINT    _gx_utility_pixelmap_rotate(GX_PIXELMAP *src, INT angle, GX_PIXELMAP *destination, INT *rot_cx, INT *rot_cy);
4330 UINT    _gx_utility_pixelmap_simple_rotate(GX_PIXELMAP *src, INT angle, GX_PIXELMAP *destination, INT *rot_cx, INT *rot_cy);
4331 UINT    _gx_utility_rectangle_center(GX_RECTANGLE *rectangle, GX_RECTANGLE *within);
4332 UINT    _gx_utility_rectangle_center_find(GX_RECTANGLE *rectangle, GX_POINT *return_center);
4333 UINT    _gx_utility_rectangle_combine(GX_RECTANGLE *first_rectangle, GX_RECTANGLE *second_rectangle);
4334 GX_BOOL _gx_utility_rectangle_compare(GX_RECTANGLE *first_rectangle, GX_RECTANGLE *second_rectangle);
4335 UINT    _gx_utility_rectangle_define(GX_RECTANGLE *rectangle, GX_VALUE left, GX_VALUE top, GX_VALUE right, GX_VALUE bottom);
4336 GX_BOOL _gx_utility_rectangle_overlap_detect(GX_RECTANGLE *first_rectangle, GX_RECTANGLE *second_rectangle, GX_RECTANGLE *return_overlap_area);
4337 GX_BOOL _gx_utility_rectangle_point_detect(GX_RECTANGLE *rectangle, GX_POINT point);
4338 UINT    _gx_utility_rectangle_resize(GX_RECTANGLE *rectangle, GX_VALUE adjust);
4339 UINT    _gx_utility_rectangle_shift(GX_RECTANGLE *rectangle, GX_VALUE x_shift, GX_VALUE y_shift);
4340 
4341 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4342 UINT    _gx_utility_string_to_alphamap(GX_CONST GX_CHAR *text, GX_CONST GX_FONT *font, GX_PIXELMAP *textmap);
4343 #endif
4344 UINT    _gx_utility_string_to_alphamap_ext(GX_CONST GX_STRING *text, GX_CONST GX_FONT *font, GX_PIXELMAP *textmap);
4345 
4346 UINT _gx_vertical_list_children_position(GX_VERTICAL_LIST *vertical_list);
4347 UINT _gx_vertical_list_create(GX_VERTICAL_LIST *vertical_list, GX_CONST GX_CHAR *name,  GX_WIDGET *parent,
4348                               INT total_rows,
4349                               VOID (*callback)(GX_VERTICAL_LIST *, GX_WIDGET *, INT),
4350                               ULONG style, USHORT vertical_list_id,
4351                               GX_CONST GX_RECTANGLE *size);
4352 UINT _gx_vertical_list_event_process(GX_VERTICAL_LIST *list, GX_EVENT *event_ptr);
4353 UINT _gx_vertical_list_page_index_set(GX_VERTICAL_LIST *list, INT index);
4354 UINT _gx_vertical_list_selected_index_get(GX_VERTICAL_LIST *vertical_list, INT *return_index);
4355 UINT _gx_vertical_list_selected_set(GX_VERTICAL_LIST *vertical_list, INT index);
4356 UINT _gx_vertical_list_selected_widget_get(GX_VERTICAL_LIST *vertical_list, GX_WIDGET **return_list_entry);
4357 UINT _gx_vertical_list_total_rows_set(GX_VERTICAL_LIST *list, INT count);
4358 
4359 UINT _gx_vertical_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name, GX_WINDOW *parent,
4360                                    GX_SCROLLBAR_APPEARANCE *settings, ULONG style);
4361 
4362 UINT _gx_widget_allocate(GX_WIDGET **widget, ULONG memsize);
4363 UINT _gx_widget_attach(GX_WIDGET *parent, GX_WIDGET *widget);
4364 UINT _gx_widget_back_attach(GX_WIDGET *parent, GX_WIDGET *widget);
4365 UINT _gx_widget_back_move(GX_WIDGET *widget, GX_BOOL *widget_moved);
4366 VOID _gx_widget_background_draw(GX_WIDGET *widget);
4367 UINT _gx_widget_block_move(GX_WIDGET *widget, GX_RECTANGLE *block, INT x_shift, INT y_shift);
4368 VOID _gx_widget_border_draw(GX_WIDGET *widget, GX_RESOURCE_ID border_color, GX_RESOURCE_ID upper_color, GX_COLOR lower_color, GX_BOOL fill);
4369 UINT _gx_widget_border_style_set(GX_WIDGET *widget, ULONG Style);
4370 UINT _gx_widget_border_width_get(GX_WIDGET *widget, GX_VALUE *return_width);
4371 UINT _gx_widget_canvas_get(GX_WIDGET *widget, GX_CANVAS **return_canvas);
4372 UINT _gx_widget_child_detect(GX_WIDGET *parent, GX_WIDGET *child, GX_BOOL *return_detect);
4373 VOID _gx_widget_children_draw(GX_WIDGET *widget);
4374 UINT _gx_widget_client_get(GX_WIDGET *widget, GX_VALUE border_width, GX_RECTANGLE *return_size);
4375 UINT _gx_widget_color_get(GX_WIDGET *widget, GX_RESOURCE_ID color_id, GX_COLOR *return_color);
4376 UINT _gx_widget_create(GX_WIDGET *widget,
4377                        GX_CONST GX_CHAR *name,
4378                        GX_WIDGET *parent,
4379                        ULONG style, USHORT Id,
4380                        GX_CONST GX_RECTANGLE *size);
4381 UINT _gx_widget_created_test(GX_WIDGET *widget, GX_BOOL *return_test);
4382 UINT _gx_widget_delete(GX_WIDGET *widget);
4383 UINT _gx_widget_detach(GX_WIDGET *widget);
4384 VOID _gx_widget_draw(GX_WIDGET *widget);
4385 UINT _gx_widget_draw_set(GX_WIDGET *widget, VOID (*draw_func)(GX_WIDGET *));
4386 UINT _gx_widget_event_generate(GX_WIDGET *widget, USHORT event_type, LONG value);
4387 UINT _gx_widget_event_process(GX_WIDGET *widget, GX_EVENT *event_ptr);
4388 UINT _gx_widget_event_process_set(GX_WIDGET *widget, UINT (*event_processing_function)(GX_WIDGET *, GX_EVENT *));
4389 UINT _gx_widget_event_to_parent(GX_WIDGET *widget, GX_EVENT *event_ptr);
4390 UINT _gx_widget_fill_color_set(GX_WIDGET *widget, GX_RESOURCE_ID normal_color, GX_RESOURCE_ID selected_color, GX_RESOURCE_ID disabled_color);
4391 UINT _gx_widget_find(GX_WIDGET *parent, USHORT widget_id, INT search_depth, GX_WIDGET **return_widget);
4392 UINT _gx_widget_first_child_get(GX_WIDGET *parent, GX_WIDGET **child_return);
4393 UINT _gx_widget_font_get(GX_WIDGET *widget, GX_RESOURCE_ID font_id, GX_FONT **return_font);
4394 UINT _gx_widget_free(GX_WIDGET *widget);
4395 UINT _gx_widget_focus_next(GX_WIDGET *widget);
4396 UINT _gx_widget_focus_previous(GX_WIDGET *widget);
4397 UINT _gx_widget_front_move(GX_WIDGET *widget, GX_BOOL *widget_moved);
4398 UINT _gx_widget_height_get(GX_WIDGET *widget, GX_VALUE *return_height);
4399 UINT _gx_widget_hide(GX_WIDGET *widget);
4400 UINT _gx_widget_last_child_get(GX_WIDGET *parent, GX_WIDGET **child_return);
4401 UINT _gx_widget_next_sibling_get(GX_WIDGET *current, GX_WIDGET **sibling_return);
4402 UINT _gx_widget_parent_get(GX_WIDGET *current, GX_WIDGET **parent_return);
4403 UINT _gx_widget_pixelmap_get(GX_WIDGET *widget, GX_RESOURCE_ID font_id, GX_PIXELMAP **return_pixelmap);
4404 UINT _gx_widget_previous_sibling_get(GX_WIDGET *current, GX_WIDGET **sibling_return);
4405 UINT _gx_widget_resize(GX_WIDGET *widget, GX_RECTANGLE *newsize);
4406 UINT _gx_widget_shift(GX_WIDGET *widget, GX_VALUE x_shift, GX_VALUE y_shift, GX_BOOL mark_dirty);
4407 UINT _gx_widget_show(GX_WIDGET *widget);
4408 UINT _gx_widget_status_add(GX_WIDGET *widget, ULONG status);
4409 UINT _gx_widget_status_get(GX_WIDGET *widget, ULONG *return_status);
4410 UINT _gx_widget_status_remove(GX_WIDGET *widget, ULONG status);
4411 UINT _gx_widget_status_test(GX_WIDGET *widget, ULONG status, GX_BOOL *return_test);
4412 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4413 UINT _gx_widget_string_get(GX_WIDGET *widget, GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
4414 #endif
4415 UINT _gx_widget_string_get_ext(GX_WIDGET *widget, GX_RESOURCE_ID string_id, GX_STRING *return_string);
4416 UINT _gx_widget_style_add(GX_WIDGET *widget, ULONG style);
4417 UINT _gx_widget_style_get(GX_WIDGET *widget, ULONG *return_style);
4418 UINT _gx_widget_style_remove(GX_WIDGET *widget, ULONG style);
4419 UINT _gx_widget_style_set(GX_WIDGET *widget, ULONG style);
4420 
4421 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4422 UINT _gx_widget_text_blend(GX_WIDGET *widget, UINT tColor, UINT font_id, GX_CONST GX_CHAR *string,
4423                            INT x_offset, INT y_offset, UCHAR alpha);
4424 
4425 VOID _gx_widget_text_draw(GX_WIDGET *widget, UINT tColor, UINT font_id, GX_CONST GX_CHAR *string,
4426                           INT x_offset, INT y_offset);
4427 #endif
4428 UINT _gx_widget_text_blend_ext(GX_WIDGET *widget, UINT tColor, UINT font_id, GX_CONST GX_STRING *string,
4429                                INT x_offset, INT y_offset, UCHAR alpha);
4430 VOID _gx_widget_text_draw_ext(GX_WIDGET *widget, UINT tColor, UINT font_id, GX_CONST GX_STRING *string,
4431                               INT x_offset, INT y_offset);
4432 VOID _gx_widget_text_id_draw(GX_WIDGET *widget, UINT tColor,
4433                              UINT font_id, UINT text_id,
4434                              INT x_offset, INT y_offset);
4435 UINT _gx_widget_top_visible_child_find(GX_WIDGET *parent, GX_WIDGET **child_return);
4436 UINT _gx_widget_type_find(GX_WIDGET *parent, USHORT widget_type, GX_WIDGET **return_widget);
4437 UINT _gx_widget_width_get(GX_WIDGET *widget, GX_VALUE *return_width);
4438 
4439 VOID _gx_window_background_draw(GX_WINDOW *window);
4440 UINT _gx_window_client_height_get(GX_WINDOW *window, GX_VALUE *return_height);
4441 UINT _gx_window_client_scroll(GX_WINDOW *window, GX_VALUE x_scroll, GX_VALUE y_scroll);
4442 UINT _gx_window_client_width_get(GX_WINDOW *window, GX_VALUE *return_width);
4443 UINT _gx_window_close(GX_WINDOW *window);
4444 UINT _gx_window_create(GX_WINDOW *window,
4445                        GX_CONST GX_CHAR *name,
4446                        GX_WIDGET *parent,
4447                        ULONG style, USHORT window_id,
4448                        GX_CONST GX_RECTANGLE *size);
4449 VOID _gx_window_draw(GX_WINDOW *window);
4450 UINT _gx_window_event_process(GX_WINDOW *window, GX_EVENT *event_ptr);
4451 UINT _gx_window_execute(GX_WINDOW *window, ULONG *return_code);
4452 UINT _gx_window_root_create(GX_WINDOW_ROOT *root_window,
4453                             GX_CONST GX_CHAR *name,
4454                             GX_CANVAS *canvas, ULONG style, USHORT Id,
4455                             GX_CONST GX_RECTANGLE *size);
4456 UINT _gx_window_root_delete(GX_WINDOW_ROOT *root_window);
4457 UINT _gx_window_root_event_process(GX_WINDOW_ROOT *widget, GX_EVENT *event_ptr);
4458 UINT _gx_window_root_find(GX_WIDGET *widget, GX_WINDOW_ROOT **return_root_window);
4459 UINT _gx_window_scroll_info_get(GX_WINDOW *window, ULONG type, GX_SCROLL_INFO *return_scroll_info);
4460 UINT _gx_window_scrollbar_find(GX_WINDOW *window, USHORT type, GX_SCROLLBAR **return_scrollbar);
4461 UINT _gx_window_wallpaper_get(GX_WINDOW *window, GX_RESOURCE_ID *return_wallpaper_id);
4462 UINT _gx_window_wallpaper_set(GX_WINDOW *window, GX_RESOURCE_ID wallpaper_id, GX_BOOL tile);
4463 
4464 #else
4465 
4466 #define gx_accordion_menu_create(a, b, c, d, e, f)               _gxe_accordion_menu_create(a, b, c, d, e, f, sizeof(GX_ACCORDION_MENU))
4467 #define gx_accordion_menu_draw                                   _gx_accordion_menu_draw
4468 #define gx_accordion_menu_event_process                          _gxe_accordion_menu_event_process
4469 #define gx_accordion_menu_position                               _gxe_accordion_menu_position
4470 
4471 #define gx_animation_canvas_define                               _gxe_animation_canvas_define
4472 #define gx_animation_create                                      _gxe_animation_create
4473 #define gx_animation_delete                                      _gxe_animation_delete
4474 #define gx_animation_drag_disable                                _gxe_animation_drag_disable
4475 #define gx_animation_drag_enable                                 _gxe_animation_drag_enable
4476 #define gx_animation_landing_speed_set                           _gxe_animation_landing_speed_set
4477 #define gx_animation_start                                       _gxe_animation_start
4478 #define gx_animation_stop                                        _gxe_animation_stop
4479 
4480 #define gx_binres_language_count_get                             _gxe_binres_language_count_get
4481 #define gx_binres_language_info_load                             _gxe_binres_language_info_load
4482 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4483 #define gx_binres_language_table_load                            _gxe_binres_language_table_load
4484 #endif
4485 #define gx_binres_language_table_load_ext                        _gxe_binres_language_table_load_ext
4486 #define gx_binres_theme_load                                     _gxe_binres_theme_load
4487 
4488 #define gx_brush_default                                         _gxe_brush_default
4489 #define gx_brush_define                                          _gxe_brush_define
4490 
4491 #define gx_button_background_draw                                _gx_button_background_draw
4492 #define gx_button_create(a, b, c, d, e, f)                       _gxe_button_create(a, b, (GX_WIDGET *)c, d, e, f, sizeof(GX_BUTTON))
4493 #define gx_button_deselect                                       _gxe_button_deselect
4494 #define gx_button_draw                                           _gx_button_draw
4495 #define gx_button_event_process                                  _gxe_button_event_process
4496 #define gx_button_select                                         _gxe_button_select
4497 
4498 #define gx_canvas_alpha_set                                      _gxe_canvas_alpha_set
4499 #define gx_canvas_arc_draw                                       _gxe_canvas_arc_draw
4500 #define gx_canvas_block_move(a, b, c, d)                         _gxe_canvas_block_move(a, b, c, d)
4501 #define gx_canvas_circle_draw                                    _gxe_canvas_circle_draw
4502 #define gx_canvas_create(a, b, c, d, e, f, g, h)                 _gxe_canvas_create(a, b, c, d, e, f, g, h, sizeof(GX_CANVAS))
4503 #define gx_canvas_delete                                         _gxe_canvas_delete
4504 #define gx_canvas_drawing_complete                               _gxe_canvas_drawing_complete
4505 #define gx_canvas_drawing_initiate(a, b, c)                      _gxe_canvas_drawing_initiate(a, (GX_WIDGET *)b, c)
4506 #define gx_canvas_ellipse_draw                                   _gxe_canvas_ellipse_draw
4507 #define gx_canvas_hardware_layer_bind                            _gxe_canvas_hardware_layer_bind
4508 #define gx_canvas_hide                                           _gxe_canvas_hide
4509 #define gx_canvas_line_draw                                      _gxe_canvas_line_draw
4510 #define gx_canvas_memory_define                                  _gxe_canvas_memory_define
4511 
4512 #if defined (GX_MOUSE_SUPPORT)
4513 #define gx_canvas_mouse_define                                   _gxe_canvas_mouse_define
4514 #define gx_canvas_mouse_hide                                     _gxe_canvas_mouse_hide
4515 #define gx_canvas_mouse_show                                     _gxe_canvas_mouse_show
4516 #endif
4517 #define gx_canvas_offset_set                                     _gxe_canvas_offset_set
4518 #define gx_canvas_pie_draw                                       _gxe_canvas_pie_draw
4519 #define gx_canvas_pixel_draw                                     _gxe_canvas_pixel_draw
4520 #define gx_canvas_pixelmap_blend                                 _gxe_canvas_pixelmap_blend
4521 #define gx_canvas_pixelmap_draw                                  _gxe_canvas_pixelmap_draw
4522 #define gx_canvas_pixelmap_get                                   _gxe_canvas_pixelmap_get
4523 #define gx_canvas_pixelmap_rotate                                _gxe_canvas_pixelmap_rotate
4524 #define gx_canvas_pixelmap_tile                                  _gxe_canvas_pixelmap_tile
4525 #define gx_canvas_polygon_draw                                   _gxe_canvas_polygon_draw
4526 #define gx_canvas_rectangle_draw                                 _gxe_canvas_rectangle_draw
4527 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4528 #define gx_canvas_rotated_text_draw                              _gxe_canvas_rotated_text_draw
4529 #endif
4530 #define gx_canvas_rotated_text_draw_ext                          _gxe_canvas_rotated_text_draw_ext
4531 #define gx_canvas_shift                                          _gxe_canvas_shift
4532 #define gx_canvas_show                                           _gxe_canvas_show
4533 #define gx_canvas_aligned_text_draw                              _gxe_canvas_aligned_text_draw
4534 #if defined (GX_ENABLE_DEPRECATED_STRING_API)
4535 #define gx_canvas_text_draw                                      _gxe_canvas_text_draw
4536 #endif
4537 #define gx_canvas_text_draw_ext                                  _gxe_canvas_text_draw_ext
4538 
4539 #define gx_checkbox_create(a, b, c, d, e, f, g)                  _gxe_checkbox_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_CHECKBOX))
4540 #define gx_checkbox_draw                                         _gx_checkbox_draw
4541 #define gx_checkbox_event_process                                _gxe_checkbox_event_process
4542 #define gx_checkbox_pixelmap_set                                 _gxe_checkbox_pixelmap_set
4543 #define gx_checkbox_select                                       _gxe_checkbox_select
4544 
4545 #define gx_circular_gauge_angle_get                              _gxe_circular_gauge_angle_get
4546 #define gx_circular_gauge_angle_set                              _gxe_circular_gauge_angle_set
4547 #define gx_circular_gauge_animation_set                          _gxe_circular_gauge_animation_set
4548 #define gx_circular_gauge_background_draw                        _gx_circular_gauge_background_draw
4549 #define gx_circular_gauge_create(a, b, c, d, e, f, g, h, i)      _gxe_circular_gauge_create((GX_CIRCULAR_GAUGE *) a, b, c, d, e, f, g, h, i, sizeof(GX_CIRCULAR_GAUGE))
4550 #define gx_circular_gauge_draw                                   _gx_circular_gauge_draw
4551 #define gx_circular_gauge_event_process                          _gxe_circular_gauge_event_process
4552 
4553 #define gx_context_brush_default                                 _gxe_context_brush_default
4554 #define gx_context_brush_define                                  _gxe_context_brush_define
4555 #define gx_context_brush_get                                     _gxe_context_brush_get
4556 #define gx_context_brush_pattern_set                             _gxe_context_brush_pattern_set
4557 #define gx_context_brush_set                                     _gxe_context_brush_set
4558 #define gx_context_brush_style_set                               _gxe_context_brush_style_set
4559 #define gx_context_brush_width_set                               _gxe_context_brush_width_set
4560 #define gx_context_color_get                                     _gxe_context_color_get
4561 #define gx_context_fill_color_set                                _gxe_context_fill_color_set
4562 #define gx_context_font_get                                      _gxe_context_font_get
4563 #define gx_context_font_set                                      _gxe_context_font_set
4564 #define gx_context_line_color_set                                _gxe_context_line_color_set
4565 #define gx_context_pixelmap_get                                  _gxe_context_pixelmap_get
4566 #define gx_context_pixelmap_set                                  _gxe_context_pixelmap_set
4567 #define gx_context_raw_brush_define                              _gxe_context_raw_brush_define
4568 #define gx_context_raw_fill_color_set                            _gxe_context_raw_fill_color_set
4569 #define gx_context_raw_line_color_set                            _gxe_context_raw_line_color_set
4570 
4571 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4572 #define gx_context_string_get                                    _gxe_context_string_get
4573 #endif
4574 #define gx_context_string_get_ext                                _gxe_context_string_get_ext
4575 
4576 #define gx_display_active_language_set                           _gxe_display_active_language_set
4577 #define gx_display_color_set                                     _gxe_display_color_set
4578 #define gx_display_color_table_set                               _gxe_display_color_table_set
4579 #define gx_display_create(a, b, c, d, e)                         _gxe_display_create(a, b, c, d, e, sizeof(GX_DISPLAY))
4580 #define gx_display_delete                                        _gxe_display_delete
4581 #define gx_display_font_table_set                                _gxe_display_font_table_set
4582 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4583 #define gx_display_language_table_get                            _gxe_display_language_table_get
4584 #define gx_display_language_table_set                            _gxe_display_language_table_set
4585 #endif
4586 #define gx_display_language_table_get_ext                        _gxe_display_language_table_get_ext
4587 #define gx_display_language_table_set_ext                        _gxe_display_language_table_set_ext
4588 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
4589 #define gx_display_language_direction_table_set                  _gxe_display_language_direction_table_set
4590 #endif
4591 #define gx_display_pixelmap_table_set                            _gxe_display_pixelmap_table_set
4592 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4593 #define gx_display_string_get                                    _gxe_display_string_get
4594 #define gx_display_string_table_get                              _gxe_display_string_table_get
4595 #endif
4596 #define gx_display_string_get_ext                                _gxe_display_string_get_ext
4597 #define gx_display_string_table_get_ext                          _gxe_display_string_table_get_ext
4598 #define gx_display_theme_install                                 _gxe_display_theme_install
4599 
4600 #define gx_drop_list_close                                       _gxe_drop_list_close
4601 #define gx_drop_list_create(a, b, c, d, e, f, g, h, i)           _gxe_drop_list_create((GX_DROP_LIST *)a, b, (GX_WIDGET *)c, d, e, f, g, h, i, sizeof(GX_DROP_LIST))
4602 #define gx_drop_list_event_process                               _gxe_drop_list_event_process
4603 #define gx_drop_list_open                                        _gxe_drop_list_open
4604 #define gx_drop_list_pixelmap_set                                _gxe_drop_list_pixelmap_set
4605 #define gx_drop_list_popup_get                                   _gxe_drop_list_popup_get
4606 
4607 #define gx_generic_scroll_wheel_children_position                _gxe_generic_scroll_wheel_children_position
4608 #define gx_generic_scroll_wheel_create(a, b, c, d, e, f, g, h)   _gxe_generic_scroll_wheel_create(a, b, c, d, e, f, g, h, sizeof(GX_GENERIC_SCROLL_WHEEL))
4609 #define gx_generic_scroll_wheel_draw                             _gxe_generic_scroll_wheel_draw
4610 #define gx_generic_scroll_wheel_event_process                    _gxe_generic_scroll_wheel_event_process
4611 #define gx_generic_scroll_wheel_row_height_set                   _gxe_generic_scroll_wheel_row_height_set
4612 #define gx_generic_scroll_wheel_total_rows_set                   _gxe_generic_scroll_wheel_total_rows_set
4613 
4614 #define gx_horizontal_list_children_position                     _gxe_horizontal_list_children_position
4615 #define gx_horizontal_list_create(a, b, c, d, e, f, g, h)        _gxe_horizontal_list_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_HORIZONTAL_LIST))
4616 #define gx_horizontal_list_event_process                         _gxe_horizontal_list_event_process
4617 #define gx_horizontal_list_page_index_set(a, b)                  _gxe_horizontal_list_page_index_set((GX_HORIZONTAL_LIST *)a, b)
4618 #define gx_horizontal_list_selected_index_get(a, b)              _gxe_horizontal_list_selected_index_get(a, b)
4619 #define gx_horizontal_list_selected_set(a, b)                    _gxe_horizontal_list_selected_set(a, b)
4620 #define gx_horizontal_list_selected_widget_get(a, b)             _gxe_horizontal_list_selected_widget_get(a, (GX_WIDGET **)b)
4621 #define gx_horizontal_list_total_columns_set(a, b)               _gxe_horizontal_list_total_columns_set((GX_HORIZONTAL_LIST *)a, b)
4622 
4623 #define gx_horizontal_scrollbar_create(a, b, c, d, e)            _gxe_horizontal_scrollbar_create(a, b, (GX_WINDOW *)c, d, e, sizeof(GX_SCROLLBAR))
4624 
4625 #define gx_icon_background_draw                                  _gx_icon_background_draw
4626 #define gx_icon_button_create(a, b, c, d, e, f, g)               _gxe_icon_button_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_ICON_BUTTON))
4627 #define gx_icon_button_draw                                      _gx_icon_button_draw
4628 #define gx_icon_button_pixelmap_set                              _gxe_icon_button_pixelmap_set
4629 #define gx_icon_create(a, b, c, d, e, f, g, h)                   _gxe_icon_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_ICON))
4630 #define gx_icon_draw                                             _gx_icon_draw
4631 #define gx_icon_event_process                                    _gxe_icon_event_process
4632 #define gx_icon_pixelmap_set                                     _gxe_icon_pixelmap_set
4633 
4634 #define gx_image_reader_create                                   _gxe_image_reader_create
4635 #define gx_image_reader_palette_set                              _gxe_image_reader_palette_set
4636 #define gx_image_reader_start                                    _gxe_image_reader_start
4637 
4638 #define gx_line_chart_axis_draw                                  _gx_line_chart_axis_draw
4639 #define gx_line_chart_create(a, b, c, d, e, f, g)                _gxe_line_chart_create(a, b, (GX_WIDGET *) c, d, e, f, g, sizeof(GX_LINE_CHART))
4640 #define gx_line_chart_data_draw                                  _gx_line_chart_data_draw
4641 #define gx_line_chart_draw                                       _gx_line_chart_draw
4642 #define gx_line_chart_update                                     _gxe_line_chart_update
4643 #define gx_line_chart_y_scale_calculate                          _gxe_line_chart_y_scale_calculate
4644 
4645 #define gx_menu_create(a, b, c, d, e, f, g, h)                   _gxe_menu_create((GX_MENU *)a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_MENU))
4646 #define gx_menu_draw                                             _gx_menu_draw
4647 #define gx_menu_event_process                                    _gxe_menu_event_process
4648 #define gx_menu_insert                                           _gxe_menu_insert
4649 #define gx_menu_remove                                           _gxe_menu_remove
4650 #define gx_menu_text_draw                                        _gx_menu_text_draw
4651 #define gx_menu_text_offset_set                                  _gxe_menu_text_offset_set
4652 
4653 #define gx_multi_line_text_button_create(a, b, c, d, e, f, g)    _gxe_multi_line_text_button_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_MULTI_LINE_TEXT_BUTTON))
4654 #define gx_multi_line_text_button_draw                           _gx_multi_line_text_button_draw
4655 #define gx_multi_line_text_button_event_process                  _gxe_multi_line_text_button_event_process
4656 #define gx_multi_line_text_button_text_draw                      _gx_multi_line_text_button_text_draw
4657 #define gx_multi_line_text_button_text_id_set                    _gxe_multi_line_text_button_text_id_set
4658 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4659 #define gx_multi_line_text_button_text_set                       _gxe_multi_line_text_button_text_set
4660 #endif
4661 #define gx_multi_line_text_button_text_set_ext                   _gxe_multi_line_text_button_text_set_ext
4662 
4663 #define gx_multi_line_text_input_backspace                       _gxe_multi_line_text_input_backspace
4664 #define gx_multi_line_text_input_buffer_clear                    _gxe_multi_line_text_input_buffer_clear
4665 #define gx_multi_line_text_input_buffer_get                      _gxe_multi_line_text_input_buffer_get
4666 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4667 #define gx_multi_line_text_input_char_insert                     _gxe_multi_line_text_input_char_insert
4668 #endif
4669 #define gx_multi_line_text_input_char_insert_ext                 _gxe_multi_line_text_input_char_insert_ext
4670 #define gx_multi_line_text_input_create(a, b, c, d, e, f, g, h)  _gxe_multi_line_text_input_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_MULTI_LINE_TEXT_INPUT))
4671 #define gx_multi_line_text_input_cursor_pos_get                  _gxe_multi_line_text_input_cursor_pos_get
4672 #define gx_multi_line_text_input_delete                          _gxe_multi_line_text_input_delete
4673 #define gx_multi_line_text_input_down_arrow                      _gxe_multi_line_text_input_down_arrow
4674 #define gx_multi_line_text_input_end                             _gxe_multi_line_text_input_end
4675 #define gx_multi_line_text_input_event_process                   _gxe_multi_line_text_input_event_process
4676 #define gx_multi_line_text_input_fill_color_set                  _gxe_multi_line_text_input_fill_color_set
4677 #define gx_multi_line_text_input_home                            _gxe_multi_line_text_input_home
4678 #define gx_multi_line_text_input_left_arrow                      _gxe_multi_line_text_input_left_arrow
4679 #define gx_multi_line_text_input_right_arrow                     _gxe_multi_line_text_input_right_arrow
4680 #define gx_multi_line_text_input_style_add                       _gxe_multi_line_text_input_style_add
4681 #define gx_multi_line_text_input_style_remove                    _gxe_multi_line_text_input_style_remove
4682 #define gx_multi_line_text_input_style_set                       _gxe_multi_line_text_input_style_set
4683 #define gx_multi_line_text_input_text_color_set                  _gxe_multi_line_text_input_text_color_set
4684 #define gx_multi_line_text_input_text_select                     _gxe_multi_line_text_input_text_select
4685 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4686 #define gx_multi_line_text_input_text_set                        _gxe_multi_line_text_input_text_set
4687 #endif
4688 #define gx_multi_line_text_input_text_set_ext                    _gxe_multi_line_text_input_text_set_ext
4689 #define gx_multi_line_text_input_up_arrow                        _gxe_multi_line_text_input_up_arrow
4690 
4691 #define gx_multi_line_text_view_create(a, b, c, d, e, f, g)      _gxe_multi_line_text_view_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_MULTI_LINE_TEXT_VIEW))
4692 #define gx_multi_line_text_view_draw                             _gx_multi_line_text_view_draw
4693 #define gx_multi_line_text_view_event_process                    _gxe_multi_line_text_view_event_process
4694 #define gx_multi_line_text_view_font_set                         _gxe_multi_line_text_view_font_set
4695 #define gx_multi_line_text_view_line_space_set                   _gxe_multi_line_text_view_line_space_set
4696 #define gx_multi_line_text_view_scroll_info_get                  _gxe_multi_line_text_view_scroll_info_get
4697 #if defined(GUIX_5_4_0_COMPATIBILITY)
4698 #define gx_multi_line_text_view_text_color_set(a, b, c)          _gxe_multi_line_text_view_text_color_set((GX_MULTI_LINE_TEXT_VIEW *)a, b, c, b)
4699 #else
4700 #define gx_multi_line_text_view_text_color_set                   _gxe_multi_line_text_view_text_color_set
4701 #endif
4702 #define gx_multi_line_text_view_text_id_set                      _gxe_multi_line_text_view_text_id_set
4703 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4704 #define gx_multi_line_text_view_text_set                         _gxe_multi_line_text_view_text_set
4705 #endif
4706 #define gx_multi_line_text_view_text_set_ext                     _gxe_multi_line_text_view_text_set_ext
4707 #define gx_multi_line_text_view_whitespace_set                   _gxe_multi_line_text_view_whitespace_set
4708 
4709 #define gx_rich_text_view_create(a, b, c, d, e, f, g, h)         _gxe_rich_text_view_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_RICH_TEXT_VIEW))
4710 #define gx_rich_text_view_draw                                   _gx_rich_text_view_draw
4711 #define gx_rich_text_view_text_draw                              _gx_rich_text_view_text_draw
4712 #define gx_rich_text_view_fonts_set                              _gxe_rich_text_view_fonts_set
4713 
4714 #define gx_numeric_pixelmap_prompt_create(a, b, c, d, e, f, g, h) _gxe_numeric_pixelmap_prompt_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_NUMERIC_PIXELMAP_PROMPT))
4715 #define gx_numeric_pixelmap_prompt_format_function_set           _gxe_numeric_pixelmap_prompt_format_function_set
4716 #define gx_numeric_pixelmap_prompt_value_set                     _gxe_numeric_pixelmap_prompt_value_set
4717 
4718 #define gx_numeric_prompt_create(a, b, c, d, e, f, g)            _gxe_numeric_prompt_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_NUMERIC_PROMPT))
4719 #define gx_numeric_prompt_format_function_set                    _gxe_numeric_prompt_format_function_set
4720 #define gx_numeric_prompt_value_set                              _gxe_numeric_prompt_value_set
4721 
4722 #define gx_numeric_scroll_wheel_create(a, b, c, d, e, f, g, h)   _gxe_numeric_scroll_wheel_create(a, b, (GX_WIDGET *) c, d, e, f, g, h, sizeof(GX_NUMERIC_SCROLL_WHEEL))
4723 #define gx_numeric_scroll_wheel_range_set                        _gxe_numeric_scroll_wheel_range_set
4724 
4725 #define gx_pixelmap_button_create(a, b, c, d, e, f, g, h, i)     _gxe_pixelmap_button_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, i, sizeof(GX_PIXELMAP_BUTTON))
4726 #define gx_pixelmap_button_draw                                  _gx_pixelmap_button_draw
4727 #define gx_pixelmap_button_event_process                         _gxe_pixelmap_button_event_process
4728 #define gx_pixelmap_button_pixelmap_set                          _gxe_pixelmap_button_pixelmap_set
4729 
4730 #define gx_pixelmap_prompt_create(a, b, c, d, e, f, g, h)        _gxe_pixelmap_prompt_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_PIXELMAP_PROMPT))
4731 #define gx_pixelmap_prompt_draw                                  _gx_pixelmap_prompt_draw
4732 #define gx_pixelmap_prompt_pixelmap_set                          _gxe_pixelmap_prompt_pixelmap_set
4733 
4734 #define gx_pixelmap_slider_create(a, b, c, d, e, f, g, h)        _gxe_pixelmap_slider_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_PIXELMAP_SLIDER))
4735 #define gx_pixelmap_slider_draw                                  _gx_pixelmap_slider_draw
4736 #define gx_pixelmap_slider_event_process                         _gxe_pixelmap_slider_event_process
4737 #define gx_pixelmap_slider_pixelmap_set                          _gxe_pixelmap_slider_pixelmap_set
4738 
4739 #define gx_progress_bar_background_draw                          _gx_progress_bar_background_draw
4740 #define gx_progress_bar_create(a, b, c, d, e, f, g)              _gxe_progress_bar_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_PROGRESS_BAR))
4741 #define gx_progress_bar_draw                                     _gx_progress_bar_draw
4742 #define gx_progress_bar_event_process                            _gxe_progress_bar_event_process
4743 #define gx_progress_bar_font_set                                 _gxe_progress_bar_font_set
4744 #define gx_progress_bar_info_set(a, b)                           _gxe_progress_bar_info_set((GX_PROGRESS_BAR *)a, b);
4745 #define gx_progress_bar_pixelmap_set                             _gxe_progress_bar_pixelmap_set
4746 #define gx_progress_bar_range_set                                _gxe_progress_bar_range_set
4747 #if defined(GUIX_5_4_0_COMPATIBILITY)
4748 #define gx_progress_bar_text_color_set(a, b, c)                  _gxe_progress_bar_text_color_set((GX_PROGRESS_BAR *)a, b, c, b)
4749 #else
4750 #define gx_progress_bar_text_color_set                           _gxe_progress_bar_text_color_set
4751 #endif
4752 #define gx_progress_bar_text_draw                                _gx_progress_bar_text_draw
4753 #define gx_progress_bar_value_set                                _gxe_progress_bar_value_set
4754 
4755 #define gx_prompt_create(a, b, c, d, e, f, g)                    _gxe_prompt_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_PROMPT))
4756 #define gx_prompt_event_process                                  _gxe_prompt_event_process
4757 #define gx_prompt_draw                                           _gx_prompt_draw
4758 #define gx_prompt_font_set                                       _gxe_prompt_font_set
4759 #if defined(GUIX_5_4_0_COMPATIBILITY)
4760 #define gx_prompt_text_color_set(a, b, c)                        _gxe_prompt_text_color_set((GX_PROMPT *)a, b, c, b)
4761 #else
4762 #define gx_prompt_text_color_set                                 _gxe_prompt_text_color_set
4763 #endif
4764 #define gx_prompt_text_draw                                      _gx_prompt_text_draw
4765 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4766 #define gx_prompt_text_get                                       _gxe_prompt_text_get
4767 #endif
4768 #define gx_prompt_text_get_ext                                   _gxe_prompt_text_get_ext
4769 #define gx_prompt_text_id_set                                    _gxe_prompt_text_id_set
4770 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4771 #define gx_prompt_text_set                                       _gxe_prompt_text_set
4772 #endif
4773 #define gx_prompt_text_set_ext                                   _gxe_prompt_text_set_ext
4774 
4775 #define gx_radial_progress_bar_anchor_set                        _gxe_radial_progress_bar_anchor_set
4776 #define gx_radial_progress_bar_background_draw                   _gx_radial_progress_bar_background_draw
4777 #define gx_radial_progress_bar_create(a, b, c, d, e, f)          _gxe_radial_progress_bar_create(a, b, c, d, e, f, sizeof(GX_RADIAL_PROGRESS_BAR))
4778 #define gx_radial_progress_bar_draw                              _gx_radial_progress_bar_draw
4779 #define gx_radial_progress_bar_event_process                     _gxe_radial_progress_bar_event_process
4780 #define gx_radial_progress_bar_font_set                          _gxe_radial_progress_bar_font_set
4781 #define gx_radial_progress_bar_info_set                          _gxe_radial_progress_bar_info_set
4782 #if defined(GUIX_5_4_0_COMPATIBILITY)
4783 #define gx_radial_progress_bar_text_color_set(a, b, c)           _gxe_radial_progress_bar_text_color_set((GX_RADIAL_PROGRESS_BAR *)a, b, c, b)
4784 #else
4785 #define gx_radial_progress_bar_text_color_set                    _gxe_radial_progress_bar_text_color_set
4786 #endif
4787 #define gx_radial_progress_bar_text_draw                         _gx_radial_progress_bar_text_draw
4788 #define gx_radial_progress_bar_value_set                         _gxe_radial_progress_bar_value_set
4789 
4790 #define gx_radial_slider_anchor_angles_set                       _gxe_radial_slider_anchor_angles_set
4791 #define gx_radial_slider_animation_set                           _gxe_radial_slider_animation_set
4792 #define gx_radial_slider_animation_start                         _gxe_radial_slider_animation_start
4793 #define gx_radial_slider_create(a, b, c, d, e, f, g)             _gxe_radial_slider_create((GX_RADIAL_SLIDER *)a, b, c, d, e, f, g, sizeof(GX_RADIAL_SLIDER))
4794 #define gx_radial_slider_draw                                    _gx_radial_slider_draw
4795 #define gx_radial_slider_event_process                           _gxe_radial_slider_event_process
4796 #define gx_radial_slider_info_get                                _gxe_radial_slider_info_get
4797 #define gx_radial_slider_info_set                                _gxe_radial_slider_info_set
4798 #define gx_radial_slider_pixelmap_set                            _gxe_radial_slider_pixelmap_set
4799 #define gx_radial_slider_angle_set                               _gxe_radial_slider_angle_set
4800 
4801 #define gx_radio_button_create(a, b, c, d, e, f, g)              _gxe_radio_button_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_RADIO_BUTTON))
4802 #define gx_radio_button_draw                                     _gx_radio_button_draw
4803 #define gx_radio_button_pixelmap_set                             _gxe_radio_button_pixelmap_set
4804 
4805 #define gx_screen_stack_create                                   _gxe_screen_stack_create
4806 #define gx_screen_stack_pop                                      _gxe_screen_stack_pop
4807 #define gx_screen_stack_push                                     _gxe_screen_stack_push
4808 #define gx_screen_stack_reset                                    _gxe_screen_stack_reset
4809 
4810 #define gx_scroll_thumb_create(a, b, c)                          _gxe_scroll_thumb_create(a, b, c, sizeof(GX_SCROLL_THUMB))
4811 #define gx_scroll_thumb_draw                                     _gx_scroll_thumb_draw
4812 #define gx_scroll_thumb_event_process                            _gxe_scroll_thumb_event_process
4813 
4814 #define gx_scrollbar_draw                                        _gx_scrollbar_draw
4815 #define gx_scrollbar_event_process                               _gxe_scrollbar_event_process
4816 #define gx_scrollbar_limit_check                                 _gxe_scrollbar_limit_check
4817 #define gx_scrollbar_reset                                       _gxe_scrollbar_reset
4818 #define gx_scrollbar_value_set                                   _gxe_scrollbar_value_set
4819 
4820 #define gx_scroll_wheel_create(a, b, c, d, e, f, g)              _gxe_scroll_wheel_create(a, b, c, d, e, f, g, sizeof(GX_SCROLL_WHEEL))
4821 #define gx_scroll_wheel_event_process                            _gxe_scroll_wheel_event_process
4822 #define gx_scroll_wheel_gradient_alpha_set(a, b, c)              _gxe_scroll_wheel_gradient_alpha_set((GX_SCROLL_WHEEL *) a, b, c)
4823 #define gx_scroll_wheel_row_height_set(a, b)                     _gxe_scroll_wheel_row_height_set((GX_SCROLL_WHEEL *) a, b)
4824 #define gx_scroll_wheel_selected_background_set(a, b)            _gxe_scroll_wheel_selected_background_set((GX_SCROLL_WHEEL *) a, b)
4825 #define gx_scroll_wheel_selected_get(a, b)                       _gxe_scroll_wheel_selected_get((GX_SCROLL_WHEEL *) a, b)
4826 #define gx_scroll_wheel_selected_set(a, b)                       _gxe_scroll_wheel_selected_set((GX_SCROLL_WHEEL *) a, b)
4827 #define gx_scroll_wheel_speed_set(a, b, c, d, e)                 _gxe_scroll_wheel_speed_set((GX_SCROLL_WHEEL *) a, b, c, d, e)
4828 #define gx_scroll_wheel_total_rows_set(a, b)                     _gxe_scroll_wheel_total_rows_set((GX_SCROLL_WHEEL *) a, b)
4829 
4830 #define gx_single_line_text_input_backspace(a)                   _gxe_single_line_text_input_backspace((GX_SINGLE_LINE_TEXT_INPUT *)a)
4831 #define gx_single_line_text_input_buffer_clear(a)                _gxe_single_line_text_input_buffer_clear((GX_SINGLE_LINE_TEXT_INPUT *)a)
4832 #define gx_single_line_text_input_buffer_get(a, b, c, d)         _gxe_single_line_text_input_buffer_get((GX_SINGLE_LINE_TEXT_INPUT *)a, b, c, d)
4833 #define gx_single_line_text_input_character_delete(a)            _gxe_single_line_text_input_character_delete(a)
4834 #define gx_single_line_text_input_character_insert(a, b, c)      _gxe_single_line_text_input_character_insert(a, b, c)
4835 #define gx_single_line_text_input_create(a, b, c, d, e, f, g, h) _gxe_single_line_text_input_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_SINGLE_LINE_TEXT_INPUT))
4836 #define gx_single_line_text_input_draw(a)                        _gx_single_line_text_input_draw(a)
4837 #define gx_single_line_text_input_draw_position_get(a, b, c)     _gxe_single_line_text_input_draw_position_get(a, b, c)
4838 #define gx_single_line_text_input_end(a)                         _gxe_single_line_text_input_end((GX_SINGLE_LINE_TEXT_INPUT *)a)
4839 #define gx_single_line_text_input_event_process(a, b)            _gxe_single_line_text_input_event_process((GX_SINGLE_LINE_TEXT_INPUT *)a, b)
4840 #define gx_single_line_text_input_fill_color_set(a, b, c, d, e)  _gxe_single_line_text_input_fill_color_set((GX_SINGLE_LINE_TEXT_INPUT *)a, b, c, d, e)
4841 #define gx_single_line_text_input_home(a)                        _gxe_single_line_text_input_home((GX_SINGLE_LINE_TEXT_INPUT *)a)
4842 #define gx_single_line_text_input_left_arrow(a)                  _gxe_single_line_text_input_left_arrow((GX_SINGLE_LINE_TEXT_INPUT *)a)
4843 #define gx_single_line_text_input_position_get(a, b)             _gxe_single_line_text_input_position_get(a, b)
4844 #define gx_single_line_text_input_right_arrow(a)                 _gxe_single_line_text_input_right_arrow((GX_SINGLE_LINE_TEXT_INPUT *)a)
4845 #define gx_single_line_text_input_style_add(a, b)                _gxe_single_line_text_input_style_add((GX_SINGLE_LINE_TEXT_INPUT *)a, b)
4846 #define gx_single_line_text_input_style_remove(a, b)             _gxe_single_line_text_input_style_remove((GX_SINGLE_LINE_TEXT_INPUT *)a, b)
4847 #define gx_single_line_text_input_style_set(a, b)                _gxe_single_line_text_input_style_set((GX_SINGLE_LINE_TEXT_INPUT *)a, b)
4848 #define gx_single_line_text_input_text_color_set(a, b, c, d, e)  _gxe_single_line_text_input_text_color_set((GX_SINGLE_LINE_TEXT_INPUT *)a, b, c, d, e)
4849 #define gx_single_line_text_input_text_select                    _gxe_single_line_text_input_text_select
4850 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4851 #define gx_single_line_text_input_text_set                       _gxe_single_line_text_input_text_set
4852 #endif
4853 #define gx_single_line_text_input_text_set_ext                   _gxe_single_line_text_input_text_set_ext
4854 
4855 #define gx_slider_create(a, b, c, d, e, f, g, h)                 _gxe_slider_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_SLIDER))
4856 #define gx_slider_draw                                           _gx_slider_draw
4857 #define gx_slider_event_process                                  _gxe_slider_event_process
4858 #define gx_slider_info_set                                       _gxe_slider_info_set
4859 #define gx_slider_needle_draw                                    _gx_slider_needle_draw
4860 #define gx_slider_needle_position_get                            _gxe_slider_needle_position_get
4861 #define gx_slider_tickmarks_draw                                 _gx_slider_tickmarks_draw
4862 #define gx_slider_travel_get                                     _gxe_slider_travel_get
4863 #define gx_slider_value_calculate                                _gxe_slider_value_calculate
4864 #define gx_slider_value_set                                      _gxe_slider_value_set
4865 
4866 #define gx_sprite_create(a, b, c, d, e, f, g, h)                 _gxe_sprite_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_SPRITE))
4867 #define gx_sprite_current_frame_set                              _gxe_sprite_current_frame_set
4868 #define gx_sprite_frame_list_set                                 _gxe_sprite_frame_list_set
4869 #define gx_sprite_start(a, b)                                    _gxe_sprite_start(a, b)
4870 #define gx_sprite_stop(a)                                        _gxe_sprite_stop(a)
4871 
4872 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4873 #define gx_string_scroll_wheel_create(a, b, c, d, e, f, g, h)    _gxe_string_scroll_wheel_create(a, b, c, d, e, f, g, h, sizeof(GX_STRING_SCROLL_WHEEL))
4874 #define gx_string_scroll_wheel_string_list_set                   _gxe_string_scroll_wheel_string_list_set
4875 #endif
4876 #define gx_string_scroll_wheel_create_ext(a, b, c, d, e, f, g, h) _gxe_string_scroll_wheel_create_ext(a, b, c, d, e, f, g, h, sizeof(GX_STRING_SCROLL_WHEEL))
4877 #define gx_string_scroll_wheel_event_process                     _gxe_string_scroll_wheel_event_process
4878 #define gx_string_scroll_wheel_string_id_list_set                _gxe_string_scroll_wheel_string_id_list_set
4879 #define gx_string_scroll_wheel_string_list_set_ext               _gxe_string_scroll_wheel_string_list_set_ext
4880 
4881 #define gx_system_active_language_set                            _gxe_system_active_language_set
4882 
4883 #if (GX_ANIMATION_POOL_SIZE > 0)
4884 #define gx_system_animation_get                                  _gxe_system_animation_get
4885 #define gx_system_animation_free                                 _gxe_system_animation_free
4886 #endif
4887 
4888 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
4889 #define gx_system_bidi_text_enable                               _gx_system_bidi_text_enable
4890 #define gx_system_bidi_text_disable                              _gx_system_bidi_text_disable
4891 #endif
4892 
4893 #if defined(GX_THAI_GLYPH_SHAPING_SUPPORT)
4894 #define gx_system_text_render_style_set                          _gx_system_text_render_style_set
4895 #endif
4896 
4897 #define gx_system_canvas_refresh                                 _gxe_system_canvas_refresh
4898 #define gx_system_dirty_mark(a)                                  _gxe_system_dirty_mark((GX_WIDGET *)a);
4899 #define gx_system_dirty_partial_add(a, b)                        _gxe_system_dirty_partial_add((GX_WIDGET *)a, b)
4900 #define gx_system_draw_context_get                               _gxe_system_draw_context_get
4901 #define gx_system_event_fold                                     _gxe_system_event_fold
4902 #define gx_system_event_send                                     _gxe_system_event_send
4903 #define gx_system_focus_claim(a)                                 _gxe_system_focus_claim((GX_WIDGET *)a)
4904 #define gx_system_initialize                                     _gxe_system_initialize
4905 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4906 #define gx_system_language_table_get                             _gxe_system_language_table_get
4907 #define gx_system_language_table_set                             _gxe_system_language_table_set
4908 #endif
4909 #define gx_system_memory_allocator_set                           _gxe_system_memory_allocator_set
4910 #define gx_system_pen_configure                                  _gxe_system_pen_configure
4911 #define gx_system_screen_stack_create(a, b)                      _gxe_system_screen_stack_create(a, b, sizeof(GX_SCREEN_STACK_CONTROL))
4912 #define gx_system_screen_stack_get                               _gxe_system_screen_stack_get
4913 #define gx_system_screen_stack_pop                               _gxe_system_screen_stack_pop
4914 #define gx_system_screen_stack_push                              _gxe_system_screen_stack_push
4915 #define gx_system_screen_stack_reset                             _gx_system_screen_stack_reset
4916 #define gx_system_scroll_appearance_get                          _gxe_system_scroll_appearance_get
4917 #define gx_system_scroll_appearance_set                          _gxe_system_scroll_appearance_set
4918 #define gx_system_start                                          _gxe_system_start
4919 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4920 #define gx_system_string_get                                     _gxe_system_string_get
4921 #define gx_system_string_table_get                               _gxe_system_string_table_get
4922 #define gx_system_string_width_get                               _gxe_system_string_width_get
4923 #endif
4924 #define gx_system_string_width_get_ext                           _gxe_system_string_width_get_ext
4925 #define gx_system_timer_start(a, b, c, d)                        _gxe_system_timer_start((GX_WIDGET *)a, b, c, d)
4926 #define gx_system_timer_stop(a, b)                               _gxe_system_timer_stop((GX_WIDGET *)a, b)
4927 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4928 #define gx_system_version_string_get                             _gxe_system_version_string_get
4929 #endif
4930 #define gx_system_version_string_get_ext                         _gxe_system_version_string_get_ext
4931 #define gx_system_widget_find                                    _gxe_system_widget_find
4932 
4933 #define gx_text_button_create(a, b, c, d, e, f, g)               _gxe_text_button_create(a, b, (GX_WIDGET *)c, d, e, f, g, sizeof(GX_TEXT_BUTTON))
4934 #define gx_text_button_draw                                      _gx_text_button_draw
4935 #define gx_text_button_event_process                             _gxe_text_button_event_process
4936 #define gx_text_button_font_set                                  _gxe_text_button_font_set
4937 #if defined(GUIX_5_4_0_COMPATIBILITY)
4938 #define gx_text_button_text_color_set(a, b, c)                   _gxe_text_button_text_color_set((GX_TEXT_BUTTON *)a, b, c, b)
4939 #else
4940 #define gx_text_button_text_color_set                            _gxe_text_button_text_color_set
4941 #endif
4942 #define gx_text_button_text_draw                                 _gx_text_button_text_draw
4943 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4944 #define gx_text_button_text_get                                  _gxe_text_button_text_get
4945 #endif
4946 #define gx_text_button_text_get_ext                              _gxe_text_button_text_get_ext
4947 #define gx_text_button_text_id_set                               _gxe_text_button_text_id_set
4948 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4949 #define gx_text_button_text_set                                  _gxe_text_button_text_set
4950 #endif
4951 #define gx_text_button_text_set_ext                              _gxe_text_button_text_set_ext
4952 
4953 #define gx_text_input_cursor_blink_interval_set(a, b)            _gxe_text_input_cursor_blink_interval_set((GX_TEXT_INPUT_CURSOR *)a, b)
4954 #define gx_text_input_cursor_height_set(a, b)                    _gxe_text_input_cursor_height_set((GX_TEXT_INPUT_CURSOR *)a, b)
4955 #define gx_text_input_cursor_width_set(a, b)                     _gxe_text_input_cursor_width_set((GX_TEXT_INPUT_CURSOR *)a, b)
4956 
4957 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
4958 #define gx_text_scroll_wheel_callback_set(a, b)                  _gxe_text_scroll_wheel_callback_set((GX_TEXT_SCROLL_WHEEL *)a, (GX_CONST GX_CHAR *(*)(GX_TEXT_SCROLL_WHEEL *, INT)) b)
4959 #endif
4960 #define gx_text_scroll_wheel_callback_set_ext(a, b)              _gxe_text_scroll_wheel_callback_set_ext((GX_TEXT_SCROLL_WHEEL *)a, (UINT(*)(GX_TEXT_SCROLL_WHEEL *, INT, GX_STRING *)) b)
4961 #define gx_text_scroll_wheel_font_set(a, b, c)                   _gxe_text_scroll_wheel_font_set((GX_TEXT_SCROLL_WHEEL *) a, b, c)
4962 #if defined(GUIX_5_4_0_COMPATIBILITY)
4963 #define gx_text_scroll_wheel_text_color_set(a, b, c)             _gxe_text_scroll_wheel_text_color_set((GX_TEXT_SCROLL_WHEEL *) a, b, c, b)
4964 #else
4965 #define gx_text_scroll_wheel_text_color_set(a, b, c, d)          _gxe_text_scroll_wheel_text_color_set((GX_TEXT_SCROLL_WHEEL *) a, b, c, d)
4966 #endif
4967 #define gx_text_scroll_wheel_create(a, b, c, d, e, f, g)         _gxe_text_scroll_wheel_create(a, b, c, d, e, f, g, sizeof(GX_TEXT_SCROLL_WHEEL))
4968 #define gx_text_scroll_wheel_draw                                _gx_text_scroll_wheel_draw
4969 #define gx_text_scroll_wheel_event_process                       _gxe_text_scroll_wheel_event_process
4970 
4971 #define gx_utility_gradient_create                               _gxe_utility_gradient_create
4972 #define gx_utility_gradient_delete                               _gxe_utility_gradient_delete
4973 #define gx_tree_view_create(a, b, c, d, e, f)                    _gxe_tree_view_create((GX_TREE_VIEW *)a, b, (GX_WIDGET *)c, d, e, f, sizeof(GX_TREE_VIEW))
4974 #define gx_tree_view_draw                                        _gx_tree_view_draw
4975 #define gx_tree_view_event_process                               _gxe_tree_view_event_process
4976 #define gx_tree_view_indentation_set                             _gxe_tree_view_indentation_set
4977 #define gx_tree_view_position                                    _gxe_tree_view_position
4978 #define gx_tree_view_root_line_color_set                         _gxe_tree_view_root_line_color_set
4979 #define gx_tree_view_root_pixelmap_set                           _gxe_tree_view_root_pixelmap_set
4980 #define gx_tree_view_selected_get                                _gxe_tree_view_selected_get
4981 #define gx_tree_view_selected_set                                _gxe_tree_view_selected_set
4982 
4983 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
4984 #define gx_utility_bidi_paragraph_reorder                        _gxe_utility_bidi_paragraph_reorder
4985 #define gx_utility_bidi_paragraph_reorder_ext                    _gxe_utility_bidi_paragraph_reorder_ext
4986 #define gx_utility_bidi_resolved_text_info_delete                _gxe_utility_bidi_resolved_text_info_delete
4987 #endif
4988 #define gx_utility_canvas_to_bmp                                 _gxe_utility_canvas_to_bmp
4989 #define gx_utility_circle_point_get                              _gxe_utility_circle_point_get
4990 #define gx_utility_ltoa                                          _gxe_utility_ltoa
4991 #if defined(GUIX_5_4_0_COMPATIBILITY)
4992 #define gx_utility_math_acos                                     _gx_utility_math_acos_5_4_0
4993 #define gx_utility_math_asin                                     _gx_utility_math_asin_5_4_0
4994 #define gx_utility_math_cos                                      _gx_utility_math_cos_5_4_0
4995 #define gx_utility_math_sin                                      _gx_utility_math_sin_5_4_0
4996 #else
4997 #define gx_utility_math_acos                                     _gx_utility_math_acos
4998 #define gx_utility_math_asin                                     _gx_utility_math_asin
4999 #define gx_utility_math_cos                                      _gx_utility_math_cos
5000 #define gx_utility_math_sin                                      _gx_utility_math_sin
5001 #endif
5002 #define gx_utility_math_sqrt                                     _gx_utility_math_sqrt
5003 #define gx_utility_pixelmap_resize                               _gxe_utility_pixelmap_resize
5004 #define gx_utility_pixelmap_rotate                               _gxe_utility_pixelmap_rotate
5005 #define gx_utility_pixelmap_simple_rotate                        _gxe_utility_pixelmap_simple_rotate
5006 #define gx_utility_rectangle_center                              _gxe_utility_rectangle_center
5007 #define gx_utility_rectangle_center_find                         _gxe_utility_rectangle_center_find
5008 #define gx_utility_rectangle_combine                             _gxe_utility_rectangle_combine
5009 #define gx_utility_rectangle_compare                             _gxe_utility_rectangle_compare
5010 #define gx_utility_rectangle_define                              _gxe_utility_rectangle_define
5011 #define gx_utility_rectangle_overlap_detect                      _gxe_utility_rectangle_overlap_detect
5012 #define gx_utility_rectangle_point_detect                        _gxe_utility_rectangle_point_detect
5013 #define gx_utility_rectangle_resize                              _gxe_utility_rectangle_resize
5014 #define gx_utility_rectangle_shift                               _gxe_utility_rectangle_shift
5015 
5016 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5017 #define gx_utility_string_to_alphamap                            _gxe_utility_string_to_alphamap
5018 #endif
5019 #define gx_utility_string_to_alphamap_ext                        _gxe_utility_string_to_alphamap_ext
5020 
5021 #define gx_vertical_list_children_position                       _gxe_vertical_list_children_position
5022 #define gx_vertical_list_create(a, b, c, d, e, f, g, h)          _gxe_vertical_list_create(a, b, (GX_WIDGET *)c, d, e, f, g, h, sizeof(GX_VERTICAL_LIST))
5023 #define gx_vertical_list_event_process                           _gxe_vertical_list_event_process
5024 #define gx_vertical_list_page_index_set(a, b)                    _gxe_vertical_list_page_index_set((GX_VERTICAL_LIST *)a, b)
5025 #define gx_vertical_list_selected_index_get(a, b)                _gxe_vertical_list_selected_index_get(a, b)
5026 #define gx_vertical_list_selected_set(a, b)                      _gxe_vertical_list_selected_set(a, b)
5027 #define gx_vertical_list_selected_widget_get(a, b)               _gxe_vertical_list_selected_widget_get(a, (GX_WIDGET **)b)
5028 #define gx_vertical_list_total_rows_set(a, b)                    _gxe_vertical_list_total_rows_set((GX_VERTICAL_LIST *)a, b)
5029 
5030 #define gx_vertical_scrollbar_create(a, b, c, d, e)              _gxe_vertical_scrollbar_create(a, b, (GX_WINDOW *)c, d, e, sizeof(GX_SCROLLBAR))
5031 
5032 #define gx_widget_allocate(a, b)                                 _gxe_widget_allocate((GX_WIDGET **)a, b)
5033 #define gx_widget_attach(a, b)                                   _gxe_widget_attach((GX_WIDGET *)a, (GX_WIDGET *)b)
5034 #define gx_widget_back_attach(a, b)                              _gxe_widget_back_attach((GX_WIDGET *)a, (GX_WIDGET *)b)
5035 #define gx_widget_back_move(a, b)                                _gxe_widget_back_move((GX_WIDGET *)a, b)
5036 #define gx_widget_background_draw(a)                             _gx_widget_background_draw((GX_WIDGET *)a)
5037 #define gx_widget_block_move(a, b, c, d)                         _gxe_widget_block_move((GX_WIDGET *)a, b, c, d)
5038 #define gx_widget_border_draw(a, b, c, d, e)                     _gx_widget_border_draw((GX_WIDGET *)a, b, c, d, e)
5039 #define gx_widget_border_style_set(a, b)                         _gxe_widget_border_style_set((GX_WIDGET *)a, b)
5040 #define gx_widget_border_width_get(a, b)                         _gxe_widget_border_width_get((GX_WIDGET *)a, b)
5041 #define gx_widget_canvas_get(a, b)                               _gxe_widget_canvas_get((GX_WIDGET *)a, b)
5042 #define gx_widget_child_detect(a, b, c)                          _gxe_widget_child_detect((GX_WIDGET *)a, b, c)
5043 #define gx_widget_children_draw(a)                               _gx_widget_children_draw((GX_WIDGET *)a)
5044 #define gx_widget_color_get(a, b, c)                             _gxe_widget_color_get((GX_WIDGET *)a, b, c)
5045 #define gx_widget_client_get(a, b, c)                            _gxe_widget_client_get((GX_WIDGET *)a, b, c)
5046 #define gx_widget_create(a, b, c, d, e, f)                       _gxe_widget_create((GX_WIDGET *)a, b, (GX_WIDGET *)c, d, e, f, sizeof(GX_WIDGET))
5047 #define gx_widget_created_test(a, b)                             _gxe_widget_created_test((GX_WIDGET *)a, b)
5048 #define gx_widget_delete(a)                                      _gxe_widget_delete((GX_WIDGET *)a)
5049 #define gx_widget_detach(a)                                      _gxe_widget_detach((GX_WIDGET *)a)
5050 #define gx_widget_draw(a)                                        _gx_widget_draw((GX_WIDGET *)a)
5051 #define gx_widget_draw_set(a, b)                                 _gxe_widget_draw_set((GX_WIDGET *)a, (void (*)(GX_WIDGET *))b)
5052 #define gx_widget_event_generate(a, b, c)                        _gxe_widget_event_generate((GX_WIDGET *)a, b, c)
5053 #define gx_widget_event_process(a, b)                            _gxe_widget_event_process((GX_WIDGET *)a, b)
5054 #define gx_widget_event_process_set(a, b)                        _gxe_widget_event_process_set((GX_WIDGET *)a, (UINT (*)(GX_WIDGET *, GX_EVENT *)) b)
5055 #define gx_widget_event_to_parent(a, b)                          _gxe_widget_event_to_parent((GX_WIDGET *)a, b)
5056 #if defined(GUIX_5_4_0_COMPATIBILITY)
5057 #define gx_widget_fill_color_set(a, b, c)                        _gxe_widget_fill_color_set((GX_WIDGET *)a, b, c, b)
5058 #else
5059 #define gx_widget_fill_color_set(a, b, c, d)                     _gxe_widget_fill_color_set((GX_WIDGET *)a, b, c, d)
5060 #endif
5061 #define gx_widget_find(a, b, c, d)                               _gxe_widget_find((GX_WIDGET *)a, b, c, (GX_WIDGET **)d)
5062 #define gx_widget_first_child_get(a, b)                          _gxe_widget_first_child_get((GX_WIDGET *) a, (GX_WIDGET **) b)
5063 #define gx_widget_focus_next(a)                                  _gxe_widget_focus_next((GX_WIDGET *)a)
5064 #define gx_widget_focus_previous(a)                              _gxe_widget_focus_previous((GX_WIDGET *)a)
5065 #define gx_widget_font_get(a, b, c)                              _gxe_widget_font_get((GX_WIDGET *)a, b, c)
5066 #define gx_widget_free(a)                                        _gxe_widget_free((GX_WIDGET *)a)
5067 #define gx_widget_front_move(a, b)                               _gxe_widget_front_move((GX_WIDGET *)a, b)
5068 #define gx_widget_height_get(a, b)                               _gxe_widget_height_get((GX_WIDGET *)a, b)
5069 #define gx_widget_hide(a)                                        _gxe_widget_hide((GX_WIDGET *)a)
5070 #define gx_widget_last_child_get(a, b)                           _gxe_widget_last_child_get((GX_WIDGET *) a, (GX_WIDGET **) b)
5071 #define gx_widget_next_sibling_get(a, b)                         _gxe_widget_next_sibling_get((GX_WIDGET *) a, (GX_WIDGET **) b)
5072 #define gx_widget_parent_get(a, b)                               _gxe_widget_parent_get((GX_WIDGET *) a, (GX_WIDGET **) b)
5073 #define gx_widget_pixelmap_get(a, b, c)                          _gxe_widget_pixelmap_get((GX_WIDGET *)a, b, c)
5074 #define gx_widget_previous_sibling_get(a, b)                     _gxe_widget_previous_sibling_get((GX_WIDGET *) a, (GX_WIDGET **) b)
5075 #define gx_widget_resize(a, b)                                   _gxe_widget_resize((GX_WIDGET *)a, b)
5076 #define gx_widget_shift(a, b, c, d)                              _gxe_widget_shift((GX_WIDGET *)a, b, c, d)
5077 #define gx_widget_show(a)                                        _gxe_widget_show((GX_WIDGET *)a)
5078 #define gx_widget_status_add(a, b)                               _gxe_widget_status_add((GX_WIDGET *)a, b)
5079 #define gx_widget_status_get(a, b)                               _gxe_widget_status_get((GX_WIDGET *)a, b)
5080 #define gx_widget_status_remove(a, b)                            _gxe_widget_status_remove((GX_WIDGET *)a, b)
5081 #define gx_widget_status_test(a, b, c)                           _gxe_widget_status_test((GX_WIDGET *)a, b, c)
5082 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5083 #define gx_widget_string_get(a, b, c)                            _gxe_widget_string_get((GX_WIDGET *)a, b, c)
5084 #endif
5085 #define gx_widget_string_get_ext(a, b, c)                        _gxe_widget_string_get_ext((GX_WIDGET *)a, b, c)
5086 #define gx_widget_style_add(a, b)                                _gxe_widget_style_add((GX_WIDGET *)a, b)
5087 #define gx_widget_style_get(a, b)                                _gxe_widget_style_get((GX_WIDGET *)a, b)
5088 #define gx_widget_style_remove(a, b)                             _gxe_widget_style_remove((GX_WIDGET *)a, b)
5089 #define gx_widget_style_set(a, b)                                _gxe_widget_style_set((GX_WIDGET *)a, b)
5090 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5091 #define gx_widget_text_blend(a, b, c, d, e, f, g)                _gxe_widget_text_blend((GX_WIDGET *)a, b, c, d, e, f, g)
5092 #define gx_widget_text_draw(a, b, c, d, e, f)                    _gx_widget_text_draw((GX_WIDGET *)a, b, c, d, e, f)
5093 #endif
5094 #define gx_widget_text_blend_ext(a, b, c, d, e, f, g)            _gxe_widget_text_blend_ext((GX_WIDGET *)a, b, c, d, e, f, g)
5095 #define gx_widget_text_draw_ext(a, b, c, d, e, f)                _gx_widget_text_draw_ext((GX_WIDGET *)a, b, c, d, e, f)
5096 #define gx_widget_text_id_draw(a, b, c, d, e, f)                 _gx_widget_text_id_draw((GX_WIDGET *)a, b, c, d, e, f)
5097 #define gx_widget_top_visible_child_find(a, b)                   _gxe_widget_top_visible_child_find((GX_WIDGET *) a, (GX_WIDGET **) b)
5098 #define gx_widget_type_find(a, b, c)                             _gxe_widget_type_find((GX_WIDGET *)a, b, (GX_WIDGET **)c)
5099 #define gx_widget_width_get(a, b)                                _gxe_widget_width_get((GX_WIDGET *)a, b)
5100 
5101 #define gx_window_background_draw                                _gx_window_background_draw
5102 #define gx_window_client_height_get                              _gxe_window_client_height_get
5103 #define gx_window_client_scroll                                  _gxe_window_client_scroll
5104 #define gx_window_client_width_get                               _gxe_window_client_width_get
5105 #define gx_window_close                                          _gxe_window_close
5106 #define gx_window_create(a, b, c, d, e, f)                       _gxe_window_create(a, b, (GX_WIDGET *)c, d, e, f, sizeof(GX_WINDOW))
5107 #define gx_window_draw                                           _gx_window_draw
5108 #define gx_window_event_process                                  _gxe_window_event_process
5109 #define gx_window_execute                                        _gxe_window_execute
5110 #define gx_window_root_create(a, b, c, d, e, f)                  _gxe_window_root_create(a, b, c, d, e, f, sizeof(GX_WINDOW_ROOT))
5111 #define gx_window_root_delete                                    _gxe_window_root_delete
5112 #define gx_window_root_event_process                             _gxe_window_root_event_process
5113 #define gx_window_root_find                                      _gxe_window_root_find
5114 #define gx_window_scroll_info_get                                _gxe_window_scroll_info_get
5115 #define gx_window_scrollbar_find                                 _gxe_window_scrollbar_find
5116 #define gx_window_wallpaper_get                                  _gxe_window_wallpaper_get
5117 #define gx_window_wallpaper_set(a, b, c)                         _gxe_window_wallpaper_set((GX_WINDOW *)a, b, c)
5118 
5119 /* Define the error checking function prototypes of the GUIX API.  */
5120 UINT _gxe_accordion_menu_create(GX_ACCORDION_MENU *accordion, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5121                                 ULONG style, USHORT accordion_menu_id, GX_CONST GX_RECTANGLE *size, UINT control_block_size);
5122 VOID _gx_accordion_menu_draw(GX_ACCORDION_MENU *menu);
5123 UINT _gxe_accordion_menu_event_process(GX_ACCORDION_MENU *accordion, GX_EVENT *event_ptr);
5124 UINT _gxe_accordion_menu_position(GX_ACCORDION_MENU *accordion);
5125 
5126 UINT _gxe_animation_canvas_define(GX_ANIMATION *animation, GX_CANVAS *canvas);
5127 UINT _gxe_animation_create(GX_ANIMATION *animation);
5128 UINT _gxe_animation_delete(GX_ANIMATION *target, GX_WIDGET *parent);
5129 UINT _gxe_animation_drag_disable(GX_ANIMATION *animation, GX_WIDGET *widget);
5130 UINT _gxe_animation_drag_enable(GX_ANIMATION *animation, GX_WIDGET *widget, GX_ANIMATION_INFO *info);
5131 UINT _gxe_animation_landing_speed_set(GX_ANIMATION *animation, USHORT shift_per_step);
5132 UINT _gxe_animation_start(GX_ANIMATION *animation, GX_ANIMATION_INFO *info);
5133 UINT _gxe_animation_stop(GX_ANIMATION *animation);
5134 
5135 UINT _gxe_binres_language_count_get(GX_UBYTE *root_address, GX_VALUE *put_count);
5136 UINT _gxe_binres_language_info_load(GX_UBYTE *root_address, GX_LANGUAGE_HEADER *put_info);
5137 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5138 UINT _gxe_binres_language_table_load(GX_UBYTE *root_address, GX_UBYTE ****returned_language_table);
5139 #endif
5140 UINT _gxe_binres_language_table_load_ext(GX_UBYTE *root_address, GX_STRING ***returned_language_table);
5141 UINT _gxe_binres_theme_load(GX_UBYTE *root_address, INT theme_id, GX_THEME **returned_theme);
5142 
5143 UINT _gxe_brush_default(GX_BRUSH *brush);
5144 UINT _gxe_brush_define(GX_BRUSH *brush, GX_COLOR line_color, GX_COLOR fill_color, UINT style);
5145 
5146 VOID _gx_button_background_draw(GX_BUTTON *button);
5147 UINT _gxe_button_create(GX_BUTTON *button,
5148                         GX_CONST GX_CHAR *name,
5149                         GX_WIDGET *parent,
5150                         ULONG style, USHORT Id,
5151                         GX_CONST GX_RECTANGLE *size,
5152                         UINT button_control_block_size);
5153 UINT _gxe_button_deselect(GX_BUTTON *button, GX_BOOL gen_event);
5154 VOID _gx_button_draw(GX_BUTTON *button);
5155 UINT _gxe_button_event_process(GX_BUTTON *button, GX_EVENT *event_ptr);
5156 UINT _gxe_button_select(GX_BUTTON *button);
5157 
5158 UINT _gxe_canvas_alpha_set(GX_CANVAS *canvas, GX_UBYTE alpha);
5159 UINT _gxe_canvas_arc_draw(INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
5160 UINT _gxe_canvas_block_move(GX_RECTANGLE *block, GX_VALUE x_shift, GX_VALUE y_shift, GX_RECTANGLE *dirty);
5161 UINT _gxe_canvas_circle_draw(INT xcenter, INT ycenter, UINT r);
5162 UINT _gxe_canvas_create(GX_CANVAS *canvas, GX_CONST GX_CHAR *name,
5163                         GX_DISPLAY *display, UINT type, UINT width, UINT height, GX_COLOR *memory_area,
5164                         ULONG memory_size, UINT canvas_control_block_size);
5165 UINT _gxe_canvas_delete(GX_CANVAS *canvas);
5166 UINT _gxe_canvas_drawing_complete(GX_CANVAS *canvas, GX_BOOL Flush);
5167 UINT _gxe_canvas_drawing_initiate(GX_CANVAS *canvas, GX_WIDGET *who, GX_RECTANGLE *dirty_area);
5168 UINT _gxe_canvas_ellipse_draw(INT xcenter, INT ycenter, INT a, INT b);
5169 UINT _gxe_canvas_hardware_layer_bind(GX_CANVAS *canvas, INT layer);
5170 UINT _gxe_canvas_hide(GX_CANVAS *canvas);
5171 UINT _gxe_canvas_line_draw(GX_VALUE x_start, GX_VALUE y_start, GX_VALUE x_end, GX_VALUE y_end);
5172 UINT _gxe_canvas_memory_define(GX_CANVAS *canvas, GX_COLOR *memory, ULONG memsize);
5173 
5174 #if defined(GX_MOUSE_SUPPORT)
5175 UINT _gxe_canvas_mouse_define(GX_CANVAS *canvas, GX_MOUSE_CURSOR_INFO *info);
5176 UINT _gxe_canvas_mouse_hide(GX_CANVAS *canvas);
5177 UINT _gxe_canvas_mouse_show(GX_CANVAS *canvas);
5178 #endif
5179 UINT _gxe_canvas_offset_set(GX_CANVAS *canvas, GX_VALUE x, GX_VALUE y);
5180 UINT _gxe_canvas_pie_draw(INT xcenter, INT ycenter, UINT r, INT start_angle, INT end_angle);
5181 UINT _gxe_canvas_pixel_draw(GX_POINT position);
5182 UINT _gxe_canvas_pixelmap_blend(GX_VALUE x_position, GX_VALUE y_position, GX_PIXELMAP *pixelmap, GX_UBYTE alpha);
5183 UINT _gxe_canvas_pixelmap_draw(GX_VALUE x_position, GX_VALUE y_position, GX_PIXELMAP *pixelmap);
5184 UINT _gxe_canvas_pixelmap_get(GX_PIXELMAP *pixelmap);
5185 UINT _gxe_canvas_pixelmap_rotate(GX_VALUE x_position, GX_VALUE y_position, GX_PIXELMAP *pixelmap,
5186                                  INT angle, INT rot_cx, INT rot_cy);
5187 UINT _gxe_canvas_pixelmap_tile(GX_RECTANGLE *fill, GX_PIXELMAP *pixelmap);
5188 UINT _gxe_canvas_polygon_draw(GX_POINT *point_array, INT number_of_points);
5189 UINT _gxe_canvas_rectangle_draw(GX_RECTANGLE *rectangle);
5190 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5191 UINT _gxe_canvas_rotated_text_draw(GX_CONST GX_CHAR *text, GX_VALUE xcenter, GX_VALUE ycenter, INT angle);
5192 #endif
5193 UINT _gxe_canvas_rotated_text_draw_ext(GX_CONST GX_STRING *text, GX_VALUE xcenter, GX_VALUE ycenter, INT angle);
5194 UINT _gxe_canvas_shift(GX_CANVAS *canvas, GX_VALUE x, GX_VALUE y);
5195 UINT _gxe_canvas_show(GX_CANVAS *canvas);
5196 
5197 UINT _gxe_canvas_aligned_text_draw(GX_CONST GX_STRING *string, GX_RECTANGLE *rectangle, ULONG alignment);
5198 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5199 UINT _gxe_canvas_text_draw(GX_VALUE x_start, GX_VALUE y_start, GX_CONST GX_CHAR *string, INT length);
5200 #endif
5201 UINT _gxe_canvas_text_draw_ext(GX_VALUE x_start, GX_VALUE y_start, GX_CONST GX_STRING *string);
5202 
5203 UINT _gxe_checkbox_create(GX_CHECKBOX *checkbox, GX_CONST GX_CHAR *name,
5204                           GX_WIDGET *parent, GX_RESOURCE_ID text_id,
5205                           ULONG style, USHORT checkbox_id, GX_CONST GX_RECTANGLE *size,
5206                           UINT checkbox_control_block_size);
5207 VOID _gx_checkbox_draw(GX_CHECKBOX *checkbox);
5208 UINT _gxe_checkbox_event_process(GX_CHECKBOX *checkbox, GX_EVENT *event_ptr);
5209 UINT _gxe_checkbox_pixelmap_set(GX_CHECKBOX *button, GX_RESOURCE_ID unchecked_id, GX_RESOURCE_ID checked_id,
5210                                 GX_RESOURCE_ID unchecked_disabled_id,  GX_RESOURCE_ID checked_disabled_id);
5211 UINT _gxe_checkbox_select(GX_CHECKBOX *checkbox);
5212 
5213 UINT _gxe_circular_gauge_angle_get(GX_CIRCULAR_GAUGE *circular_gauge, INT *angle);
5214 UINT _gxe_circular_gauge_angle_set(GX_CIRCULAR_GAUGE *circular_gauge, INT angle);
5215 UINT _gxe_circular_gauge_animation_set(GX_CIRCULAR_GAUGE *circular_gauge, INT animation_steps, INT delay);
5216 VOID _gx_circular_gauge_background_draw(GX_CIRCULAR_GAUGE *gauge);
5217 UINT _gxe_circular_gauge_create(GX_CIRCULAR_GAUGE *circular_gauge,
5218                                 GX_CONST GX_CHAR *name,
5219                                 GX_WIDGET *parent,
5220                                 GX_CIRCULAR_GAUGE_INFO *circular_gauge_info,
5221                                 GX_RESOURCE_ID background,
5222                                 ULONG style,
5223                                 USHORT circular_gauge_id,
5224                                 GX_VALUE xpos, GX_VALUE ypos, UINT checkbox_control_block_size);
5225 VOID _gx_circular_gauge_draw(GX_CIRCULAR_GAUGE *circular_gauge);
5226 UINT _gxe_circular_gauge_event_process(GX_CIRCULAR_GAUGE *circular_gauge, GX_EVENT *event_ptr);
5227 
5228 UINT _gxe_context_brush_default(GX_DRAW_CONTEXT *context);
5229 UINT _gxe_context_brush_define(GX_RESOURCE_ID line_color_id, GX_RESOURCE_ID fill_color_id, UINT style);
5230 UINT _gxe_context_brush_get(GX_BRUSH **return_brush);
5231 UINT _gxe_context_brush_pattern_set(ULONG pattern);
5232 UINT _gxe_context_brush_set(GX_BRUSH *brush);
5233 UINT _gxe_context_brush_style_set(UINT style);
5234 UINT _gxe_context_brush_width_set(UINT width);
5235 UINT _gxe_context_color_get(GX_RESOURCE_ID color_id, GX_COLOR *return_color);
5236 UINT _gxe_context_fill_color_set(GX_RESOURCE_ID fill_color_id);
5237 UINT _gxe_context_font_get(GX_RESOURCE_ID font_id, GX_FONT **return_font);
5238 UINT _gxe_context_font_set(GX_RESOURCE_ID font_id);
5239 UINT _gxe_context_line_color_set(GX_RESOURCE_ID line_color_id);
5240 UINT _gxe_context_pixelmap_get(GX_RESOURCE_ID resource_id, GX_PIXELMAP **return_pixelmap);
5241 UINT _gxe_context_pixelmap_set(GX_RESOURCE_ID pixelmap_id);
5242 UINT _gxe_context_raw_brush_define(GX_COLOR line_color, GX_COLOR fill_color, UINT style);
5243 UINT _gxe_context_raw_fill_color_set(GX_COLOR line_color);
5244 UINT _gxe_context_raw_line_color_set(GX_COLOR line_color);
5245 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5246 UINT _gxe_context_string_get(GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
5247 #endif
5248 UINT _gxe_context_string_get_ext(GX_RESOURCE_ID string_id, GX_STRING *return_string);
5249 
5250 UINT _gxe_display_active_language_set(GX_DISPLAY *display, GX_UBYTE language);
5251 UINT _gxe_display_color_set(GX_DISPLAY *display, GX_RESOURCE_ID resource_id, GX_COLOR new_color);
5252 UINT _gxe_display_color_table_set(GX_DISPLAY *display, GX_COLOR *color_table, INT number_of_colors);
5253 UINT _gxe_display_create(GX_DISPLAY *display, GX_CONST GX_CHAR *name, UINT (*display_driver_setup)(GX_DISPLAY *),
5254                          GX_VALUE width, GX_VALUE height, UINT display_control_block_size);
5255 UINT _gxe_display_delete(GX_DISPLAY *display, VOID (*display_driver_cleanup)(GX_DISPLAY *));
5256 UINT _gxe_display_font_table_set(GX_DISPLAY *display, GX_FONT **font_table, UINT number_of_fonts);
5257 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5258 UINT _gxe_display_language_table_get(GX_DISPLAY *display, GX_CHAR ****table, GX_UBYTE *language_count, UINT *string_count);
5259 UINT _gxe_display_language_table_set(GX_DISPLAY *display, GX_CHAR ***table,  GX_UBYTE num_languages, UINT number_of_strings);
5260 #endif
5261 UINT _gxe_display_language_table_get_ext(GX_DISPLAY *display, GX_STRING ***table, GX_UBYTE *language_count, UINT *string_count);
5262 UINT _gxe_display_language_table_set_ext(GX_DISPLAY *display, GX_CONST GX_STRING **table,  GX_UBYTE num_languages, UINT number_of_strings);
5263 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
5264 UINT _gxe_display_language_direction_table_set(GX_DISPLAY *display, GX_CONST GX_UBYTE *language_direction_table, GX_UBYTE num_languages);
5265 #endif
5266 UINT _gxe_display_pixelmap_table_set(GX_DISPLAY *display, GX_PIXELMAP **pixelmap_table, UINT number_of_pixelmaps);
5267 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5268 UINT _gxe_display_string_get(GX_DISPLAY *display, GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
5269 UINT _gxe_display_string_table_get(GX_DISPLAY *display, GX_UBYTE language, GX_CHAR ***table, UINT *size);
5270 #endif
5271 UINT _gxe_display_string_get_ext(GX_DISPLAY *display, GX_RESOURCE_ID string_id, GX_STRING *return_string);
5272 UINT _gxe_display_string_table_get_ext(GX_DISPLAY *display, GX_UBYTE language, GX_STRING **table, UINT *size);
5273 UINT _gxe_display_theme_install(GX_DISPLAY *display, GX_CONST GX_THEME *theme_ptr);
5274 
5275 UINT _gxe_drop_list_close(GX_DROP_LIST *drop_list);
5276 UINT _gxe_drop_list_create(GX_DROP_LIST *drop_list, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5277                            INT total_rows, INT open_height,
5278                            VOID (*callback)(GX_VERTICAL_LIST *, GX_WIDGET *, INT),
5279                            ULONG style, USHORT drop_list_id, GX_CONST GX_RECTANGLE *size, UINT drop_list_control_block_size);
5280 UINT _gxe_drop_list_event_process(GX_DROP_LIST *list, GX_EVENT *event_ptr);
5281 UINT _gxe_drop_list_open(GX_DROP_LIST *list);
5282 UINT _gxe_drop_list_pixelmap_set(GX_DROP_LIST *drop_list, GX_RESOURCE_ID pixelmap_id);
5283 UINT _gxe_drop_list_popup_get(GX_DROP_LIST *box, GX_VERTICAL_LIST **return_list);
5284 
5285 UINT _gxe_generic_scroll_wheel_create(GX_GENERIC_SCROLL_WHEEL *wheel,
5286                                       GX_CONST GX_CHAR *name,
5287                                       GX_WIDGET *parent,
5288                                       INT total_rows,
5289                                       VOID (*callback)(GX_GENERIC_SCROLL_WHEEL *, GX_WIDGET *, INT),
5290                                       ULONG style,
5291                                       USHORT id,
5292                                       GX_CONST GX_RECTANGLE *size,
5293                                       UINT control_block_size);
5294 UINT _gxe_generic_scroll_wheel_children_position(GX_GENERIC_SCROLL_WHEEL *wheel);
5295 UINT _gxe_generic_scroll_wheel_event_process(GX_GENERIC_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
5296 UINT _gxe_generic_scroll_wheel_row_height_set(GX_GENERIC_SCROLL_WHEEL *wheel, GX_VALUE row_height);
5297 UINT _gxe_generic_scroll_wheel_total_rows_set(GX_GENERIC_SCROLL_WHEEL *wheel, INT count);
5298 
5299 UINT _gxe_horizontal_list_children_position(GX_HORIZONTAL_LIST *horizontal_list);
5300 UINT _gxe_horizontal_list_create(GX_HORIZONTAL_LIST *horizontal_list, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5301                                  INT total_columns, VOID (*callback)(GX_HORIZONTAL_LIST *, GX_WIDGET *, INT),
5302                                  ULONG style, USHORT horizontal_list_id,
5303                                  GX_CONST GX_RECTANGLE *size, UINT horizontal_list_control_block_size);
5304 UINT _gxe_horizontal_list_event_process(GX_HORIZONTAL_LIST *list, GX_EVENT *event_ptr);
5305 UINT _gxe_horizontal_list_page_index_set(GX_HORIZONTAL_LIST *horizontal_list, INT list_entry);
5306 UINT _gxe_horizontal_list_selected_index_get(GX_HORIZONTAL_LIST *horizontal_list, INT *return_index);
5307 UINT _gxe_horizontal_list_selected_set(GX_HORIZONTAL_LIST *horizontal_list, INT index);
5308 UINT _gxe_horizontal_list_selected_widget_get(GX_HORIZONTAL_LIST *horizontal_list, GX_WIDGET **return_list_entry);
5309 UINT _gxe_horizontal_list_total_columns_set(GX_HORIZONTAL_LIST *horizontal_list, INT count);
5310 
5311 UINT _gxe_horizontal_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name, GX_WINDOW *parent,
5312                                       GX_SCROLLBAR_APPEARANCE *appearance, ULONG style, UINT scrollbar_control_block_size);
5313 
5314 VOID _gx_icon_background_draw(GX_ICON *icon);
5315 UINT _gxe_icon_button_create(GX_ICON_BUTTON *button, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5316                              GX_RESOURCE_ID icon_id, ULONG style, USHORT icon_button_id,
5317                              GX_CONST GX_RECTANGLE *size, UINT button_control_block_size);
5318 VOID _gx_icon_button_draw(GX_ICON_BUTTON *button);
5319 UINT _gxe_icon_button_pixelmap_set(GX_ICON_BUTTON *button, GX_RESOURCE_ID icon_id);
5320 UINT _gxe_icon_create(GX_ICON *icon, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5321                       GX_RESOURCE_ID pixelmap_id, ULONG style, USHORT icon_id,
5322                       GX_VALUE x, GX_VALUE y, UINT icon_control_block_size);
5323 VOID _gx_icon_draw(GX_ICON *icon);
5324 UINT _gxe_icon_event_process(GX_ICON *icon, GX_EVENT *event_ptr);
5325 UINT _gxe_icon_pixelmap_set(GX_ICON *icon, GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id);
5326 
5327 UINT _gxe_image_reader_create(GX_IMAGE_READER *image_reader,
5328                               GX_CONST GX_UBYTE *read_data,
5329                               INT read_data_size,
5330                               GX_UBYTE color_format,
5331                               GX_UBYTE mode);
5332 UINT _gxe_image_reader_palette_set(GX_IMAGE_READER *image_reader, GX_COLOR *pal, UINT palsize);
5333 UINT _gxe_image_reader_start(GX_IMAGE_READER *image_reader, GX_PIXELMAP *outmap);
5334 
5335 VOID _gx_line_chart_axis_draw(GX_LINE_CHART *chart);
5336 UINT _gxe_line_chart_create(GX_LINE_CHART *chart,
5337                             GX_CONST GX_CHAR *name,
5338                             GX_WIDGET *parent,
5339                             GX_CONST GX_LINE_CHART_INFO *info,
5340                             ULONG style,
5341                             USHORT chart_id,
5342                             GX_CONST GX_RECTANGLE *size,
5343                             UINT chart_control_block_size);
5344 VOID _gx_line_chart_data_draw(GX_LINE_CHART *chart);
5345 VOID _gx_line_chart_draw(GX_LINE_CHART *chart);
5346 UINT _gxe_line_chart_update(GX_LINE_CHART *chart, INT *data, INT data_count);
5347 UINT _gxe_line_chart_y_scale_calculate(GX_LINE_CHART *chart, INT *return_val);
5348 
5349 UINT _gxe_menu_create(GX_MENU *menu, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5350                       GX_RESOURCE_ID text_id, GX_RESOURCE_ID fill_id,
5351                       ULONG style, USHORT menu_id, GX_CONST GX_RECTANGLE *size, UINT control_block_size);
5352 VOID _gx_menu_draw(GX_MENU *menu);
5353 UINT _gxe_menu_event_process(GX_MENU *menu, GX_EVENT *event_ptr);
5354 UINT _gxe_menu_insert(GX_MENU *menu, GX_WIDGET *widget);
5355 UINT _gxe_menu_remove(GX_MENU *menu, GX_WIDGET *widget);
5356 VOID _gx_menu_text_draw(GX_MENU *menu);
5357 UINT _gxe_menu_text_offset_set(GX_MENU *menu, GX_VALUE x_offset, GX_VALUE y_offset);
5358 
5359 UINT _gxe_multi_line_text_button_create(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_CHAR *name,
5360                                         GX_WIDGET *parent, GX_RESOURCE_ID text_id, ULONG style, USHORT Id,
5361                                         GX_CONST GX_RECTANGLE *size, UINT control_block_size);
5362 VOID _gx_multi_line_text_button_draw(GX_MULTI_LINE_TEXT_BUTTON *button);
5363 UINT _gxe_multi_line_text_button_event_process(GX_MULTI_LINE_TEXT_BUTTON *button, GX_EVENT *event_ptr);
5364 VOID _gx_multi_line_text_button_text_draw(GX_MULTI_LINE_TEXT_BUTTON *button);
5365 UINT _gxe_multi_line_text_button_text_id_set(GX_MULTI_LINE_TEXT_BUTTON *button, GX_RESOURCE_ID string_id);
5366 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5367 UINT _gxe_multi_line_text_button_text_set(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_CHAR *text);
5368 #endif
5369 UINT _gxe_multi_line_text_button_text_set_ext(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_STRING *text);
5370 
5371 UINT _gxe_multi_line_text_input_backspace(GX_MULTI_LINE_TEXT_INPUT *text_input);
5372 UINT _gxe_multi_line_text_input_buffer_clear(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr);
5373 UINT _gxe_multi_line_text_input_buffer_get(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, GX_CHAR **buffer_address,
5374                                            UINT *content_size, UINT *buffer_size);
5375 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5376 UINT _gxe_multi_line_text_input_char_insert(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_UBYTE *str, UINT str_size);
5377 #endif
5378 UINT _gxe_multi_line_text_input_char_insert_ext(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_CONST GX_STRING *str);
5379 UINT _gxe_multi_line_text_input_create(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, GX_CONST GX_CHAR *name_ptr,
5380                                        GX_WIDGET *parent, GX_CHAR *input_buffer, UINT buffer_size,
5381                                        ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size,
5382                                        UINT text_input_control_block_size);
5383 UINT _gxe_multi_line_text_input_cursor_pos_get(GX_MULTI_LINE_TEXT_INPUT *input, GX_POINT *cursor_pos);
5384 UINT _gxe_multi_line_text_input_delete(GX_MULTI_LINE_TEXT_INPUT *text_input);
5385 UINT _gxe_multi_line_text_input_down_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
5386 UINT _gxe_multi_line_text_input_end(GX_MULTI_LINE_TEXT_INPUT *text_input);
5387 UINT _gxe_multi_line_text_input_event_process(GX_MULTI_LINE_TEXT_INPUT *input, GX_EVENT *event_ptr);
5388 UINT _gxe_multi_line_text_input_style_add(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, ULONG cursor_type);
5389 UINT _gxe_multi_line_text_input_style_remove(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, ULONG cursor_type);
5390 UINT _gxe_multi_line_text_input_style_set(GX_MULTI_LINE_TEXT_INPUT *text_input_ptr, ULONG cursor_type);
5391 UINT _gxe_multi_line_text_input_fill_color_set(GX_MULTI_LINE_TEXT_INPUT *view,
5392                                                GX_RESOURCE_ID normal_color_id,
5393                                                GX_RESOURCE_ID selected_color_id,
5394                                                GX_RESOURCE_ID disabled_color_id,
5395                                                GX_RESOURCE_ID readonly_color_id);
5396 UINT _gxe_multi_line_text_input_home(GX_MULTI_LINE_TEXT_INPUT *text_input);
5397 UINT _gxe_multi_line_text_input_left_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
5398 UINT _gxe_multi_line_text_input_right_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
5399 UINT _gxe_multi_line_text_input_text_color_set(GX_MULTI_LINE_TEXT_INPUT *view,
5400                                                GX_RESOURCE_ID normal_color_id,
5401                                                GX_RESOURCE_ID selected_color_id,
5402                                                GX_RESOURCE_ID disabled_color_id,
5403                                                GX_RESOURCE_ID readonly_color_id);
5404 UINT _gxe_multi_line_text_input_text_select(GX_MULTI_LINE_TEXT_INPUT *input, UINT start_index, UINT end_index);
5405 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5406 UINT _gxe_multi_line_text_input_text_set(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_CONST GX_CHAR *text);
5407 #endif
5408 UINT _gxe_multi_line_text_input_text_set_ext(GX_MULTI_LINE_TEXT_INPUT *text_input, GX_CONST GX_STRING *text);
5409 UINT _gxe_multi_line_text_input_up_arrow(GX_MULTI_LINE_TEXT_INPUT *text_input);
5410 
5411 UINT _gxe_multi_line_text_view_create(GX_MULTI_LINE_TEXT_VIEW *text_view_ptr, GX_CONST GX_CHAR *name_ptr,
5412                                       GX_WIDGET *parent, GX_RESOURCE_ID text_id,
5413                                       ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size,
5414                                       UINT text_view_control_block_size);
5415 VOID _gx_multi_line_text_view_draw(GX_MULTI_LINE_TEXT_VIEW *view);
5416 UINT _gxe_multi_line_text_view_event_process(GX_MULTI_LINE_TEXT_VIEW *view, GX_EVENT *event_ptr);
5417 UINT _gxe_multi_line_text_view_font_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_RESOURCE_ID font_id);
5418 UINT _gxe_multi_line_text_view_line_space_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_BYTE line_space);
5419 UINT _gxe_multi_line_text_view_scroll_info_get(GX_MULTI_LINE_TEXT_VIEW *view, ULONG style, GX_SCROLL_INFO *return_scroll_info);
5420 UINT _gxe_multi_line_text_view_text_color_set(GX_MULTI_LINE_TEXT_VIEW *view,
5421                                               GX_RESOURCE_ID normal_color_id,
5422                                               GX_RESOURCE_ID selected_color_id,
5423                                               GX_RESOURCE_ID disabled_color_id);
5424 UINT _gxe_multi_line_text_view_text_id_set(GX_MULTI_LINE_TEXT_VIEW *text_view_ptr, GX_RESOURCE_ID text_id);
5425 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5426 UINT _gxe_multi_line_text_view_text_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_CONST GX_CHAR *text);
5427 #endif
5428 UINT _gxe_multi_line_text_view_text_set_ext(GX_MULTI_LINE_TEXT_VIEW *view, GX_CONST GX_STRING *text);
5429 UINT _gxe_multi_line_text_view_whitespace_set(GX_MULTI_LINE_TEXT_VIEW *view, GX_UBYTE whitespace);
5430 
5431 UINT _gxe_rich_text_view_create(GX_RICH_TEXT_VIEW *rich_view,
5432                                 GX_CONST GX_CHAR *name,
5433                                 GX_WIDGET *parent,
5434                                 GX_RESOURCE_ID text_id,
5435                                 GX_RICH_TEXT_FONTS *fonts,
5436                                 ULONG style,
5437                                 USHORT id,
5438                                 GX_CONST GX_RECTANGLE *size,
5439                                 UINT control_block_size);
5440 VOID _gx_rich_text_view_draw(GX_RICH_TEXT_VIEW *text_view);
5441 VOID _gx_rich_text_view_text_draw(GX_RICH_TEXT_VIEW *text_view);
5442 UINT _gxe_rich_text_view_fonts_set(GX_RICH_TEXT_VIEW *rich_view, GX_RICH_TEXT_FONTS *fonts);
5443 
5444 UINT _gxe_numeric_pixelmap_prompt_create(GX_NUMERIC_PIXELMAP_PROMPT *prompt,
5445                                          GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5446                                          GX_RESOURCE_ID text_id, GX_RESOURCE_ID fill_id,
5447                                          ULONG style, USHORT pixelmap_prompt_id,
5448                                          GX_CONST GX_RECTANGLE *size,
5449                                          UINT control_block_size);
5450 UINT _gxe_numeric_pixelmap_prompt_format_function_set(GX_NUMERIC_PIXELMAP_PROMPT *prompt, VOID (*format_func)(GX_NUMERIC_PIXELMAP_PROMPT *, INT));
5451 UINT _gxe_numeric_pixelmap_prompt_value_set(GX_NUMERIC_PIXELMAP_PROMPT *prompt, INT value);
5452 
5453 UINT _gxe_numeric_prompt_create(GX_NUMERIC_PROMPT *prompt, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5454                                 GX_RESOURCE_ID text_id, ULONG style, USHORT prompt_id, GX_CONST GX_RECTANGLE *size,
5455                                 UINT control_block_size);
5456 UINT _gxe_numeric_prompt_format_function_set(GX_NUMERIC_PROMPT *prompt, VOID (*format_func)(GX_NUMERIC_PROMPT *, INT));
5457 UINT _gxe_numeric_prompt_value_set(GX_NUMERIC_PROMPT *prompt, INT value);
5458 
5459 UINT _gxe_numeric_scroll_wheel_create(GX_NUMERIC_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5460                                       INT start_val, INT end_val,
5461                                       ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size,
5462                                       UINT numeric_scroll_control_block_size);
5463 UINT _gxe_numeric_scroll_wheel_range_set(GX_NUMERIC_SCROLL_WHEEL *wheel, INT start_val, INT end_val);
5464 
5465 UINT _gxe_pixelmap_button_create(GX_PIXELMAP_BUTTON *button, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5466                                  GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id,
5467                                  GX_RESOURCE_ID disabled_id, ULONG style, USHORT pixelmap_button_id,
5468                                  GX_CONST GX_RECTANGLE *size, UINT button_control_block_size);
5469 VOID _gx_pixelmap_button_draw(GX_PIXELMAP_BUTTON *button);
5470 UINT _gxe_pixelmap_button_event_process(GX_PIXELMAP_BUTTON *button, GX_EVENT *event_ptr);
5471 UINT _gxe_pixelmap_button_pixelmap_set(GX_PIXELMAP_BUTTON *button, GX_RESOURCE_ID normal_id, GX_RESOURCE_ID selected_id,
5472                                        GX_RESOURCE_ID disabled_id);
5473 
5474 UINT _gxe_pixelmap_prompt_create(GX_PIXELMAP_PROMPT *prompt, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5475                                  GX_RESOURCE_ID text_id, GX_RESOURCE_ID normal_pixelmap_id,
5476                                  ULONG style, USHORT prompt_id, GX_CONST GX_RECTANGLE *size,
5477                                  UINT pixelmap_prompt_control_block_size);
5478 VOID _gx_pixelmap_prompt_draw(GX_PIXELMAP_PROMPT *prompt);
5479 UINT _gxe_pixelmap_prompt_pixelmap_set(GX_PIXELMAP_PROMPT *prompt,
5480                                        GX_RESOURCE_ID normal_left_id,
5481                                        GX_RESOURCE_ID normal_fill_id,
5482                                        GX_RESOURCE_ID normal_right_id,
5483                                        GX_RESOURCE_ID selected_left_id,
5484                                        GX_RESOURCE_ID selected_fill_id,
5485                                        GX_RESOURCE_ID selected_right_id);
5486 
5487 UINT _gxe_pixelmap_slider_create(GX_PIXELMAP_SLIDER *slider, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5488                                  GX_SLIDER_INFO *info,
5489                                  GX_PIXELMAP_SLIDER_INFO *pixelmap_info,
5490                                  ULONG style, USHORT pixelmap_slider_id, GX_CONST GX_RECTANGLE *size,
5491                                  UINT pixelmap_slider_control_block_size);
5492 VOID _gx_pixelmap_slider_draw(GX_PIXELMAP_SLIDER *slider);
5493 UINT _gxe_pixelmap_slider_event_process(GX_PIXELMAP_SLIDER *slider, GX_EVENT *event_prt);
5494 UINT _gxe_pixelmap_slider_pixelmap_set(GX_PIXELMAP_SLIDER *slider, GX_PIXELMAP_SLIDER_INFO *info);
5495 
5496 VOID _gx_progress_bar_background_draw(GX_PROGRESS_BAR *progress_bar);
5497 UINT _gxe_progress_bar_create(GX_PROGRESS_BAR *progress_bar, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5498                               GX_PROGRESS_BAR_INFO *progress_bar_info, ULONG style,
5499                               USHORT progress_bar_id, GX_CONST GX_RECTANGLE *size,
5500                               UINT progress_bar_control_block_size);
5501 VOID _gx_progress_bar_draw(GX_PROGRESS_BAR *progress_bar);
5502 UINT _gxe_progress_bar_event_process(GX_PROGRESS_BAR *progress_bar, GX_EVENT *event_ptr);
5503 UINT _gxe_progress_bar_font_set(GX_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID font_id);
5504 UINT _gxe_progress_bar_info_set(GX_PROGRESS_BAR *progress_bar, GX_PROGRESS_BAR_INFO *info);
5505 UINT _gxe_progress_bar_pixelmap_set(GX_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID pixelmap);
5506 UINT _gxe_progress_bar_range_set(GX_PROGRESS_BAR *progress_bar, INT min_value, INT max_value);
5507 UINT _gxe_progress_bar_text_color_set(GX_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID normal_text_color_id,
5508                                       GX_RESOURCE_ID selected_text_color_id, GX_RESOURCE_ID disabled_text_color_id);
5509 VOID _gx_progress_bar_text_draw(GX_PROGRESS_BAR *progress_bar);
5510 UINT _gxe_progress_bar_value_set(GX_PROGRESS_BAR *progress_bar, INT new_value);
5511 
5512 UINT _gxe_prompt_create(GX_PROMPT *prompt, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5513                         GX_RESOURCE_ID text_id, ULONG style, USHORT prompt_id,
5514                         GX_CONST GX_RECTANGLE *size, UINT prompt_control_block_size);
5515 UINT _gxe_prompt_event_process(GX_PROMPT *prompt, GX_EVENT *event_ptr);
5516 VOID _gx_prompt_draw(GX_PROMPT *prompt);
5517 UINT _gxe_prompt_font_set(GX_PROMPT *prompt, GX_RESOURCE_ID fontid);
5518 UINT _gxe_prompt_text_color_set(GX_PROMPT *prompt,
5519                                 GX_RESOURCE_ID normal_text_color_id,
5520                                 GX_RESOURCE_ID selected_text_color_id,
5521                                 GX_RESOURCE_ID disabled_text_color_id);
5522 VOID _gx_prompt_text_draw(GX_PROMPT *prompt);
5523 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5524 UINT _gxe_prompt_text_get(GX_PROMPT *prompt, GX_CONST GX_CHAR **return_text);
5525 #endif
5526 UINT _gxe_prompt_text_get_ext(GX_PROMPT *prompt, GX_STRING *return_text);
5527 UINT _gxe_prompt_text_id_set(GX_PROMPT *prompt, GX_RESOURCE_ID string_id);
5528 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5529 UINT _gxe_prompt_text_set(GX_PROMPT *prompt, GX_CONST GX_CHAR *text);
5530 #endif
5531 UINT _gxe_prompt_text_set_ext(GX_PROMPT *prompt, GX_CONST GX_STRING *text);
5532 
5533 UINT _gxe_radial_progress_bar_anchor_set(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_VALUE angle);
5534 VOID _gx_radial_progress_bar_background_draw(GX_RADIAL_PROGRESS_BAR *progress_bar);
5535 UINT _gxe_radial_progress_bar_create(GX_RADIAL_PROGRESS_BAR *progress_bar,
5536                                      GX_CONST GX_CHAR *name,
5537                                      GX_WIDGET *parent,
5538                                      GX_RADIAL_PROGRESS_BAR_INFO *progress_bar_info,
5539                                      ULONG style,
5540                                      USHORT progress_bar_id,
5541                                      UINT progress_bar_control_block_size);
5542 VOID _gx_radial_progress_bar_draw(GX_RADIAL_PROGRESS_BAR *progress_bar);
5543 UINT _gxe_radial_progress_bar_event_process(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_EVENT *event_ptr);
5544 UINT _gxe_radial_progress_bar_font_set(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_RESOURCE_ID font_id);
5545 UINT _gxe_radial_progress_bar_info_set(GX_RADIAL_PROGRESS_BAR *bar, GX_RADIAL_PROGRESS_BAR_INFO *info);
5546 UINT _gxe_radial_progress_bar_text_color_set(GX_RADIAL_PROGRESS_BAR *progress_bar,
5547                                              GX_RESOURCE_ID normal_text_color_id,
5548                                              GX_RESOURCE_ID selected_text_color_id,
5549                                              GX_RESOURCE_ID disabled_text_color_id);
5550 VOID _gx_radial_progress_bar_text_draw(GX_RADIAL_PROGRESS_BAR *bar);
5551 UINT _gxe_radial_progress_bar_value_set(GX_RADIAL_PROGRESS_BAR *progress_bar, GX_VALUE new_value);
5552 
5553 UINT _gxe_radial_slider_anchor_angles_set(GX_RADIAL_SLIDER *slider, GX_VALUE *anchor_angles, USHORT anchor_count);
5554 UINT _gxe_radial_slider_animation_set(GX_RADIAL_SLIDER *slider, USHORT steps, USHORT delay, USHORT animation_style,
5555                                       VOID (*animation_update_callback)(GX_RADIAL_SLIDER *slider));
5556 UINT _gxe_radial_slider_animation_start(GX_RADIAL_SLIDER *slider, GX_VALUE new_value);
5557 UINT _gxe_radial_slider_create(GX_RADIAL_SLIDER *slider, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5558                                GX_RADIAL_SLIDER_INFO *info, ULONG style, USHORT slider_id, GX_CONST GX_RECTANGLE *size, UINT control_block_size);
5559 VOID _gx_radial_slider_draw(GX_RADIAL_SLIDER *slider);
5560 UINT _gxe_radial_slider_event_process(GX_RADIAL_SLIDER *slider, GX_EVENT *event_ptr);
5561 UINT _gxe_radial_slider_info_get(GX_RADIAL_SLIDER *slider, GX_RADIAL_SLIDER_INFO **info);
5562 UINT _gxe_radial_slider_info_set(GX_RADIAL_SLIDER *slider,  GX_RADIAL_SLIDER_INFO *info);
5563 UINT _gxe_radial_slider_pixelmap_set(GX_RADIAL_SLIDER *slider, GX_RESOURCE_ID background_pixelmap, GX_RESOURCE_ID needle_pixelmap);
5564 UINT _gxe_radial_slider_angle_set(GX_RADIAL_SLIDER *slider, GX_VALUE new_angle);
5565 
5566 UINT _gxe_radio_button_create(GX_RADIO_BUTTON *button, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5567                               GX_RESOURCE_ID text_id, ULONG style, USHORT radio_button_id,
5568                               GX_CONST GX_RECTANGLE *size, UINT radio_button_control_block_size);
5569 VOID _gx_radio_button_draw(GX_RADIO_BUTTON *button);
5570 UINT _gxe_radio_button_pixelmap_set(GX_RADIO_BUTTON *button, GX_RESOURCE_ID unchecked_id, GX_RESOURCE_ID checked_id,
5571                                     GX_RESOURCE_ID unchecked_disabled_id, GX_RESOURCE_ID checked_disabled_id);
5572 
5573 UINT _gxe_screen_stack_create(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET **memory, INT size);
5574 UINT _gxe_screen_stack_pop(GX_SCREEN_STACK_CONTROL *control);
5575 UINT _gxe_screen_stack_push(GX_SCREEN_STACK_CONTROL *control, GX_WIDGET *screen, GX_WIDGET *new_screen);
5576 UINT _gxe_screen_stack_reset(GX_SCREEN_STACK_CONTROL *control);
5577 
5578 UINT _gxe_scroll_thumb_create(GX_SCROLL_THUMB *scroll_thumb, GX_SCROLLBAR *parent, ULONG style, UINT scroll_thumb_control_block_size);
5579 VOID _gx_scroll_thumb_draw(GX_SCROLL_THUMB *scroll_thumb);
5580 UINT _gxe_scroll_thumb_event_process(GX_SCROLL_THUMB *scroll_thumb, GX_EVENT *event_ptr);
5581 
5582 VOID _gx_scrollbar_draw(GX_SCROLLBAR *scrollbar);
5583 UINT _gxe_scrollbar_event_process(GX_SCROLLBAR *scrollbar, GX_EVENT *event_ptr);
5584 UINT _gxe_scrollbar_limit_check(GX_SCROLLBAR *scrollbar);
5585 UINT _gxe_scrollbar_reset(GX_SCROLLBAR *scrollbar, GX_SCROLL_INFO *info);
5586 UINT _gxe_scrollbar_value_set(GX_SCROLLBAR *scrollbar, INT value);
5587 
5588 UINT _gxe_scroll_wheel_create(GX_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT total_rows,
5589                               ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size, UINT control_block_size);
5590 UINT _gxe_scroll_wheel_event_process(GX_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
5591 UINT _gxe_scroll_wheel_gradient_alpha_set(GX_SCROLL_WHEEL *wheel, GX_UBYTE start_alpha, GX_UBYTE end_alpha);
5592 UINT _gxe_scroll_wheel_row_height_set(GX_SCROLL_WHEEL *wheel, GX_VALUE row_height);
5593 UINT _gxe_scroll_wheel_selected_background_set(GX_SCROLL_WHEEL *wheel, GX_RESOURCE_ID selected_bg);
5594 UINT _gxe_scroll_wheel_selected_get(GX_SCROLL_WHEEL *wheel, INT *row);
5595 UINT _gxe_scroll_wheel_selected_set(GX_SCROLL_WHEEL *wheel, INT row);
5596 UINT _gxe_scroll_wheel_speed_set(GX_SCROLL_WHEEL *wheel, GX_FIXED_VAL start_speed_rate, GX_FIXED_VAL end_speed_rate, GX_VALUE max_steps, GX_VALUE delay);
5597 UINT _gxe_scroll_wheel_total_rows_set(GX_SCROLL_WHEEL *wheel, INT total_rows);
5598 
5599 UINT _gxe_single_line_text_input_backspace(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5600 UINT _gxe_single_line_text_input_buffer_clear(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5601 UINT _gxe_single_line_text_input_buffer_get(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, GX_CHAR **buffer_address,
5602                                             UINT *content_size, UINT *buffer_size);
5603 UINT _gxe_single_line_text_input_character_delete(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5604 UINT _gxe_single_line_text_input_character_insert(GX_SINGLE_LINE_TEXT_INPUT *text_input, GX_UBYTE *str, UINT str_size);
5605 UINT _gxe_single_line_text_input_create(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr,
5606                                         GX_CONST GX_CHAR *name, GX_WIDGET *parent, GX_CHAR *input_buffer,
5607                                         UINT buffer_size, UINT style, USHORT text_input_id,
5608                                         GX_CONST GX_RECTANGLE *size,
5609                                         UINT text_input_control_block_size);
5610 VOID _gx_single_line_text_input_draw(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5611 UINT _gxe_single_line_text_input_draw_position_get(GX_SINGLE_LINE_TEXT_INPUT *input, GX_VALUE *xpos, GX_VALUE *ypos);
5612 UINT _gxe_single_line_text_input_end(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5613 UINT _gxe_single_line_text_input_event_process(GX_SINGLE_LINE_TEXT_INPUT *text_input, GX_EVENT *event_ptr);
5614 UINT _gxe_single_line_text_input_home(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5615 UINT _gxe_single_line_text_input_left_arrow(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5616 UINT _gxe_single_line_text_input_position_get(GX_SINGLE_LINE_TEXT_INPUT *text_input, INT pixel_position);
5617 UINT _gxe_single_line_text_input_right_arrow(GX_SINGLE_LINE_TEXT_INPUT *text_input);
5618 UINT _gxe_single_line_text_input_style_add(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, ULONG style);
5619 UINT _gxe_single_line_text_input_style_remove(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, ULONG style);
5620 UINT _gxe_single_line_text_input_style_set(GX_SINGLE_LINE_TEXT_INPUT *text_input_ptr, ULONG style);
5621 UINT _gxe_single_line_text_input_fill_color_set(GX_SINGLE_LINE_TEXT_INPUT *input,
5622                                                 GX_RESOURCE_ID normal_color_id,
5623                                                 GX_RESOURCE_ID selected_color_id,
5624                                                 GX_RESOURCE_ID disabled_color_id,
5625                                                 GX_RESOURCE_ID readonly_color_id);
5626 UINT _gxe_single_line_text_input_text_color_set(GX_SINGLE_LINE_TEXT_INPUT *input,
5627                                                 GX_RESOURCE_ID normal_color_id,
5628                                                 GX_RESOURCE_ID selected_color_id,
5629                                                 GX_RESOURCE_ID disabled_color_id,
5630                                                 GX_RESOURCE_ID readonly_color_id);
5631 UINT _gxe_single_line_text_input_text_select(GX_SINGLE_LINE_TEXT_INPUT *input, UINT start_index, UINT end_index);
5632 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5633 UINT _gxe_single_line_text_input_text_set(GX_SINGLE_LINE_TEXT_INPUT *input, GX_CONST GX_CHAR *text);
5634 #endif
5635 UINT _gxe_single_line_text_input_text_set_ext(GX_SINGLE_LINE_TEXT_INPUT *input, GX_CONST GX_STRING *text);
5636 
5637 UINT _gxe_slider_create(GX_SLIDER *slider, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5638                         INT tick_count, GX_SLIDER_INFO *slider_info, ULONG style, USHORT slider_id,
5639                         GX_CONST GX_RECTANGLE *size, UINT slider_control_block_size);
5640 VOID _gx_slider_draw(GX_SLIDER *widget);
5641 UINT _gxe_slider_event_process(GX_SLIDER *widget, GX_EVENT *event_ptr);
5642 UINT _gxe_slider_info_set(GX_SLIDER *slider, GX_SLIDER_INFO *info);
5643 VOID _gx_slider_needle_draw(GX_SLIDER *slider);
5644 UINT _gxe_slider_needle_position_get(GX_SLIDER *slider, GX_SLIDER_INFO *slider_info, GX_RECTANGLE *return_position);
5645 VOID _gx_slider_tickmarks_draw(GX_SLIDER *slider);
5646 UINT _gxe_slider_travel_get(GX_SLIDER *widget, GX_SLIDER_INFO *info, INT *mintravel, INT *maxtravel);
5647 UINT _gxe_slider_value_calculate(GX_SLIDER *slider, GX_SLIDER_INFO *info, INT new_position);
5648 UINT _gxe_slider_value_set(GX_SLIDER *slider, GX_SLIDER_INFO *info, INT new_value);
5649 
5650 UINT _gxe_sprite_create(GX_SPRITE *sprite, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5651                         GX_SPRITE_FRAME *frame_list, USHORT framecount,
5652                         ULONG style, USHORT sprite_id, GX_CONST GX_RECTANGLE *size, UINT sprite_control_block_size);
5653 UINT _gxe_sprite_current_frame_set(GX_SPRITE *sprite, USHORT frame);
5654 UINT _gxe_sprite_frame_list_set(GX_SPRITE *sprite, GX_SPRITE_FRAME *frame_list, USHORT frame_count);
5655 UINT _gxe_sprite_start(GX_SPRITE *sprite, USHORT start_frame);
5656 UINT _gxe_sprite_stop(GX_SPRITE *sprite);
5657 
5658 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5659 UINT _gxe_string_scroll_wheel_create(GX_STRING_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT value_count,
5660                                      GX_CONST GX_CHAR **string_list,
5661                                      ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size,
5662                                      UINT control_block_size);
5663 #endif
5664 UINT _gxe_string_scroll_wheel_create_ext(GX_STRING_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT total_rows,
5665                                          GX_CONST GX_STRING *string_list,
5666                                          ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size,
5667                                          UINT control_block_size);
5668 UINT _gxe_string_scroll_wheel_event_process(GX_STRING_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
5669 UINT _gxe_string_scroll_wheel_string_id_list_set(GX_STRING_SCROLL_WHEEL *wheel,
5670                                                  GX_CONST GX_RESOURCE_ID *string_id_list,
5671                                                  INT id_count);
5672 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5673 UINT _gxe_string_scroll_wheel_string_list_set(GX_STRING_SCROLL_WHEEL *wheel,
5674                                               GX_CONST GX_CHAR **string_list,
5675                                               INT string_count);
5676 #endif
5677 UINT _gxe_string_scroll_wheel_string_list_set_ext(GX_STRING_SCROLL_WHEEL *wheel,
5678                                                   GX_CONST GX_STRING *string_list,
5679                                                   INT string_count);
5680 
5681 UINT _gxe_system_active_language_set(GX_UBYTE language);
5682 UINT _gxe_system_animation_get(GX_ANIMATION **animation);
5683 UINT _gxe_system_animation_free(GX_ANIMATION *animation);
5684 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
5685 UINT _gx_system_bidi_text_enable(VOID);
5686 UINT _gx_system_bidi_text_disable(VOID);
5687 #endif
5688 
5689 #if defined(GX_THAI_GLYPH_SHAPING_SUPPORT)
5690 UINT _gx_system_text_render_style_set(GX_UBYTE style);
5691 #endif
5692 UINT _gxe_system_canvas_refresh(VOID);
5693 UINT _gxe_system_dirty_mark(GX_WIDGET *widget);
5694 UINT _gxe_system_dirty_partial_add(GX_WIDGET *widget, GX_RECTANGLE *dirty_area);
5695 UINT _gxe_system_draw_context_get(GX_DRAW_CONTEXT **current_context);
5696 UINT _gxe_system_event_fold(GX_EVENT *event_ptr);
5697 UINT _gxe_system_event_send(GX_EVENT *event_ptr);
5698 UINT _gxe_system_focus_claim(GX_WIDGET *widget);
5699 UINT _gxe_system_initialize(VOID);
5700 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5701 UINT _gxe_system_language_table_get(GX_CHAR ****language_table, GX_UBYTE *language_count, UINT *string_count);
5702 UINT _gxe_system_language_table_set(GX_CHAR ***language_table, GX_UBYTE number_of_languages, UINT number_of_strings);
5703 #endif
5704 UINT _gxe_system_memory_allocator_set(VOID *(*allocate)(ULONG size), VOID (*release)(VOID *));
5705 UINT _gxe_system_pen_configure(GX_PEN_CONFIGURATION *pen_configuration);
5706 UINT _gxe_system_screen_stack_create(GX_WIDGET **memory, INT size, UINT control_block_size);
5707 UINT _gxe_system_screen_stack_get(GX_WIDGET **popped_parent, GX_WIDGET **popped_screen);
5708 UINT _gxe_system_screen_stack_pop(VOID);
5709 UINT _gxe_system_screen_stack_push(GX_WIDGET *screen);
5710 UINT _gx_system_screen_stack_get(GX_WIDGET **popped_parent, GX_WIDGET **popped_screen);
5711 UINT _gx_system_screen_stack_reset(VOID);
5712 UINT _gxe_system_scroll_appearance_get(ULONG style, GX_SCROLLBAR_APPEARANCE *return_appearance);
5713 UINT _gxe_system_scroll_appearance_set(ULONG style, GX_SCROLLBAR_APPEARANCE *appearance);
5714 UINT _gxe_system_start(VOID);
5715 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5716 UINT _gxe_system_string_get(GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
5717 UINT _gxe_system_string_table_get(GX_UBYTE language, GX_CHAR ***get_table, UINT *get_size);
5718 UINT _gxe_system_string_width_get(GX_CONST GX_FONT *font, GX_CONST GX_CHAR *string, INT string_length, GX_VALUE *return_width);
5719 #endif
5720 UINT _gxe_system_string_width_get_ext(GX_CONST GX_FONT *font, GX_CONST GX_STRING *string, GX_VALUE *return_width);
5721 UINT _gxe_system_timer_start(GX_WIDGET *owner, UINT timer_id, UINT initial_ticks, UINT reschedule_ticks);
5722 UINT _gxe_system_timer_stop(GX_WIDGET *owner, UINT timer_id);
5723 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5724 UINT _gxe_system_version_string_get(GX_CHAR **return_string);
5725 #endif
5726 UINT _gxe_system_version_string_get_ext(GX_STRING *return_string);
5727 UINT _gxe_system_widget_find(USHORT widget_id, INT search_level, GX_WIDGET **return_search_result);
5728 
5729 UINT _gxe_text_button_create(GX_TEXT_BUTTON *button, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5730                              GX_RESOURCE_ID text_id, ULONG style, USHORT Id,
5731                              GX_CONST GX_RECTANGLE *size, UINT text_button_control_block_size);
5732 VOID _gx_text_button_draw(GX_TEXT_BUTTON *button);
5733 UINT _gxe_text_button_event_process(GX_TEXT_BUTTON *button, GX_EVENT *event_ptr);
5734 UINT _gxe_text_button_font_set(GX_TEXT_BUTTON *button, GX_RESOURCE_ID font_id);
5735 UINT _gxe_text_button_text_color_set(GX_TEXT_BUTTON *_text_button,
5736                                      GX_RESOURCE_ID normal_text_color_id,
5737                                      GX_RESOURCE_ID selected_text_color_id,
5738                                      GX_RESOURCE_ID disabled_text_color_id);
5739 VOID _gx_text_button_text_draw(GX_TEXT_BUTTON *button);
5740 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5741 UINT _gxe_text_button_text_get(GX_TEXT_BUTTON *button, GX_CONST GX_CHAR **return_text);
5742 #endif
5743 UINT _gxe_text_button_text_get_ext(GX_TEXT_BUTTON *button, GX_STRING *return_text);
5744 UINT _gxe_text_button_text_id_set(GX_TEXT_BUTTON *button, GX_RESOURCE_ID string_id);
5745 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5746 UINT _gxe_text_button_text_set(GX_TEXT_BUTTON *button, GX_CONST GX_CHAR *text);
5747 #endif
5748 UINT _gxe_text_button_text_set_ext(GX_TEXT_BUTTON *button, GX_CONST GX_STRING *text);
5749 
5750 UINT _gxe_text_input_cursor_blink_interval_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE blink_interval);
5751 UINT _gxe_text_input_cursor_height_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE height);
5752 UINT _gxe_text_input_cursor_width_set(GX_TEXT_INPUT_CURSOR *cursor_input, GX_UBYTE width);
5753 
5754 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5755 UINT _gxe_text_scroll_wheel_callback_set(GX_TEXT_SCROLL_WHEEL * wheel, GX_CONST GX_CHAR * (*callback)(GX_TEXT_SCROLL_WHEEL *, INT));
5756 #endif
5757 UINT _gxe_text_scroll_wheel_callback_set_ext(GX_TEXT_SCROLL_WHEEL *wheel, UINT (*callback)(GX_TEXT_SCROLL_WHEEL *, INT, GX_STRING *));
5758 UINT _gxe_text_scroll_wheel_font_set(GX_TEXT_SCROLL_WHEEL *wheel, GX_RESOURCE_ID normal_font, GX_RESOURCE_ID selected_font);
5759 UINT _gxe_text_scroll_wheel_text_color_set(GX_TEXT_SCROLL_WHEEL *wheel, GX_RESOURCE_ID normal_text_color,
5760                                            GX_RESOURCE_ID selected_text_color, GX_RESOURCE_ID disabled_text_color);
5761 UINT _gxe_text_scroll_wheel_create(GX_TEXT_SCROLL_WHEEL *wheel, GX_CONST GX_CHAR *name, GX_WIDGET *parent, INT value_count,
5762                                    ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size,
5763                                    UINT control_block_size);
5764 UINT _gxe_text_scroll_wheel_event_process(GX_TEXT_SCROLL_WHEEL *wheel, GX_EVENT *event_ptr);
5765 VOID _gx_text_scroll_wheel_draw(GX_TEXT_SCROLL_WHEEL *wheel);
5766 
5767 UINT _gxe_tree_view_create(GX_TREE_VIEW *tree, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5768     ULONG style, USHORT tree_id, GX_CONST GX_RECTANGLE *size, UINT control_block_size);
5769 VOID _gx_tree_view_draw(GX_TREE_VIEW *tree);
5770 UINT _gxe_tree_view_event_process(GX_TREE_VIEW *tree, GX_EVENT *event_ptr);
5771 UINT _gxe_tree_view_indentation_set(GX_TREE_VIEW *tree, GX_VALUE indentation);
5772 UINT _gxe_tree_view_position(GX_TREE_VIEW *tree);
5773 UINT _gxe_tree_view_root_line_color_set(GX_TREE_VIEW *tree, GX_RESOURCE_ID color);
5774 UINT _gxe_tree_view_root_pixelmap_set(GX_TREE_VIEW *tree, GX_RESOURCE_ID expand_map_id, GX_RESOURCE_ID collapse_map_id);
5775 UINT _gxe_tree_view_selected_get(GX_TREE_VIEW *tree, GX_WIDGET **selected);
5776 UINT _gxe_tree_view_selected_set(GX_TREE_VIEW *tree, GX_WIDGET *selected);
5777 
5778 UINT    _gxe_utility_gradient_create(GX_GRADIENT *gradient, GX_VALUE width, GX_VALUE height, UCHAR type, UCHAR alpha_start, UCHAR alpha_end);
5779 UINT    _gxe_utility_gradient_delete(GX_GRADIENT *gradient);
5780 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
5781 UINT    _gxe_utility_bidi_paragraph_reorder(GX_BIDI_TEXT_INFO *input_info, GX_BIDI_RESOLVED_TEXT_INFO **resolved_info_head);
5782 UINT    _gxe_utility_bidi_paragraph_reorder_ext(GX_BIDI_TEXT_INFO *input_info, GX_BIDI_RESOLVED_TEXT_INFO **resolved_info_head);
5783 UINT    _gxe_utility_bidi_resolved_text_info_delete(GX_BIDI_RESOLVED_TEXT_INFO **resolved_info_head);
5784 #endif
5785 UINT    _gxe_utility_canvas_to_bmp(GX_CANVAS *canvas, GX_RECTANGLE *rect, UINT(*write_data)(GX_UBYTE *byte_data, UINT data_count));
5786 UINT    _gxe_utility_circle_point_get(INT xcenter, INT ycenter, UINT r, INT angle, GX_POINT *point);
5787 UINT    _gxe_utility_ltoa(LONG value, GX_CHAR *return_buffer, UINT return_buffer_size);
5788 #if defined(GUIX_5_4_0_COMPATIBILITY)
5789 INT     _gx_utility_math_acos_5_4_0(INT x);
5790 INT     _gx_utility_math_asin_5_4_0(INT x);
5791 INT     _gx_utility_math_cos_5_4_0(INT angle);
5792 INT     _gx_utility_math_sin_5_4_0(INT angle);
5793 #else
5794 INT     _gx_utility_math_acos(GX_FIXED_VAL x);
5795 INT     _gx_utility_math_asin(GX_FIXED_VAL x);
5796 GX_FIXED_VAL _gx_utility_math_cos(GX_FIXED_VAL angle);
5797 GX_FIXED_VAL _gx_utility_math_sin(GX_FIXED_VAL angle);
5798 #endif
5799 UINT    _gx_utility_math_sqrt(UINT n);
5800 
5801 UINT    _gxe_utility_pixelmap_resize(GX_PIXELMAP *src, GX_PIXELMAP *destination, INT width, INT height);
5802 UINT    _gxe_utility_pixelmap_rotate(GX_PIXELMAP *src, INT angle, GX_PIXELMAP *destination, INT *rot_cx, INT *rot_cy);
5803 UINT    _gxe_utility_pixelmap_simple_rotate(GX_PIXELMAP *src, INT angle, GX_PIXELMAP *destination, INT *rot_cx, INT *rot_cy);
5804 
5805 UINT    _gxe_utility_rectangle_center(GX_RECTANGLE *rectangle, GX_RECTANGLE *within);
5806 UINT    _gxe_utility_rectangle_center_find(GX_RECTANGLE *rectangle, GX_POINT *return_center);
5807 UINT    _gxe_utility_rectangle_combine(GX_RECTANGLE *first_rectangle, GX_RECTANGLE *second_rectangle);
5808 GX_BOOL _gxe_utility_rectangle_compare(GX_RECTANGLE *first_rectangle, GX_RECTANGLE *second_rectangle);
5809 UINT    _gxe_utility_rectangle_define(GX_RECTANGLE *rectangle, GX_VALUE left, GX_VALUE top, GX_VALUE right, GX_VALUE bottom);
5810 GX_BOOL _gxe_utility_rectangle_overlap_detect(GX_RECTANGLE *first_rectangle, GX_RECTANGLE *second_rectangle, GX_RECTANGLE *return_overlap_area);
5811 GX_BOOL _gxe_utility_rectangle_point_detect(GX_RECTANGLE *rectangle, GX_POINT point);
5812 UINT    _gxe_utility_rectangle_resize(GX_RECTANGLE *rectangle, GX_VALUE adjust);
5813 UINT    _gxe_utility_rectangle_shift(GX_RECTANGLE *rectangle, GX_VALUE x_shift, GX_VALUE y_shift);
5814 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5815 UINT    _gxe_utility_string_to_alphamap(GX_CONST GX_CHAR *text, GX_CONST GX_FONT *font, GX_PIXELMAP *textmap);
5816 #endif
5817 UINT    _gxe_utility_string_to_alphamap_ext(GX_CONST GX_STRING *text, GX_CONST GX_FONT *font, GX_PIXELMAP *textmap);
5818 
5819 UINT    _gxe_vertical_list_children_position(GX_VERTICAL_LIST *vertical_list);
5820 UINT    _gxe_vertical_list_create(GX_VERTICAL_LIST *vertical_list, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5821                                   INT total_rows,
5822                                   VOID (*callback)(GX_VERTICAL_LIST *, GX_WIDGET *, INT),
5823                                   ULONG style, USHORT vertical_list_id, GX_CONST GX_RECTANGLE *size,
5824                                   UINT vertical_list_control_block_size);
5825 UINT _gxe_vertical_list_event_process(GX_VERTICAL_LIST *list, GX_EVENT *event_ptr);
5826 UINT _gxe_vertical_list_page_index_set(GX_VERTICAL_LIST *list, INT index);
5827 UINT _gxe_vertical_list_selected_index_get(GX_VERTICAL_LIST *vertical_list, INT *return_index);
5828 UINT _gxe_vertical_list_selected_set(GX_VERTICAL_LIST *vertical_list, INT index);
5829 UINT _gxe_vertical_list_selected_widget_get(GX_VERTICAL_LIST *vertical_list, GX_WIDGET **return_list_entry);
5830 UINT _gxe_vertical_list_total_rows_set(GX_VERTICAL_LIST *list, INT count);
5831 
5832 UINT _gxe_vertical_scrollbar_create(GX_SCROLLBAR *scrollbar, GX_CONST GX_CHAR *name, GX_WINDOW *parent,
5833                                     GX_SCROLLBAR_APPEARANCE *settings,
5834                                     ULONG style, UINT scrollbar_control_blcok_size);
5835 
5836 UINT _gxe_widget_allocate(GX_WIDGET **widget, ULONG memsize);
5837 UINT _gxe_widget_attach(GX_WIDGET *parent, GX_WIDGET *widget);
5838 UINT _gxe_widget_back_attach(GX_WIDGET *parent, GX_WIDGET *widget);
5839 UINT _gxe_widget_back_move(GX_WIDGET *widget, GX_BOOL *widget_moved);
5840 VOID _gx_widget_background_draw(GX_WIDGET *a);
5841 UINT _gxe_widget_block_move(GX_WIDGET *widget, GX_RECTANGLE *block, INT x_shift, INT y_shift);
5842 VOID _gx_widget_border_draw(GX_WIDGET *widget, GX_RESOURCE_ID border_color, GX_RESOURCE_ID upper_color, GX_RESOURCE_ID lower_color, GX_BOOL fill);
5843 UINT _gxe_widget_border_style_set(GX_WIDGET *widget, ULONG Style);
5844 UINT _gxe_widget_border_width_get(GX_WIDGET *widget, GX_VALUE *return_width);
5845 UINT _gxe_widget_canvas_get(GX_WIDGET *widget, GX_CANVAS **return_canvas);
5846 UINT _gxe_widget_color_get(GX_WIDGET *widget, GX_RESOURCE_ID color_id, GX_COLOR *return_color);
5847 UINT _gxe_widget_child_detect(GX_WIDGET *parent, GX_WIDGET *child, GX_BOOL *return_detect);
5848 VOID _gx_widget_children_draw(GX_WIDGET *widget);
5849 UINT _gxe_widget_client_get(GX_WIDGET *widget, GX_VALUE border_width, GX_RECTANGLE *return_size);
5850 UINT _gxe_widget_create(GX_WIDGET *widget,
5851                         GX_CONST GX_CHAR *name,
5852                         GX_WIDGET *parent,
5853                         ULONG style, USHORT Id,
5854                         GX_CONST GX_RECTANGLE *size,
5855                         UINT widget_block_size);
5856 UINT _gxe_widget_created_test(GX_WIDGET *widget, GX_BOOL *return_test);
5857 UINT _gxe_widget_delete(GX_WIDGET *widget);
5858 UINT _gxe_widget_detach(GX_WIDGET *widget);
5859 VOID _gx_widget_draw(GX_WIDGET *widget);
5860 UINT _gxe_widget_draw_set(GX_WIDGET *widget, VOID (*draw_func)(GX_WIDGET *));
5861 UINT _gxe_widget_event_generate(GX_WIDGET *widget, USHORT event_type, LONG value);
5862 UINT _gxe_widget_event_process(GX_WIDGET *widget, GX_EVENT *event_ptr);
5863 UINT _gxe_widget_event_process_set(GX_WIDGET *widget, UINT (*event_processing_function)(GX_WIDGET *, GX_EVENT *));
5864 UINT _gxe_widget_event_to_parent(GX_WIDGET *widget, GX_EVENT *event_ptr);
5865 UINT _gxe_widget_fill_color_set(GX_WIDGET *widget, GX_RESOURCE_ID normal_color, GX_RESOURCE_ID selected_color, GX_RESOURCE_ID disabled_color);
5866 UINT _gxe_widget_find(GX_WIDGET *parent, USHORT widget_id, INT search_depth, GX_WIDGET **return_widget);
5867 UINT _gxe_widget_first_child_get(GX_WIDGET *parent, GX_WIDGET **child_return);
5868 UINT _gxe_widget_focus_next(GX_WIDGET *widget);
5869 UINT _gxe_widget_focus_previous(GX_WIDGET *widget);
5870 UINT _gxe_widget_font_get(GX_WIDGET *widget, GX_RESOURCE_ID font_id, GX_FONT **return_font);
5871 UINT _gxe_widget_free(GX_WIDGET *widget);
5872 UINT _gxe_widget_front_move(GX_WIDGET *widget, GX_BOOL *widget_moved);
5873 UINT _gxe_widget_height_get(GX_WIDGET *widget, GX_VALUE *return_height);
5874 UINT _gxe_widget_hide(GX_WIDGET *widget);
5875 UINT _gxe_widget_last_child_get(GX_WIDGET *parent, GX_WIDGET **child_return);
5876 UINT _gxe_widget_next_sibling_get(GX_WIDGET *current, GX_WIDGET **sibling_return);
5877 UINT _gxe_widget_parent_get(GX_WIDGET *current, GX_WIDGET **parent_return);
5878 UINT _gxe_widget_pixelmap_get(GX_WIDGET *widget, GX_RESOURCE_ID pixelmap_id, GX_PIXELMAP **return_pixelmap);
5879 UINT _gxe_widget_previous_sibling_get(GX_WIDGET *current, GX_WIDGET **sibling_return);
5880 UINT _gxe_widget_resize(GX_WIDGET *widget, GX_RECTANGLE *newsize);
5881 UINT _gxe_widget_shift(GX_WIDGET *widget, GX_VALUE x_shift, GX_VALUE y_shift, GX_BOOL mark_dirty);
5882 UINT _gxe_widget_show(GX_WIDGET *widget);
5883 UINT _gxe_widget_status_add(GX_WIDGET *widget, ULONG status);
5884 UINT _gxe_widget_status_get(GX_WIDGET *widget, ULONG *return_status);
5885 UINT _gxe_widget_status_remove(GX_WIDGET *widget, ULONG status);
5886 UINT _gxe_widget_status_test(GX_WIDGET *widget, ULONG status, GX_BOOL *return_test);
5887 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5888 UINT _gxe_widget_string_get(GX_WIDGET *widget, GX_RESOURCE_ID string_id, GX_CONST GX_CHAR **return_string);
5889 #endif
5890 UINT _gxe_widget_string_get_ext(GX_WIDGET *widget, GX_RESOURCE_ID string_id, GX_STRING *return_string);
5891 UINT _gxe_widget_style_add(GX_WIDGET *widget, ULONG style);
5892 UINT _gxe_widget_style_get(GX_WIDGET *widget, ULONG *return_style);
5893 UINT _gxe_widget_style_remove(GX_WIDGET *widget, ULONG style);
5894 UINT _gxe_widget_style_set(GX_WIDGET *widget, ULONG style);
5895 
5896 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
5897 UINT _gxe_widget_text_blend(GX_WIDGET *widget, UINT tColor, UINT font_id, GX_CONST GX_CHAR *string,
5898                             INT x_offset, INT y_offset, UCHAR alpha);
5899 VOID _gx_widget_text_draw(GX_WIDGET *widget, UINT tColor, UINT font_id, GX_CONST GX_CHAR *string,
5900                           INT x_offset, INT y_offset);
5901 #endif
5902 UINT _gxe_widget_text_blend_ext(GX_WIDGET *widget,  UINT tColor, UINT font_id, GX_CONST GX_STRING *string,
5903                                 INT x_offset, INT y_offset, UCHAR alpha);
5904 
5905 VOID _gx_widget_text_draw_ext(GX_WIDGET *widget, UINT tColor, UINT font_id, GX_CONST GX_STRING *string,
5906                               INT x_offset, INT y_offset);
5907 
5908 VOID _gx_widget_text_id_draw(GX_WIDGET *widget, UINT tColor,
5909                              UINT font_id, UINT text_id,
5910                              INT x_offset, INT y_offset);
5911 
5912 UINT _gxe_widget_top_visible_child_find(GX_WIDGET *parent, GX_WIDGET **child_return);
5913 UINT _gxe_widget_type_find(GX_WIDGET *parent, USHORT widget_type, GX_WIDGET **return_widget);
5914 UINT _gxe_widget_width_get(GX_WIDGET *widget, GX_VALUE *return_width);
5915 
5916 VOID _gx_window_background_draw(GX_WINDOW *window);
5917 UINT _gxe_window_client_height_get(GX_WINDOW *window, GX_VALUE *return_height);
5918 UINT _gxe_window_client_scroll(GX_WINDOW *window, GX_VALUE xscroll, GX_VALUE yscroll);
5919 UINT _gxe_window_client_width_get(GX_WINDOW *window, GX_VALUE *return_width);
5920 UINT _gxe_window_close(GX_WINDOW *window);
5921 UINT _gxe_window_create(GX_WINDOW *window, GX_CONST GX_CHAR *name, GX_WIDGET *parent,
5922                         ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size, UINT window_control_block_size);
5923 VOID _gx_window_draw(GX_WINDOW *window);
5924 UINT _gxe_window_event_process(GX_WINDOW *window, GX_EVENT *event_ptr);
5925 UINT _gxe_window_execute(GX_WINDOW *window, ULONG *return_ptr);
5926 UINT _gxe_window_root_create(GX_WINDOW_ROOT *root_window, GX_CONST GX_CHAR *name, GX_CANVAS *canvas,
5927                              ULONG style, USHORT Id, GX_CONST GX_RECTANGLE *size, UINT root_window_control_block_size);
5928 UINT _gxe_window_root_delete(GX_WINDOW_ROOT *root_window);
5929 UINT _gxe_window_root_event_process(GX_WINDOW_ROOT *root, GX_EVENT *event_ptr);
5930 UINT _gxe_window_root_find(GX_WIDGET *widget, GX_WINDOW_ROOT **return_root_window);
5931 UINT _gxe_window_scroll_info_get(GX_WINDOW *window, ULONG type, GX_SCROLL_INFO *return_scroll_info);
5932 UINT _gxe_window_scrollbar_find(GX_WINDOW *window, USHORT type, GX_SCROLLBAR **return_scrollbar);
5933 UINT _gxe_window_wallpaper_get(GX_WINDOW *window, GX_RESOURCE_ID *return_wallpaper_id);
5934 UINT _gxe_window_wallpaper_set(GX_WINDOW *window, GX_RESOURCE_ID wallpaper_id, GX_BOOL tile);
5935 
5936 #endif
5937 
5938 #endif
5939 
5940 /* Determine if a C++ compiler is being used.  If so, complete the standard
5941    C conditional started above.  */
5942 #ifdef __cplusplus
5943 }
5944 #endif
5945 
5946 #ifdef GX_MULTITHREAD_SUPPORT
5947 
5948 #define GX_ENTER_CRITICAL _gx_system_lock();
5949 #define GX_EXIT_CRITICAL  _gx_system_unlock();
5950 
5951 #else
5952 
5953 #define GX_ENTER_CRITICAL
5954 #define GX_EXIT_CRITICAL
5955 
5956 #endif
5957 
5958 #ifndef GX_THREADX_BINDING
5959 #ifdef  GX_STANDALONE_BINDING
5960 #include <string.h>
5961 #include <stdlib.h>
5962 #include "gx_system_standalone_bind.h"
5963 #else
5964 /* pull in custom rtos porting header */
5965 #include <string.h>
5966 #include <stdlib.h>
5967 #include "gx_system_rtos_bind.h"
5968 #endif
5969 #endif
5970 
5971 #endif
5972 
5973