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