2424/* APPLICATION INTERFACE DEFINITION RELEASE */
2525/* */
2626/* gx_api.h PORTABLE C */
27- /* 6.1 */
27+ /* 6.1.3 */
2828/* AUTHOR */
2929/* */
3030/* Kenneth Maxwell, Microsoft Corporation */
4848/* modified controls blocks, */
4949/* added new APIs, */
5050/* resulting in version 6.1 */
51+ /* 12-31-2020 Kenneth Maxwell Modified comment(s), added */
52+ /* display rotation support, */
53+ /* declare new APIs, */
54+ /* defined new status, */
55+ /* resulting in version 6.1.3 */
5156/* */
5257/**************************************************************************/
5358
@@ -71,7 +76,7 @@ extern "C" {
7176#define AZURE_RTOS_GUIX
7277#define GUIX_MAJOR_VERSION 6
7378#define GUIX_MINOR_VERSION 1
74- #define GUIX_PATCH_VERSION 0
79+ #define GUIX_PATCH_VERSION 3
7580
7681/* The following symbols are defined for backward compatibility reasons.*/
7782#define __PRODUCT_GUIX__
@@ -278,6 +283,10 @@ typedef struct GX_STRING_STRUCT
278283
279284#define GX_MAX_PIXELMAP_RESOLUTION 0x3FFF
280285
286+ /* Define screen rotation types. */
287+ #define GX_SCREEN_ROTATION_CW 90
288+ #define GX_SCREEN_ROTATION_CCW 270
289+
281290/* API input parameters and general constants. */
282291
283292#define GX_TRUE 1
@@ -685,6 +694,7 @@ typedef struct GX_STRING_STRUCT
685694
686695#define GX_STATUS_MODAL 0x00100000UL
687696
697+ #define GX_STATUS_DYNAMIC_BUFFER 0x01000000UL
688698#define GX_STATUS_LINE_BREAK_PROCESSED 0x02000000UL
689699#define GX_STATUS_RESIZE_NOTIFY 0x04000000UL
690700#define GX_STATUS_STUDIO_CREATED 0x08000000UL
@@ -1008,13 +1018,6 @@ typedef GX_UBYTE GX_CHAR_CODE;
10081018#endif
10091019
10101020#if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT )
1011- typedef struct GX_BIDI_RESOLVED_TEXT_INFO_STRUCT
1012- {
1013- GX_STRING * gx_bidi_resolved_text_info_text ;
1014- UINT gx_bidi_resolved_text_info_total_lines ;
1015- struct GX_BIDI_RESOLVED_TEXT_INFO_STRUCT * gx_bidi_resolved_text_info_next ;
1016- } GX_BIDI_RESOLVED_TEXT_INFO ;
1017-
10181021#define GX_PROMPT_BIDI_RESOLVED_TEXT_INFO GX_BIDI_RESOLVED_TEXT_INFO *gx_prompt_bidi_resolved_text_info;
10191022#define GX_TEXT_BUTTON_BIDI_RESOLVED_TEXT_INFO GX_BIDI_RESOLVED_TEXT_INFO *gx_text_button_bidi_resolved_text_info;
10201023#define GX_MULTI_LINE_TEXT_VIEW_BIDI_RESOLVED_TEXT_INFO GX_BIDI_RESOLVED_TEXT_INFO *gx_multi_line_text_view_bidi_resolved_text_info;
@@ -1128,16 +1131,18 @@ typedef struct GX_FONT_STRUCT
11281131 GX_CONST struct GX_FONT_STRUCT * gx_font_next_page ; /* For multiple page fonts (Unicode) */
11291132} GX_FONT ;
11301133
1131- #define GX_FONT_FORMAT_BPP_MASK 0x0F
1132- #define GX_FONT_FORMAT_1BPP 0x01
1133- #define GX_FONT_FORMAT_2BPP 0x02
1134- #define GX_FONT_FORMAT_4BPP 0x04
1135- #define GX_FONT_FORMAT_8BPP 0x08
1134+ #define GX_FONT_FORMAT_BPP_MASK 0x03
1135+ #define GX_FONT_FORMAT_1BPP 0x00
1136+ #define GX_FONT_FORMAT_2BPP 0x01
1137+ #define GX_FONT_FORMAT_4BPP 0x02
1138+ #define GX_FONT_FORMAT_8BPP 0x03
11361139
11371140#define GX_FONT_FORMAT_COMPRESSED 0x10
11381141#define GX_FONT_FORMAT_FREETYPE 0x20
11391142#define GX_FONT_FORMAT_KERNING 0x40
11401143#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. */
1144+ #define GX_FONT_FORMAT_ROTATED_90 0x04
1145+ #define GX_FONT_FORMAT_ROTATED_270 0x08
11411146
11421147/* Define Pixelmap type. */
11431148
@@ -1167,10 +1172,28 @@ typedef struct GX_PIXELMAP_STRUCT
11671172#if defined(GX_USE_SYNERGY_DRW )
11681173#define GX_PIXELMAP_DYNAMICALLY_ALLOCATED 0x20 /* Pixelmap is dynamically allocated */
11691174#endif
1175+ #define GX_PIXELMAP_ROTATED_90 0x40
1176+ #define GX_PIXELMAP_ROTATED_270 0x80
11701177
11711178#define PIXELMAP_IS_TRANSPARENT (a ) (a -> gx_pixelmap_flags & (GX_PIXELMAP_TRANSPARENT | GX_PIXELMAP_ALPHA))
11721179
11731180
1181+ #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT )
1182+ typedef struct GX_BIDI_TEXT_INFO_STRUCT
1183+ {
1184+ GX_STRING gx_bidi_text_info_text ;
1185+ GX_FONT * gx_bidi_text_info_font ;
1186+ GX_VALUE gx_bidi_text_info_display_width ;
1187+ } GX_BIDI_TEXT_INFO ;
1188+
1189+ typedef struct GX_BIDI_RESOLVED_TEXT_INFO_STRUCT
1190+ {
1191+ GX_STRING * gx_bidi_resolved_text_info_text ;
1192+ UINT gx_bidi_resolved_text_info_total_lines ;
1193+ struct GX_BIDI_RESOLVED_TEXT_INFO_STRUCT * gx_bidi_resolved_text_info_next ;
1194+ } GX_BIDI_RESOLVED_TEXT_INFO ;
1195+ #endif
1196+
11741197/* Define Brush type. */
11751198
11761199typedef struct GX_BRUSH_STRUCT
@@ -1498,6 +1521,7 @@ typedef struct GX_DISPLAY_STRUCT
14981521 GX_UBYTE gx_display_active_language ; /* Define the active language. */
14991522 GX_UBYTE gx_display_language_table_size ;
15001523 GX_UBYTE gx_display_driver_ready ;
1524+ USHORT gx_display_rotation_angle ;
15011525
15021526 GX_VALUE gx_display_width ;
15031527 GX_VALUE gx_display_height ;
@@ -2734,6 +2758,8 @@ typedef struct GX_IMAGE_READER_STRUCT
27342758 GX_UBYTE * gx_image_reader_getauxdata ;
27352759 GX_UBYTE * gx_image_reader_putdata ;
27362760 GX_UBYTE * gx_image_reader_putauxdata ;
2761+ GX_UBYTE * gx_image_reader_putdatarow ;
2762+ GX_UBYTE * gx_image_reader_putauxdatarow ;
27372763 GX_UBYTE gx_image_reader_color_format ;
27382764 GX_UBYTE gx_image_reader_mode ;
27392765 GX_UBYTE gx_image_reader_image_type ;
@@ -2743,6 +2769,8 @@ typedef struct GX_IMAGE_READER_STRUCT
27432769 GX_COLOR * gx_image_reader_palette ;
27442770 UINT gx_image_reader_palette_size ;
27452771 UINT gx_image_reader_input_stride ;
2772+ GX_BYTE gx_image_reader_putdatarow_stride ;
2773+ GX_BYTE gx_image_reader_putauxdatarow_stride ;
27462774 GX_BOOL gx_image_reader_size_testing ;
27472775 GX_COLOR * gx_image_reader_png_trans ;
27482776 GX_COLOR * gx_image_reader_png_palette ;
@@ -2755,6 +2783,8 @@ typedef struct GX_IMAGE_READER_STRUCT
27552783#define GX_IMAGE_READER_MODE_COMPRESS 0x01
27562784#define GX_IMAGE_READER_MODE_ALPHA 0x02
27572785#define GX_IMAGE_READER_MODE_DITHER 0x04
2786+ #define GX_IMAGE_READER_MODE_ROTATE_CW 0x10
2787+ #define GX_IMAGE_READER_MODE_ROTATE_CCW 0x20
27582788
27592789/* Define Screen stack control block */
27602790typedef struct GX_SCREEN_STACK_CONTROL_STRUCT
@@ -3020,6 +3050,7 @@ typedef struct GX_FIXED_POINT_STRUCT
30203050
30213051#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)
30223052#define gx_menu_draw _gx_menu_draw
3053+ #define gx_menu_event_process _gx_menu_event_process
30233054#define gx_menu_insert _gx_menu_insert
30243055#define gx_menu_remove _gx_menu_remove
30253056#define gx_menu_remove _gx_menu_remove
@@ -3358,6 +3389,10 @@ typedef struct GX_FIXED_POINT_STRUCT
33583389#define gx_tree_view_selected_get _gx_tree_view_selected_get
33593390#define gx_tree_view_selected_set _gx_tree_view_selected_set
33603391
3392+ #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT )
3393+ #define gx_utility_bidi_paragraph_reorder _gx_utility_bidi_paragraph_reorder
3394+ #define gx_utility_bidi_resolved_text_info_delete _gx_utility_bidi_resolved_text_info_delete
3395+ #endif
33613396#define gx_utility_canvas_to_bmp _gx_utility_canvas_to_bmp
33623397#define gx_utility_gradient_create _gx_utility_gradient_create
33633398#define gx_utility_gradient_delete _gx_utility_gradient_delete
@@ -3716,9 +3751,10 @@ UINT _gx_line_chart_update(GX_LINE_CHART *chart, INT *data, INT data_count);
37163751UINT _gx_line_chart_y_scale_calculate (GX_LINE_CHART * chart , INT * return_val );
37173752
37183753UINT _gx_menu_create (GX_MENU * menu , GX_CONST GX_CHAR * name , GX_WIDGET * parent ,
3719- GX_RESOURCE_ID text_id , GX_RESOURCE_ID fill_id ,
3720- ULONG style , USHORT menu_id , GX_CONST GX_RECTANGLE * size );
3754+ GX_RESOURCE_ID text_id , GX_RESOURCE_ID fill_id ,
3755+ ULONG style , USHORT menu_id , GX_CONST GX_RECTANGLE * size );
37213756VOID _gx_menu_draw (GX_MENU * menu );
3757+ UINT _gx_menu_event_process (GX_MENU * menu , GX_EVENT * event_ptr );
37223758UINT _gx_menu_insert (GX_MENU * menu , GX_WIDGET * widget );
37233759UINT _gx_menu_remove (GX_MENU * menu , GX_WIDGET * widget );
37243760UINT _gx_menu_remove (GX_MENU * menu , GX_WIDGET * widget );
@@ -4137,6 +4173,10 @@ UINT _gx_tree_view_root_pixelmap_set(GX_TREE_VIEW *tree, GX_RESOURCE_ID expand_m
41374173UINT _gx_tree_view_selected_get (GX_TREE_VIEW * tree , GX_WIDGET * * selected );
41384174UINT _gx_tree_view_selected_set (GX_TREE_VIEW * tree , GX_WIDGET * selected );
41394175
4176+ #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT )
4177+ UINT _gx_utility_bidi_paragraph_reorder (GX_BIDI_TEXT_INFO * input_info , GX_BIDI_RESOLVED_TEXT_INFO * * resolved_info_head );
4178+ UINT _gx_utility_bidi_resolved_text_info_delete (GX_BIDI_RESOLVED_TEXT_INFO * * resolved_info_head );
4179+ #endif
41404180UINT _gx_utility_canvas_to_bmp (GX_CANVAS * canvas , GX_RECTANGLE * rect , UINT (* write_data )(GX_UBYTE * byte_data , UINT data_count ));
41414181UINT _gx_utility_gradient_create (GX_GRADIENT * gradient , GX_VALUE width , GX_VALUE height , UCHAR type , GX_UBYTE start_alpha , GX_UBYTE end_alpha );
41424182UINT _gx_utility_gradient_delete (GX_GRADIENT * gradient );
@@ -4462,6 +4502,7 @@ UINT _gx_window_wallpaper_set(GX_WINDOW *window, GX_RESOURCE_ID wallpaper_id, GX
44624502
44634503#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))
44644504#define gx_menu_draw _gx_menu_draw
4505+ #define gx_menu_event_process _gxe_menu_event_process
44654506#define gx_menu_insert _gxe_menu_insert
44664507#define gx_menu_remove _gxe_menu_remove
44674508#define gx_menu_text_draw _gx_menu_text_draw
@@ -4797,6 +4838,10 @@ UINT _gx_window_wallpaper_set(GX_WINDOW *window, GX_RESOURCE_ID wallpaper_id, GX
47974838#define gx_tree_view_selected_get _gxe_tree_view_selected_get
47984839#define gx_tree_view_selected_set _gxe_tree_view_selected_set
47994840
4841+ #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT )
4842+ #define gx_utility_bidi_paragraph_reorder _gxe_utility_bidi_paragraph_reorder
4843+ #define gx_utility_bidi_resolved_text_info_delete _gxe_utility_bidi_resolved_text_info_delete
4844+ #endif
48004845#define gx_utility_canvas_to_bmp _gxe_utility_canvas_to_bmp
48014846#define gx_utility_circle_point_get _gxe_utility_circle_point_get
48024847#define gx_utility_ltoa _gxe_utility_ltoa
@@ -5140,9 +5185,10 @@ UINT _gxe_line_chart_update(GX_LINE_CHART *chart, INT *data, INT data_count);
51405185UINT _gxe_line_chart_y_scale_calculate (GX_LINE_CHART * chart , INT * return_val );
51415186
51425187UINT _gxe_menu_create (GX_MENU * menu , GX_CONST GX_CHAR * name , GX_WIDGET * parent ,
5143- GX_RESOURCE_ID text_id , GX_RESOURCE_ID fill_id ,
5144- ULONG style , USHORT menu_id , GX_CONST GX_RECTANGLE * size , UINT control_block_size );
5188+ GX_RESOURCE_ID text_id , GX_RESOURCE_ID fill_id ,
5189+ ULONG style , USHORT menu_id , GX_CONST GX_RECTANGLE * size , UINT control_block_size );
51455190VOID _gx_menu_draw (GX_MENU * menu );
5191+ UINT _gxe_menu_event_process (GX_MENU * menu , GX_EVENT * event_ptr );
51465192UINT _gxe_menu_insert (GX_MENU * menu , GX_WIDGET * widget );
51475193UINT _gxe_menu_remove (GX_MENU * menu , GX_WIDGET * widget );
51485194VOID _gx_menu_text_draw (GX_MENU * menu );
@@ -5569,6 +5615,10 @@ UINT _gxe_tree_view_selected_set(GX_TREE_VIEW *tree, GX_WIDGET *selected);
55695615
55705616UINT _gxe_utility_gradient_create (GX_GRADIENT * gradient , GX_VALUE width , GX_VALUE height , UCHAR type , UCHAR alpha_start , UCHAR alpha_end );
55715617UINT _gxe_utility_gradient_delete (GX_GRADIENT * gradient );
5618+ #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT )
5619+ UINT _gxe_utility_bidi_paragraph_reorder (GX_BIDI_TEXT_INFO * input_info , GX_BIDI_RESOLVED_TEXT_INFO * * resolved_info_head );
5620+ UINT _gxe_utility_bidi_resolved_text_info_delete (GX_BIDI_RESOLVED_TEXT_INFO * * resolved_info_head );
5621+ #endif
55725622UINT _gxe_utility_canvas_to_bmp (GX_CANVAS * canvas , GX_RECTANGLE * rect , UINT (* write_data )(GX_UBYTE * byte_data , UINT data_count ));
55735623UINT _gxe_utility_circle_point_get (INT xcenter , INT ycenter , UINT r , INT angle , GX_POINT * point );
55745624UINT _gxe_utility_ltoa (LONG value , GX_CHAR * return_buffer , UINT return_buffer_size );
0 commit comments