137 #define PIXEL_invalid       0   144 #define PIXEL_transparent   SysPixelIndex[0]   151 #define PIXEL_darkblue      SysPixelIndex[1]   158 #define PIXEL_darkgreen     SysPixelIndex[2]   165 #define PIXEL_darkcyan      SysPixelIndex[3]   172 #define PIXEL_darkred       SysPixelIndex[4]   179 #define PIXEL_darkmagenta   SysPixelIndex[5]   186 #define PIXEL_darkyellow    SysPixelIndex[6]   193 #define PIXEL_darkgray      SysPixelIndex[7]   200 #define PIXEL_lightgray     SysPixelIndex[8]   207 #define PIXEL_blue          SysPixelIndex[9]   214 #define PIXEL_green         SysPixelIndex[10]   221 #define PIXEL_cyan          SysPixelIndex[11]   228 #define PIXEL_red           SysPixelIndex[12]   235 #define PIXEL_magenta       SysPixelIndex[13]   242 #define PIXEL_yellow        SysPixelIndex[14]   249 #define PIXEL_lightwhite    SysPixelIndex[15]   256 #define PIXEL_black         SysPixelIndex[16]   263 #define COLOR_invalid       PIXEL_invalid   269 #define COLOR_transparent   PIXEL_transparent   275 #define COLOR_darkred       PIXEL_darkred   281 #define COLOR_darkgreen     PIXEL_darkgreen   287 #define COLOR_darkyellow    PIXEL_darkyellow   293 #define COLOR_darkblue      PIXEL_darkblue   299 #define COLOR_darkmagenta   PIXEL_darkmagenta   305 #define COLOR_darkcyan      PIXEL_darkcyan   311 #define COLOR_lightgray     PIXEL_lightgray   317 #define COLOR_darkgray      PIXEL_darkgray   323 #define COLOR_red           PIXEL_red   329 #define COLOR_green         PIXEL_green   335 #define COLOR_yellow        PIXEL_yellow   341 #define COLOR_blue          PIXEL_blue   347 #define COLOR_magenta       PIXEL_magenta   353 #define COLOR_cyan          PIXEL_cyan   359 #define COLOR_lightwhite    PIXEL_lightwhite   365 #define COLOR_black         PIXEL_black   371 #define SysColorIndex       SysPixelIndex   407     pthread_mutex_t lock;
   596 #define NULLREGION      0x00   597 #define SIMPLEREGION    0x01   598 #define COMPLEXREGION   0x02   659 #define InitFreeClipRectList(heap, size)    \   660                 InitBlockDataHeap (heap, sizeof (CLIPRECT), size)   672 #define ClipRectAlloc(heap)     BlockDataAlloc (heap)   686 #define FreeClipRect(heap, cr)  BlockDataFree (heap, cr);   699 #define DestroyFreeClipRectList(heap)   DestroyBlockDataHeap (heap);   721 MG_EXPORT 
void GUIAPI 
InitClipRgn (PCLIPRGN pRgn, PBLOCKHEAP pFreeList);
   942                             const RECT *rcScroll, 
int x, 
int y);
   955 MG_EXPORT 
void GUIAPI 
OffsetRegion (PCLIPRGN region, 
int x, 
int y);
  1018 #define UnionRectWithRegion     AddClipRect  1025 #define CopyRegion              ClipRgnCopy  1032 #define IntersectRegion         ClipRgnIntersect  1064                 int x, 
int y, 
int rx, 
int ry);
  1079                 const POINT* pts, 
int vertices);
  1126 #define HDC_SCREEN          ((HDC)0)  1132 #define HDC_SCREEN_SYS      ((HDC)1)  1138 #define HDC_INVALID         ((HDC)-1)  1140 #define GDCAP_COLORNUM      0  1141 #define GDCAP_HPIXEL        1  1142 #define GDCAP_VPIXEL        2  1143 #define GDCAP_MAXX          3  1144 #define GDCAP_MAXY          4  1145 #define GDCAP_DEPTH         5  1147 #define GDCAP_BITSPP        7  1148 #define GDCAP_RMASK         8  1149 #define GDCAP_GMASK         9  1150 #define GDCAP_BMASK         10  1151 #define GDCAP_AMASK         11  1152 #define GDCAP_PITCH         12  1153 #define GDCAP_DPI           13  1154     #define GDCAP_DPI_DEFAULT   96  1155     #define GDCAP_DPI_MINIMAL   36  1268 MG_EXPORT 
HDC GUIAPI 
GetSubDC (
HDC hdc, 
int off_x, 
int off_y, 
int width, 
int height);
  1346 #define MEMDC_FLAG_NONE             0x00000000    1347 #define MEMDC_FLAG_SWSURFACE        0x00000000    1348 #define MEMDC_FLAG_HWSURFACE        0x00000001    1349 #define MEMDC_FLAG_SRCCOLORKEY      0x00001000    1350 #define MEMDC_FLAG_SRCALPHA         0x00010000    1351 #define MEMDC_FLAG_SRCPIXELALPHA    0x00020000    1352 #define MEMDC_FLAG_RLEACCEL         0x00004000    1437         void* bits, 
int pitch);
  1475     return CreateMemDCEx (width, height, depth, flags, Rmask, Gmask, Bmask, Amask,
  1504                 int width, 
int height, 
BOOL comp_to_parent);
  1654 #define CreateCompatibleDC(hdc) CreateCompatibleDCEx(hdc, 0, 0)  1666 #define DeleteCompatibleDC(hdc) DeleteMemDC(hdc)  1706                 int* width, 
int* height, 
int* pitch);
  1725         int pitch, 
int bytesPerPixel, 
const RECT* rc, 
void* context);
  1834         int width, 
int height);
  1910         HDC real_dc, 
const RECT* secondary_rc, 
const RECT* real_rc,
  1911         const RECT* main_update_rc);
  1913 #define ON_UPDSECDC_DEFAULT     ((ON_UPDATE_SECONDARYDC)0)  1914 #define ON_UPDSECDC_DONOTHING   ((ON_UPDATE_SECONDARYDC)0xFFFFFFFF)  2024 #define BM_TRANSPARENT          1  2027 #define DC_ATTR_BK_COLOR        0  2028 #define DC_ATTR_PEN_COLOR       1  2029 #define DC_ATTR_BRUSH_COLOR     2  2030 #define DC_ATTR_TEXT_COLOR      3  2032 #define DC_ATTR_BK_MODE         4  2034 #define DC_ATTR_TAB_STOP        5  2035 #define DC_ATTR_CHAR_EXTRA      6  2036 #define DC_ATTR_WORD_EXTRA      7  2037 #define DC_ATTR_ALINE_EXTRA     8  2038 #define DC_ATTR_BLINE_EXTRA     9  2040 #define DC_ATTR_MAP_MODE        10  2042 #define DC_ATTR_TEXT_ALIGN      11  2044 #define DC_ATTR_BIDI_FLAGS      12  2046 #ifdef _MGHAVE_ADV_2DAPI  2047 # define DC_ATTR_PEN_TYPE        13  2048 # define DC_ATTR_PEN_CAP_STYLE   14  2049 # define DC_ATTR_PEN_JOIN_STYLE  15  2050 # define DC_ATTR_PEN_WIDTH       16  2051 # define DC_ATTR_BRUSH_TYPE      17  2052 # define NR_DC_ATTRS             18  2054 # define NR_DC_ATTRS             13  2131 #define GetBkColor(hdc)     GetDCAttr (hdc, DC_ATTR_BK_COLOR)  2148 #define GetBkMode(hdc)      GetDCAttr (hdc, DC_ATTR_BK_MODE)  2159 #define GetPenColor(hdc)    GetDCAttr (hdc, DC_ATTR_PEN_COLOR)  2170 #define GetBrushColor(hdc)  GetDCAttr (hdc, DC_ATTR_BRUSH_COLOR)  2181 #define GetTextColor(hdc)   GetDCAttr (hdc, DC_ATTR_TEXT_COLOR)  2192 #define GetTabStop(hdc)     GetDCAttr (hdc, DC_ATTR_TAB_STOP)  2204 #define SetBkColor(hdc, color)  \  2205                 SetDCAttr (hdc, DC_ATTR_BK_COLOR, (DWORD) color)  2224 #define SetBkMode(hdc, mode)    \  2225                 SetDCAttr (hdc, DC_ATTR_BK_MODE, (DWORD) mode)  2237 #define SetPenColor(hdc, color) \  2238                 SetDCAttr (hdc, DC_ATTR_PEN_COLOR, (DWORD) color)  2250 #define SetBrushColor(hdc, color)   \  2251                 SetDCAttr (hdc, DC_ATTR_BRUSH_COLOR, (DWORD) color)  2263 #define SetTextColor(hdc, color)    \  2264                 SetDCAttr (hdc, DC_ATTR_TEXT_COLOR, (DWORD) color)  2276 #define SetTabStop(hdc, value)  \  2277                 SetDCAttr (hdc, DC_ATTR_TAB_STOP, (DWORD) value)  2283 #define ROP_COMPOSITE   4  2284 #define ROP_COMP_USER   0x0100  2744     RGB rgb = {r, g, b, a};
  2787     RGB rgb = {r, g, b, 0xFF};
  2809                 RGB* rgbs, 
int count);
  2837     *r = rgb.
r; *g = rgb.
g, *b = rgb.
b;
  2855                 RGB* rgbs, 
int count);
  2885     *r = rgb.
r; *g = rgb.
g, *b = rgb.
b; *a = rgb.
a;
  2905 #define PIXEL2DWORD(hdc, pixel) Pixel2DWORD(hdc, pixel)  2941 MG_EXPORT 
void GUIAPI 
FocusRect (
HDC hdc, 
int x0, 
int y0, 
int x1, 
int y1);
  2978 #define DrawHDotLine(hdc, x, y, w) DrawHVDotLine (hdc, x, y, w, TRUE);  2996 #define DrawVDotLine(hdc, x, y, h) DrawHVDotLine (hdc, x, y, h, FALSE);  3028                 int *_x0, 
int *_y0, 
int *_x1, 
int *_y1);
  3034 typedef void (* 
CB_LINE) (
void* context, 
int stepx, 
int stepy);
  3059                 int x1, 
int y1, 
int x2, 
int y2, 
CB_LINE cb);
  3065 typedef void (* 
CB_CIRCLE) (
void* context, 
int x1, 
int x2, 
int y);
  3101 typedef void (* 
CB_ELLIPSE) (
void* context, 
int x1, 
int x2, 
int y);
  3128                 int sx, 
int sy, 
int rx, 
int ry, 
CB_ELLIPSE cb);
  3134 typedef void (* 
CB_ARC) (
void* context, 
int x, 
int y);
  3160                 int sx, 
int sy, 
int r, 
int ang1, 
int ang2, 
CB_ARC cb);
  3166 typedef void (* 
CB_POLYGON) (
void* context, 
int x1, 
int x2, 
int y);
  3266 #define PolygonGenerator(context, pts, vertices, cb)          \  3267                 PolygonGeneratorEx(context, pts, vertices, cb, NULL)  3302                 const RECT* src_rc, 
int x, 
int y,
  3306 #define BITMAP_SCALER_DDA       0  3308 #define BITMAP_SCALER_BILINEAR  1  3341 MG_EXPORT 
void GUIAPI 
MoveTo (
HDC hdc, 
int x, 
int y);
  3357 MG_EXPORT 
void GUIAPI 
LineTo (
HDC hdc, 
int x, 
int y);
  3374 MG_EXPORT 
void GUIAPI 
Rectangle (
HDC hdc, 
int x0, 
int y0, 
int x1, 
int y1);
  3422 MG_EXPORT 
void GUIAPI 
Circle (
HDC hdc, 
int sx, 
int sy, 
int r);
  3440 MG_EXPORT 
void GUIAPI 
Ellipse (
HDC hdc, 
int sx, 
int sy, 
int rx, 
int ry);
  3463 MG_EXPORT 
void GUIAPI 
CircleArc (
HDC hdc, 
int sx, 
int sy, 
int r,
  3464                 int ang1, 
int ang2);
  3480 MG_EXPORT 
void GUIAPI 
FillBox (
HDC hdc, 
int x, 
int y, 
int w, 
int h);
  3495 MG_EXPORT 
void GUIAPI 
FillCircle (
HDC hdc, 
int sx, 
int sy, 
int r);
  3513 MG_EXPORT 
void GUIAPI 
FillEllipse (
HDC hdc, 
int sx, 
int sy, 
int rx, 
int ry);
  3545 #ifdef _MGHAVE_ADV_2DAPI  3585 #define GetPenType(hdc)                 \  3586                 GetDCAttr (hdc, DC_ATTR_PEN_TYPE)  3598 #define SetPenType(hdc, type)           \  3599                 SetDCAttr (hdc, DC_ATTR_PEN_TYPE, (DWORD) type)  3621                 const unsigned char* dash_list, 
int n);
  3654 #define GetPenCapStyle(hdc)                 \  3655                 GetDCAttr (hdc, DC_ATTR_PEN_CAP_STYLE)  3667 #define SetPenCapStyle(hdc, style)          \  3668             SetDCAttr (hdc, DC_ATTR_PEN_CAP_STYLE, (DWORD) style)  3699 #define GetPenJoinStyle(hdc)           GetDCAttr (hdc, DC_ATTR_PEN_JOIN_STYLE)  3711 #define SetPenJoinStyle(hdc, style)         \  3712             SetDCAttr (hdc, DC_ATTR_PEN_JOIN_STYLE, (DWORD) style)  3723 #define GetPenWidth(hdc)                    \  3724                 GetDCAttr (hdc, DC_ATTR_PEN_WIDTH)  3736 #define SetPenWidth(hdc, width)             \  3737                 SetDCAttr (hdc, DC_ATTR_PEN_WIDTH, (DWORD) width)  3781 #define GetBrushType(hdc)               \  3782                 GetDCAttr (hdc, DC_ATTR_BRUSH_TYPE)  3794 #define SetBrushType(hdc, type)         \  3795                 SetDCAttr (hdc, DC_ATTR_BRUSH_TYPE, (DWORD) type)  3862 MG_EXPORT 
void GUIAPI 
LineEx (
HDC hdc, 
int x1, 
int y1, 
int x2, 
int y2);
  3887 MG_EXPORT 
void GUIAPI 
ArcEx (
HDC hdc, 
int x, 
int y, 
int width, 
int height,
  3888                 int ang1, 
int ang2);
  3913 MG_EXPORT 
void GUIAPI 
FillArcEx (
HDC hdc, 
int x, 
int y, 
int width, 
int height,
  3914                 int ang1, 
int ang2);
  3968 MG_EXPORT 
void GUIAPI 
PolyArcEx (
HDC hdc, 
const ARC* arcs, 
int nr_arcs);
  4002 MG_EXPORT 
BOOL GUIAPI 
RoundRect (
HDC hdc, 
int x0, 
int y0, 
int x1, 
int y1, 
int cw, 
int ch);
  4055 #define MM_ANISOTROPIC        1  4072 #define GetMapMode(hdc)         GetDCAttr (hdc, DC_ATTR_MAP_MODE)  4089 #define SetMapMode(hdc, mapmode)        \  4090                 SetDCAttr (hdc, DC_ATTR_MAP_MODE, (DWORD)mapmode)  4144 #define DC_LCS_VORG     0  4145 #define DC_LCS_VEXT     1  4146 #define DC_LCS_WORG     2  4147 #define DC_LCS_WEXT     3  4148 #define NR_DC_LCS_PTS   4  4163 #define GetViewportOrg(hdc, pPt)    GetDCLCS(hdc, DC_LCS_VORG, pPt)  4178 #define GetViewportExt(hdc, pPt)    GetDCLCS(hdc, DC_LCS_VEXT, pPt)  4193 #define GetWindowOrg(hdc, pPt)      GetDCLCS(hdc, DC_LCS_WORG, pPt)  4208 #define GetWindowExt(hdc, pPt)      GetDCLCS(hdc, DC_LCS_WEXT, pPt)  4223 #define SetViewportOrg(hdc, pPt)    SetDCLCS(hdc, DC_LCS_VORG, pPt)  4238 #define SetViewportExt(hdc, pPt)    SetDCLCS(hdc, DC_LCS_VEXT, pPt)  4253 #define SetWindowOrg(hdc, pPt)      SetDCLCS(hdc, DC_LCS_WORG, pPt)  4268 #define SetWindowExt(hdc, pPt)      SetDCLCS(hdc, DC_LCS_WEXT, pPt)  4434 #define RGN_COPY        0x00  4435 #define RGN_DIFF        0x01  4436 #define RGN_AND         0x02  4438 #define RGN_XOR         0x04  4643                 int x, 
int y, 
int w, 
int h, 
BITMAP* bmp);
  4737                 int x, 
int y, 
int w, 
int h,
  4738                 int bw, 
int bh, 
const BITMAP* bmp, 
int xo, 
int yo);
  4763                 int box_w, 
int box_h, 
const BITMAP* pbmp, 
int bmp_x, 
int bmp_y,
  4764                 int bmp_w, 
int bmp_h);
  4799 MG_EXPORT 
void GUIAPI 
BitBlt (
HDC hsdc, 
int sx, 
int sy, 
int sw, 
int sh,
  4800                 HDC hddc, 
int dx, 
int dy, 
DWORD dwRop);
  4840 MG_EXPORT 
void GUIAPI 
StretchBlt (
HDC hsdc, 
int sx, 
int sy, 
int sw, 
int sh,
  4841                 HDC hddc, 
int dx, 
int dy, 
int dw, 
int dh, 
DWORD dwRop);
  4865 #define ScaleBitmap(dst, src) ScaleBitmapEx(dst, src, HDC_SCREEN)  4936 MG_EXPORT 
BOOL GUIAPI SetPixelInBitmapEx (
const BITMAP* bmp,
  4962     return SetPixelInBitmapEx (bmp, x, y, pixel, 
NULL);
  4965 #ifdef _MGMISC_SAVESCREEN  4986                 const char* filename);
  5080                 const BYTE* AndBits, 
const BYTE* XorBits, 
int colornum,
  5086 #define CreateIcon(hdc, w, h, AndBits, XorBits, colornum) \  5087         CreateIconEx(hdc, w, h, AndBits, XorBits, colornum, NULL)  5136                 int x, 
int y, 
int w, 
int h, 
HICON hicon);
  5159 static inline void SetRect (
RECT* prc, 
int left, 
int top, 
int right, 
int bottom)
  5161     (prc)->left = left; (prc)->top = top;
  5162     (prc)->right = right; (prc)->bottom = bottom;
  5180     (prc)->left = (prc)->top = (prc)->right = (prc)->bottom = 0;
  5197     (pdrc)->left = (psrc)->left; (pdrc)->top = (psrc)->top;
  5198     (pdrc)->right = (psrc)->right; (pdrc)->bottom = (psrc)->bottom;
  5218     (prc)->left += x; (prc)->top += y; (prc)->right += x; (prc)->bottom += y;
  5239     (prc)->left -= cx; (prc)->top -= cy;
  5240     (prc)->right += cx; (prc)->bottom += cy;
  5258     if ((x) < (prc)->left) (prc)->left = (x);
  5259     if ((y) < (prc)->top) (prc)->top = (y);
  5260     if ((x) > (prc)->right) (prc)->right = (x);
  5261     if ((y) > (prc)->bottom) (prc)->bottom = (y);
  5281     if (x >= prc->
left && x < prc->right && y >= prc->
top && y < prc->bottom)
  5346                 const RECT* psrc1, 
const RECT* psrc2);
  5398                 const RECT* psrc1, 
const RECT* psrc2);
  5416                 const RECT* psrc1, 
const RECT* psrc2);
  5440 #define RECTWP(prc)  ((prc)->right - (prc)->left)  5445 #define RECTHP(prc)  ((prc)->bottom - (prc)->top)  5450 #define RECTW(rc)    ((rc).right - (rc).left)  5455 #define RECTH(rc)    ((rc).bottom - (rc).top)  5471 #define LEN_LOGFONT_NAME_FIELD      31  5472 #define LEN_LOGFONT_FAMILY_FIELD    (LEN_LOGFONT_NAME_FIELD*7+6)  5473 #define LEN_LOGFONT_NAME_FULL       (LEN_LOGFONT_FAMILY_FIELD + 32)  5474 #define LEN_UNIDEVFONT_NAME         255  5476 #define LEN_FONT_NAME               LEN_LOGFONT_NAME_FIELD  5477 #define LEN_DEVFONT_NAME            LEN_UNIDEVFONT_NAME  5479 #define FONT_WEIGHT_NIL             '\0'  5480 #define FONT_WEIGHT_ANY             '*'  5481 #define FONT_WEIGHT_THIN            't'  5482 #define FONT_WEIGHT_EXTRA_LIGHT     'e'  5483 #define FONT_WEIGHT_LIGHT           'l'  5484 #define FONT_WEIGHT_NORMAL          'n'  5485 #define FONT_WEIGHT_REGULAR         'r'  5486 #define FONT_WEIGHT_MEDIUM          'm'  5487 #define FONT_WEIGHT_DEMIBOLD        'd'  5488 #define FONT_WEIGHT_BOLD            'b'  5489 #define FONT_WEIGHT_EXTRA_BOLD      'x'  5490 #define FONT_WEIGHT_BLACK           'c'  5495 #define FONT_WEIGHT_SUBPIXEL        's'  5496 #define FONT_WEIGHT_BOOK            'k'  5498 #define FS_WEIGHT_MASK              0x000000FF  5499 #define FS_WEIGHT_ANY               0  5500 #define FS_WEIGHT_THIN              10  5501 #define FS_WEIGHT_EXTRA_LIGHT       20  5502 #define FS_WEIGHT_LIGHT             30  5503 #define FS_WEIGHT_NORMAL            35  5504 #define FS_WEIGHT_REGULAR           40  5505 #define FS_WEIGHT_MEDIUM            50  5506 #define FS_WEIGHT_DEMIBOLD          60  5507 #define FS_WEIGHT_EXTRA_BOLD        70  5508 #define FS_WEIGHT_BOLD              80  5509 #define FS_WEIGHT_BLACK             90  5511 #define FONT_SLANT_NIL              '\0'  5512 #define FONT_SLANT_ANY              '*'  5513 #define FONT_SLANT_ROMAN            'r'  5514 #define FONT_SLANT_ITALIC           'i'  5515 #define FONT_SLANT_OBLIQUE          'o'  5517 #define FS_SLANT_MASK               0x00000F00  5518 #define FS_SLANT_ANY                0x00000000  5519 #define FS_SLANT_ROMAN              0x00000100  5520 #define FS_SLANT_ITALIC             0x00000200  5521 #define FS_SLANT_OBLIQUE            0x00000300  5523 #define FONT_FLIP_NONE              'n'  5524 #define FONT_FLIP_HORZ              'h'  5525 #define FONT_FLIP_VERT              'v'  5526 #define FONT_FLIP_HORZVERT          't'  5527 #define FONT_FLIP_NIL               FONT_FLIP_NONE  5529 #define FS_FLIP_MASK                0x0000F000  5530 #define FS_FLIP_NONE                0x00000000  5531 #define FS_FLIP_HORZ                0x00001000  5532 #define FS_FLIP_VERT                0x00002000  5533 #define FS_FLIP_HORZVERT            0x00003000   5535 #define FONT_OTHER_NONE             'n'  5536 #define FONT_OTHER_AUTOSCALE        's'  5537 #define FONT_OTHER_TTFNOCACHE       'c'  5538 #define FONT_OTHER_TTFKERN          'k'  5539 #define FONT_OTHER_TTFNOCACHEKERN   'r'  5540 #define FONT_OTHER_NIL              FONT_OTHER_NONE  5542 #define FS_OTHER_MASK               0x00F00000  5543 #define FS_OTHER_NONE               0x00000000  5544 #define FS_OTHER_AUTOSCALE          0x00100000  5545 #define FS_OTHER_TTFNOCACHE         0x00200000  5546 #define FS_OTHER_TTFKERN            0x00400000  5547 #define FS_OTHER_TTFNOCACHEKERN     0x00600000   5549 #define FONT_DECORATE_NIL           '\0'  5550 #define FONT_DECORATE_NONE          'n'  5551 #define FONT_DECORATE_UNDERLINE     'u'  5552 #define FONT_DECORATE_STRUCKOUT     's'  5553 #define FONT_DECORATE_REVERSE       'r'  5554 #define FONT_DECORATE_OUTLINE       'o'  5555 #define FONT_DECORATE_US            'U'   5557 #define FS_DECORATE_MASK            0x0F000000  5558 #define FS_DECORATE_NONE            0x00000000  5559 #define FS_DECORATE_UNDERLINE       0x01000000  5560 #define FS_DECORATE_STRUCKOUT       0x02000000  5561 #define FS_DECORATE_REVERSE         0x04000000  5562 #define FS_DECORATE_OUTLINE         0x08000000  5563 #define FS_DECORATE_US              (FS_DECORATE_UNDERLINE | FS_DECORATE_STRUCKOUT)  5565 #define FONT_RENDER_NIL             '\0'  5566 #define FONT_RENDER_ANY             '*'  5567 #define FONT_RENDER_MONO            'n'  5568 #define FONT_RENDER_GREY            'g'  5569 #define FONT_RENDER_SUBPIXEL        's'  5571 #define FS_RENDER_MASK              0xF0000000  5572 #define FS_RENDER_MONO              0x00000000  5573 #define FS_RENDER_GREY              0x10000000  5574 #define FS_RENDER_SUBPIXEL          0x20000000  5575 #define FS_RENDER_ANY               FS_RENDER_MONO  5578 #define FONT_OTHER_LCDPORTRAIT      'p'  5579 #define FONT_OTHER_LCDPORTRAITKERN  'q'  5581 #define FONT_WEIGHT_ALL             FONT_WEIGHT_ANY  5582 #define FONT_SLANT_ALL              FONT_SLANT_ANY  5583 #define FS_WEIGHT_ALL               FS_WEIGHT_ANY  5584 #define FS_SLANT_ALL                FS_SLANT_ANY  5590 #define FONT_SETWIDTH_NIL           '\0'  5591 #define FONT_SETWIDTH_ALL           '*'  5592 #define FONT_SETWIDTH_BOLD          'b'  5593 #define FONT_SETWIDTH_CONDENSED     'c'  5594 #define FONT_SETWIDTH_SEMICONDENSED 's'  5595 #define FONT_SETWIDTH_NORMAL        'n'  5596 #define FONT_SETWIDTH_TTFNOCACHE    'w'  5598 #define FONT_SPACING_NIL            '\0'  5599 #define FONT_SPACING_ALL            '*'  5600 #define FONT_SPACING_MONOSPACING    'm'  5601 #define FONT_SPACING_PROPORTIONAL   'p'  5602 #define FONT_SPACING_CHARCELL       'c'  5604 #define FONT_UNDERLINE_NIL          '\0'  5605 #define FONT_UNDERLINE_ALL          '*'  5606 #define FONT_UNDERLINE_LINE         'u'  5607 #define FONT_UNDERLINE_NONE         'n'  5609 #define FONT_STRUCKOUT_NIL          '\0'  5610 #define FONT_STRUCKOUT_ALL          '*'  5611 #define FONT_STRUCKOUT_LINE         's'  5612 #define FONT_STRUCKOUT_NONE         'n'  5615 #define FONT_TYPE_NAME_LEN          3  5616 #define FONT_TYPE_NAME_BITMAP_NUF   "nuf"  5617 #define FONT_TYPE_NAME_BITMAP_RAW   "rbf"  5618 #define FONT_TYPE_NAME_BITMAP_VAR   "vbf"  5619 #define FONT_TYPE_NAME_BITMAP_QPF   "qpf"  5620 #define FONT_TYPE_NAME_BITMAP_UPF   "upf"  5621 #define FONT_TYPE_NAME_BITMAP_BMP   "bmp"  5622 #define FONT_TYPE_NAME_SCALE_TTF    "ttf"  5623 #define FONT_TYPE_NAME_SCALE_T1F    "t1f"  5624 #define FONT_TYPE_NAME_ANY          "*"  5625 #define FONT_TYPE_NAME_ALL          FONT_TYPE_NAME_ANY  5627 #define FONT_ETC_SECTION_NAME_VBF   "varbitmapfonts"  5628 #define FONT_ETC_SECTION_NAME_RBF   "rawbitmapfonts"  5629 #define FONT_ETC_SECTION_NAME_UPF   "upf"  5630 #define FONT_ETC_SECTION_NAME_QPF   "qpf"  5631 #define FONT_ETC_SECTION_NAME_TTF   "truetypefonts"  5633 #define FONT_TYPE_BITMAP_RAW        0x0001    5634 #define FONT_TYPE_BITMAP_VAR        0x0002    5635 #define FONT_TYPE_BITMAP_QPF        0x0003    5636 #define FONT_TYPE_BITMAP_BMP        0x0004    5637 #define FONT_TYPE_BITMAP_UPF        0x0005    5638 #define FONT_TYPE_SCALE_TTF         0x0010    5639 #define FONT_TYPE_SCALE_T1F         0x0011    5640 #define FONT_TYPE_ANY               0x0000    5641 #define FONT_TYPE_ALL               FONT_TYPE_ANY  5643 #define FONT_CHARSET_US_ASCII       "US-ASCII"  5645 #define FONT_CHARSET_ISO8859_1      "ISO8859-1"  5646 #define FONT_CHARSET_ISO8859_2      "ISO8859-2"  5647 #define FONT_CHARSET_ISO8859_3      "ISO8859-3"  5648 #define FONT_CHARSET_ISO8859_4      "ISO8859-4"  5649 #define FONT_CHARSET_ISO8859_5      "ISO8859-5"  5650 #define FONT_CHARSET_ISO8859_6      "ISO8859-6"  5651 #define FONT_CHARSET_ISO8859_7      "ISO8859-7"  5652 #define FONT_CHARSET_ISO8859_8      "ISO8859-8"  5653 #define FONT_CHARSET_ISO8859_9      "ISO8859-9"  5654 #define FONT_CHARSET_ISO8859_10     "ISO8859-10"  5655 #define FONT_CHARSET_ISO8859_11     "ISO8859-11"  5656 #define FONT_CHARSET_ISO8859_12     "ISO8859-12"  5657 #define FONT_CHARSET_ISO8859_13     "ISO8859-13"  5658 #define FONT_CHARSET_ISO8859_14     "ISO8859-14"  5659 #define FONT_CHARSET_ISO8859_15     "ISO8859-15"  5660 #define FONT_CHARSET_ISO8859_16     "ISO8859-16"  5662 #define FONT_CHARSET_EUC_CN         "EUC-CN"  5668 #define FONT_CHARSET_GB1988_0       "GB1988-0"  5674 #define FONT_CHARSET_GB2312_0       "GB2312-0"  5675 #define FONT_CHARSET_GBK            "GBK"  5681 #define FONT_CHARSET_GB18030_0      "GB18030-0"  5682 #define FONT_CHARSET_BIG5           "BIG5"  5688 #define FONT_CHARSET_EUCTW          "EUC-TW"  5689 #define FONT_CHARSET_EUCKR          "EUC-KR"  5695 #define FONT_CHARSET_KSC5636_0      "KSC5636-0"  5701 #define FONT_CHARSET_KSC5601_0      "KSC5601-0"  5702 #define FONT_CHARSET_EUCJP          "EUC-JP"  5708 #define FONT_CHARSET_JISX0201_0     "JISX0201-0"  5714 #define FONT_CHARSET_JISX0208_0     "JISX0208-0"  5715 #define FONT_CHARSET_SHIFTJIS       "SHIFT-JIS"  5721 #define FONT_CHARSET_JISX0201_1     "JISX0201-1"  5727 #define FONT_CHARSET_JISX0208_1     "JISX0208-1"  5733 #define FONT_CHARSET_ISO_10646_1    "ISO-10646-1"  5739 #define FONT_CHARSET_UTF8           "UTF-8"  5745 #define FONT_CHARSET_UTF16LE        "UTF-16LE"  5751 #define FONT_CHARSET_UTF16BE        "UTF-16BE"  5753 #define FONT_MAX_SIZE               256  5754 #define FONT_MIN_SIZE               1  5755 #define MAXNR_DEVFONTS              8  5790     unsigned short  scales[MAXNR_DEVFONTS];
  5792     DEVFONT*        devfonts[MAXNR_DEVFONTS];
  5815 #define MAX_LEN_MCHAR               6  5837 #define ACHARTYPE_BASIC_MASK        0x0000FFFF  5838 #define ACHARTYPE_CATEGORY_MASK     0x00FF0000  5839 #define ACHARTYPE_BREAK_MASK        0xFF000000  5845 #define ACHARTYPE_EXTRACT_BASIC(t) \  5846         (((t) & ACHARTYPE_BASIC_MASK))  5852 #define ACHARTYPE_EXTRACT_CATEGORY(t) \  5853         (((t) & ACHARTYPE_CATEGORY_MASK) >> 16)  5859 #define ACHARTYPE_EXTRACT_BREAK(t) \  5860         (((t) & ACHARTYPE_BREAK_MASK) >> 24)  5866 #define ACHARTYPE_UNKNOWN           0  5868 #define ACHAR_BASIC_NOSPACING_MARK   0x0001  5869 #define ACHAR_BASIC_ABOVE_MARK       0x0002  5870 #define ACHAR_BASIC_BELLOW_MARK      0x0004  5872 #define ACHAR_BASIC_UNKNOWN          0x0000  5873 #define ACHAR_BASIC_NUL              (0x0000 | ACHAR_BASIC_NOSPACING_MARK)  5875 #define ACHAR_BASIC_CTRL1            0x0100  5877 #define ACHAR_BASIC_BEL              0x0200  5879 #define ACHAR_BASIC_BS               0x0300  5881 #define ACHAR_BASIC_HT               0x0400  5883 #define ACHAR_BASIC_LF               0x0500  5885 #define ACHAR_BASIC_VT               0x0600  5887 #define ACHAR_BASIC_FF               0x0700  5889 #define ACHAR_BASIC_CR               0x0800  5891 #define ACHAR_BASIC_CTRL2            0x0900  5893 #define ACHAR_BASIC_SPACE            0x0A00  5895 #define ACHAR_BASIC_ZEROWIDTH        0x0B00  5896 #define ACHAR_BASIC_GENERIC          0x0C00  5898 #define ACHAR_BASIC_LIGATURE         (0x0D00 | ACHAR_BASIC_NOSPACING_MARK)  5899 #define ACHAR_BASIC_VOWEL            (0x0E00 | ACHAR_BASIC_NOSPACING_MARK)  5900 #define ACHAR_BASIC_VOWEL_ABOVE      (ACHAR_BASIC_VOWEL | ACHAR_BASIC_ABOVE_MARK)  5901 #define ACHAR_BASIC_VOWEL_BELLOW     (ACHAR_BASIC_VOWEL | ACHAR_BASIC_BELLOW_MARK)  5904 #define MCHAR_TYPE_UNKNOWN          ACHAR_BASIC_UNKNOWN  5905 #define MCHAR_TYPE_NUL              ACHAR_BASIC_NUL  5906 #define MCHAR_TYPE_CTRL1            ACHAR_BASIC_CTRL1  5907 #define MCHAR_TYPE_BEL              ACHAR_BASIC_BEL  5908 #define MCHAR_TYPE_BS               ACHAR_BASIC_BS  5909 #define MCHAR_TYPE_HT               ACHAR_BASIC_HT  5910 #define MCHAR_TYPE_LF               ACHAR_BASIC_LF  5911 #define MCHAR_TYPE_VT               ACHAR_BASIC_VT  5912 #define MCHAR_TYPE_FF               ACHAR_BASIC_FF  5913 #define MCHAR_TYPE_CR               ACHAR_BASIC_CR  5914 #define MCHAR_TYPE_CTRL2            ACHAR_BASIC_CTRL2  5915 #define MCHAR_TYPE_SPACE            ACHAR_BASIC_SPACE  5916 #define MCHAR_TYPE_ZEROWIDTH        ACHAR_BASIC_ZEROWIDTH  5917 #define MCHAR_TYPE_GENERIC          ACHAR_BASIC_GENERIC  5918 #define MCHAR_TYPE_NOSPACING_MARK   ACHAR_BASIC_NOSPACING_MARK  5919 #define MCHAR_TYPE_LIGATURE         ACHAR_BASIC_LIGATURE  5920 #define MCHAR_TYPE_VOWEL            ACHAR_BASIC_VOWEL  5921 #define MCHAR_TYPE_VOWEL_ABOVE      ACHAR_BASIC_VOWEL_ABOVE  5922 #define MCHAR_TYPE_VOWEL_BELLOW     ACHAR_BASIC_VOWEL_BELLOW  5925 #define MCHAR_TYPE_ASCII            0x0080  5926 #define MCHAR_TYPE_LATIN1           0x0081  5927 #define MCHAR_TYPE_LATIN2           0x0082  5928 #define MCHAR_TYPE_LATIN3           0x0083  5929 #define MCHAR_TYPE_LATIN4           0x0084  5930 #define MCHAR_TYPE_LATIN5           0x0085  5931 #define MCHAR_TYPE_LATIN6           0x0086  5932 #define MCHAR_TYPE_LATIN7           0x0087  5933 #define MCHAR_TYPE_LATIN8           0x0088  5934 #define MCHAR_TYPE_LATIN9           0x0089  5935 #define MCHAR_TYPE_LATIN10          0x008A  5936 #define MCHAR_TYPE_CYRILLIC         0x008B  5937 #define MCHAR_TYPE_ARABIC           0x008C  5938 #define MCHAR_TYPE_GREEK            0x008D  5939 #define MCHAR_TYPE_HEBREW           0x008E  5940 #define MCHAR_TYPE_THAI             0x008F  5942 #define MCHAR_TYPE_DIGIT            0x0091  5943 #define MCHAR_TYPE_SYMBOL_PUNCT     0x0092  5944 #define MCHAR_TYPE_SYMBOL_MATH      0x0093  5945 #define MCHAR_TYPE_SYMBOL_OTHER     0x0094  5946 #define MCHAR_TYPE_FW_DIGIT         0x0095  5947 #define MCHAR_TYPE_FW_SYM_PUNCT     0x0096  5948 #define MCHAR_TYPE_FW_SYM_MATH      0x0097  5949 #define MCHAR_TYPE_FW_SYM_OTHER     0x0098  5951 #define MCHAR_TYPE_HANGUL           0x00A1  5952 #define MCHAR_TYPE_KATAKANA         0x00A2  5953 #define MCHAR_TYPE_CJK              0x00A3  5995     UCHAR_CATEGORY_CONTROL,
  5996     UCHAR_CATEGORY_FORMAT,
  5997     UCHAR_CATEGORY_UNASSIGNED,
  5998     UCHAR_CATEGORY_PRIVATE_USE,
  5999     UCHAR_CATEGORY_SURROGATE,
  6000     UCHAR_CATEGORY_LOWERCASE_LETTER,
  6001     UCHAR_CATEGORY_MODIFIER_LETTER,
  6002     UCHAR_CATEGORY_OTHER_LETTER,
  6003     UCHAR_CATEGORY_TITLECASE_LETTER,
  6004     UCHAR_CATEGORY_UPPERCASE_LETTER,
  6005     UCHAR_CATEGORY_SPACING_MARK,
  6006     UCHAR_CATEGORY_ENCLOSING_MARK,
  6007     UCHAR_CATEGORY_NON_SPACING_MARK,
  6008     UCHAR_CATEGORY_DECIMAL_NUMBER,
  6009     UCHAR_CATEGORY_LETTER_NUMBER,
  6010     UCHAR_CATEGORY_OTHER_NUMBER,
  6011     UCHAR_CATEGORY_CONNECT_PUNCTUATION,
  6012     UCHAR_CATEGORY_DASH_PUNCTUATION,
  6013     UCHAR_CATEGORY_CLOSE_PUNCTUATION,
  6014     UCHAR_CATEGORY_FINAL_PUNCTUATION,
  6015     UCHAR_CATEGORY_INITIAL_PUNCTUATION,
  6016     UCHAR_CATEGORY_OTHER_PUNCTUATION,
  6017     UCHAR_CATEGORY_OPEN_PUNCTUATION,
  6018     UCHAR_CATEGORY_CURRENCY_SYMBOL,
  6019     UCHAR_CATEGORY_MODIFIER_SYMBOL,
  6020     UCHAR_CATEGORY_MATH_SYMBOL,
  6021     UCHAR_CATEGORY_OTHER_SYMBOL,
  6022     UCHAR_CATEGORY_LINE_SEPARATOR,
  6023     UCHAR_CATEGORY_PARAGRAPH_SEPARATOR,
  6024     UCHAR_CATEGORY_SPACE_SEPARATOR
  6082     UCHAR_BREAK_MANDATORY,
  6083     UCHAR_BREAK_CARRIAGE_RETURN,
  6084     UCHAR_BREAK_LINE_FEED,
  6085     UCHAR_BREAK_COMBINING_MARK,
  6086     UCHAR_BREAK_SURROGATE,
  6087     UCHAR_BREAK_ZERO_WIDTH_SPACE,
  6088     UCHAR_BREAK_INSEPARABLE,
  6089     UCHAR_BREAK_NON_BREAKING_GLUE,
  6090     UCHAR_BREAK_CONTINGENT,
  6094     UCHAR_BREAK_BEFORE_AND_AFTER,
  6096     UCHAR_BREAK_NON_STARTER,
  6097     UCHAR_BREAK_OPEN_PUNCTUATION,
  6098     UCHAR_BREAK_CLOSE_PUNCTUATION,
  6099     UCHAR_BREAK_QUOTATION,
  6100     UCHAR_BREAK_EXCLAMATION,
  6101     UCHAR_BREAK_IDEOGRAPHIC,
  6102     UCHAR_BREAK_NUMERIC,
  6103     UCHAR_BREAK_INFIX_SEPARATOR,
  6105     UCHAR_BREAK_ALPHABETIC,
  6107     UCHAR_BREAK_POSTFIX,
  6108     UCHAR_BREAK_COMPLEX_CONTEXT,
  6109     UCHAR_BREAK_AMBIGUOUS,
  6110     UCHAR_BREAK_UNKNOWN,
  6111     UCHAR_BREAK_NEXT_LINE,
  6112     UCHAR_BREAK_WORD_JOINER,
  6113     UCHAR_BREAK_HANGUL_L_JAMO,
  6114     UCHAR_BREAK_HANGUL_V_JAMO,
  6115     UCHAR_BREAK_HANGUL_T_JAMO,
  6116     UCHAR_BREAK_HANGUL_LV_SYLLABLE,
  6117     UCHAR_BREAK_HANGUL_LVT_SYLLABLE,
  6118     UCHAR_BREAK_CLOSE_PARANTHESIS,
  6119     UCHAR_BREAK_CONDITIONAL_JAPANESE_STARTER,
  6120     UCHAR_BREAK_HEBREW_LETTER,
  6121     UCHAR_BREAK_REGIONAL_INDICATOR,
  6122     UCHAR_BREAK_EMOJI_BASE,
  6123     UCHAR_BREAK_EMOJI_MODIFIER,
  6124     UCHAR_BREAK_ZERO_WIDTH_JOINER
  6300     SCRIPT_INVALID_CODE = 0xFF,
  6341     SCRIPT_CANADIAN_ABORIGINAL, 
  6363     SCRIPT_SYLOTI_NAGRI,       
  6391     SCRIPT_EGYPTIAN_HIEROGLYPHS,   
  6392     SCRIPT_IMPERIAL_ARAMAIC,       
  6393     SCRIPT_INSCRIPTIONAL_PAHLAVI,  
  6394     SCRIPT_INSCRIPTIONAL_PARTHIAN, 
  6398     SCRIPT_MEETEI_MAYEK,           
  6399     SCRIPT_OLD_SOUTH_ARABIAN,      
  6412     SCRIPT_MEROITIC_CURSIVE,       
  6413     SCRIPT_MEROITIC_HIEROGLYPHS,   
  6416     SCRIPT_SORA_SOMPENG,           
  6421     SCRIPT_CAUCASIAN_ALBANIAN,     
  6430     SCRIPT_MENDE_KIKAKUI,          
  6434     SCRIPT_OLD_NORTH_ARABIAN,      
  6436     SCRIPT_PAHAWH_HMONG,           
  6439     SCRIPT_PSALTER_PAHLAVI,        
  6446     SCRIPT_ANATOLIAN_HIEROGLYPHS,  
  6449     SCRIPT_OLD_HUNGARIAN,          
  6461     SCRIPT_MASARAM_GONDI,          
  6464     SCRIPT_ZANABAZAR_SQUARE,       
  6468     SCRIPT_GUNJALA_GONDI,          
  6469     SCRIPT_HANIFI_ROHINGYA,        
  6478     SCRIPT_NYIAKENG_PUACHUE_HMONG, 
  6831         LanguageCode* lang_code, 
int* nr_scripts);
  6842 typedef struct _FONTOPS FONTOPS;
  6843 typedef struct _CHARSETOPS CHARSETOPS;
  6860     char             name [LEN_UNIDEVFONT_NAME + 1];
  6876     CHARSETOPS*      charset_ops;
  6892 #define INV_LOGFONT     0  6971                 const char* mchar, 
int mchar_len,
  6974 #ifndef _MGRM_THREADS  7137 MG_EXPORT PLOGFONT GUIAPI 
CreateLogFont (
const char* type, 
const char* family,
  7138         const char* charset, 
char weight, 
char slant, 
char flip,
  7139         char other, 
char underline, 
char struckout,
  7140         int size, 
int rotation);
  7271 MG_EXPORT PLOGFONT GUIAPI 
CreateLogFontEx (
const char* type, 
const char* family,
  7272         const char* charset, 
char weight, 
char slant, 
char flip,
  7273         char other, 
char decoration, 
char rendering,
  7274         int size, 
int rotation);
  7308 #ifdef _MGCHARSET_UNICODE  7425 MG_EXPORT PLOGFONT GUIAPI 
SelectFont (
HDC hdc, PLOGFONT log_font);
  7511         const char *file_name);
  7542 #define SYSLOGFONT_DEFAULT          0  7548 #define SYSLOGFONT_WCHAR_DEF        1  7554 #define SYSLOGFONT_FIXED            2  7560 #define SYSLOGFONT_CAPTION          3  7566 #define SYSLOGFONT_MENU             4  7572 #define SYSLOGFONT_CONTROL          5  7574 #define NR_SYSLOGFONTS              6  7577 extern MG_EXPORT PLOGFONT g_SysLogFont [];
  7604     if (font_id >= 0 && font_id < NR_SYSLOGFONTS)
  7605         return g_SysLogFont [font_id];
  7607         return (PLOGFONT)
NULL;
  7760                 const char* mstr, 
int len, 
int* pos_chars);
  7785 MG_EXPORT 
int GUIAPI 
GetTextWordInfo (PLOGFONT log_font, 
const char* mstr,
  7786                 int len, 
int* pos_words, 
WORDINFO* info_words);
  7804                 const char* mstr, 
int len);
  7827                 const char* mstr, 
int len, 
WORDINFO* word_info);
  7861                 int max_extent, 
int* fit_chars, 
int* pos_chars,
  7862                 int* dx_chars, 
SIZE* size);
  7873                 const char* text, 
int len, 
int max_extent,
  7874                 int* fit_chars, 
int* pos_chars, 
int* dx_chars, 
SIZE* size);
  7876 #ifdef _MGCHARSET_UNICODE  7901 MG_EXPORT 
int GUIAPI 
MB2WCEx (PLOGFONT log_font, 
void* dest, 
BOOL wc32,
  7902                 const unsigned char* mstr, 
int n);
  7910 #define MB2WC(log_font, dest, mstr, n) \  7911                    MB2WCEx (log_font, dest, sizeof(wchar_t) == 4, mstr, n)  7930 MG_EXPORT 
int GUIAPI 
WC2MBEx (PLOGFONT log_font, 
unsigned char *s, Uchar32 wc);
  7938 #define WC2MB(log_font, s, wc) \  7939                    WC2MBEx (log_font, s, (Uchar32)wc)  7973 MG_EXPORT 
int GUIAPI 
MBS2WCSEx (PLOGFONT log_font, 
void* dest, 
BOOL wc32,
  7974                 const unsigned char* mstr, 
int mstr_len, 
int n,
  7975                 int* conved_mstr_len);
  7983 #define MBS2WCS(log_font, dest, mstr, mstr_len, n) \  7984             MBS2WCSEx(log_font, dest, sizeof (wchar_t) == 4, mstr, \  8019 MG_EXPORT 
int GUIAPI 
WCS2MBSEx (PLOGFONT log_font, 
unsigned char* dest,
  8020                 const void *wcs, 
int wcs_len, 
BOOL wc32, 
int n,
  8021                 int* conved_wcs_len);
  8029 #define WCS2MBS(log_font, dest, wcs, wcs_len, n) \  8030             WCS2MBSEx (log_font, dest, wcs, wcs_len, sizeof (wchar_t) == 4, \  8079 #define BIDI_FLAG_SHAPE_MIRRORING       0x00000001  8080 #define BIDI_FLAG_REORDER_NSM           0x00000002  8081 #define BIDI_FLAG_SHAPE_ARAB_PRES       0x00000100  8082 #define BIDI_FLAG_SHAPE_ARAB_LIGA       0x00000200  8083 #define BIDI_FLAG_SHAPE_ARAB_CONSOLE    0x00000400  8085 #define BIDI_FLAGS_DEFAULT  \  8086     (BIDI_FLAG_REORDER_NSM | BIDI_FLAG_REMOVE_SPECIALS)  8088 #define BIDI_FLAGS_ARABIC  \  8089     (BIDI_FLAG_SHAPE_ARAB_PRES | BIDI_FLAG_SHAPE_ARAB_LIGA)  8091 #define BIDI_FLAG_REMOVE_BIDI           0x00010000  8092 #define BIDI_FLAG_REMOVE_JOINING        0x00020000  8093 #define BIDI_FLAG_REMOVE_SPECIALS       0x00040000  8095 #define BIDI_BRACKET_NONE           0  8096 #define BIDI_BRACKET_OPEN_MASK      0x80000000  8097 #define BIDI_BRACKET_CHAR_MASK      0X7FFFFFFF  8098 #define BIDI_IS_BRACKET_OPEN(bt)    ((bt & BIDI_BRACKET_OPEN_MASK)>0)  8099 #define BIDI_BRACKET_CHAR(bt)       ((bt & BIDI_BRACKET_CHAR_MASK))  8106 #define BIDI_TYPE_INVALID       0x0000  8108 #define BIDI_MASK_RTL           0x0001      8109 #define BIDI_MASK_ARABIC        0x0002      8110 #define BIDI_MASK_FIRST         0x0004      8111 #define BIDI_MASK_SEPARATOR     0x0008      8113 #define BIDI_MASK_STRONG        0x0010      8114 #define BIDI_MASK_WEAK          0x0020      8115 #define BIDI_MASK_NEUTRAL       0x0040      8116 #define BIDI_MASK_SENTINEL      0x0080      8119 #define BIDI_MASK_LETTER        0x0100      8120 #define BIDI_MASK_NUMBER        0x0200      8121 #define BIDI_MASK_NUMSEPTER     0x0300      8122 #define BIDI_MASK_SPACE         0x0400      8123 #define BIDI_MASK_EXPLICIT      0x0500      8124 #define BIDI_MASK_ISOLATE       0x0600      8125 #define BIDI_MASK_NSM           0x0700      8126 #   define BIDI_TYPE_MASK          0x0700  8128 #define BIDI_MASK_OVERRIDE      0x8000      8131 #define BIDI_MASK_ES            0x1000  8132 #define BIDI_MASK_CS            0x2000  8133 #define BIDI_MASK_ET            0x3000  8134 #define BIDI_MASK_BS            0x4000  8135 #define BIDI_MASK_SS            0x5000  8136 #define BIDI_MASK_BN            0x6000  8137 #define BIDI_MASK_WS            0x7000  8138 #   define BIDI_MISC_MASK          0x7000  8141 #define BIDI_MASK_PRIVATE       0x8000  8147 #define BIDI_TYPE_LTR \  8148     (BIDI_MASK_STRONG | BIDI_MASK_LETTER)  8154 #define BIDI_TYPE_RTL \  8155     (BIDI_MASK_STRONG | BIDI_MASK_LETTER | BIDI_MASK_RTL)  8161 #define BIDI_TYPE_AL \  8162     (BIDI_MASK_STRONG | BIDI_MASK_LETTER | BIDI_MASK_RTL  | BIDI_MASK_ARABIC)  8168 #define BIDI_TYPE_LRE \  8169     (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT)  8175 #define BIDI_TYPE_RLE \  8176     (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_RTL)  8182 #define BIDI_TYPE_LRO \  8183     (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_OVERRIDE)  8189 #define BIDI_TYPE_RLO \  8190     (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_RTL | BIDI_MASK_OVERRIDE)  8196 #define BIDI_TYPE_PDF \  8197     (BIDI_MASK_WEAK | BIDI_MASK_EXPLICIT)  8203 #define BIDI_TYPE_EN \  8204     (BIDI_MASK_WEAK | BIDI_MASK_NUMBER)  8210 #define BIDI_TYPE_AN \  8211     (BIDI_MASK_WEAK | BIDI_MASK_NUMBER | BIDI_MASK_ARABIC)  8217 #define BIDI_TYPE_ES \  8218     (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_ES)  8224 #define BIDI_TYPE_ET \  8225     (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_ET)  8231 #define BIDI_TYPE_CS \  8232     (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_CS)  8238 #define BIDI_TYPE_NSM \  8239     (BIDI_MASK_WEAK | BIDI_MASK_NSM)  8245 #define BIDI_TYPE_BN \  8246     (BIDI_MASK_WEAK | BIDI_MASK_SPACE | BIDI_MASK_BN)  8252 #define BIDI_TYPE_BS \  8253     (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_SEPARATOR | BIDI_MASK_BS)  8259 #define BIDI_TYPE_SS \  8260     (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_SEPARATOR | BIDI_MASK_SS)  8266 #define BIDI_TYPE_WS \  8267     (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_WS)  8273 #define BIDI_TYPE_ON \  8280 #define BIDI_TYPE_LRI \  8281     (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE)  8287 #define BIDI_TYPE_RLI \  8288     (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE | BIDI_MASK_RTL)  8294 #define BIDI_TYPE_FSI \  8295     (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE | BIDI_MASK_FIRST)  8301 #define BIDI_TYPE_PDI \  8302     (BIDI_MASK_NEUTRAL | BIDI_MASK_WEAK | BIDI_MASK_ISOLATE)  8304 #define BIDI_TYPE_SENTINEL    (BIDI_MASK_SENTINEL)  8309 #define BIDI_TYPE_WLTR      (BIDI_MASK_WEAK)  8311 #define BIDI_TYPE_WRTL      (BIDI_MASK_WEAK | BIDI_MASK_RTL)  8314 #define BIDI_TYPE_SOT       (BIDI_MASK_SENTINEL)  8316 #define BIDI_TYPE_EOT       (BIDI_MASK_SENTINEL | BIDI_MASK_RTL)  8318 #define BIDI_TYPE_PRIVATE   (BIDI_MASK_PRIVATE)  8321 #define BIDI_IS_PRIVATE(p)  ((p) & BIDI_MASK_PRIVATE)  8324 #define BIDI_IS_RTL(p)      ((p) & BIDI_MASK_RTL)  8327 #define BIDI_IS_ARABIC(p)   ((p) & BIDI_MASK_ARABIC)  8330 #define BIDI_LEVEL_IS_RTL(lev) ((lev) & 1)  8334 #define BIDI_LEVEL_TO_DIR(lev) \  8335     (BIDI_LEVEL_IS_RTL(lev) ? BIDI_TYPE_RTL : BIDI_TYPE_LTR)  8339 #define BIDI_DIR_TO_LEVEL(dir) \  8340     ((BidiLevel) (BIDI_IS_RTL(dir) ? 1 : 0))  8343 #define BIDI_IS_STRONG(p)   ((p) & BIDI_MASK_STRONG)  8345 #define BIDI_IS_WEAK(p)     ((p) & BIDI_MASK_WEAK)  8347 #define BIDI_IS_NEUTRAL(p)  ((p) & BIDI_MASK_NEUTRAL)  8349 #define BIDI_IS_SENTINEL(p) ((p) & BIDI_MASK_SENTINEL)  8352 #define BIDI_IS_LETTER(p)   (((p) & BIDI_TYPE_MASK) == BIDI_MASK_LETTER)  8355 #define BIDI_IS_NUMBER(p)   (((p) & BIDI_TYPE_MASK) == BIDI_MASK_NUMBER)  8358 #define BIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR(p) \  8359     (((p) & BIDI_TYPE_MASK) == BIDI_MASK_NUMSEPTER)  8362 #define BIDI_IS_SPACE(p)    (((p) & BIDI_TYPE_MASK) == BIDI_MASK_SPACE)  8364 #define BIDI_IS_EXPLICIT(p) (((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT)  8367 #define BIDI_IS_SEPARATOR(p) ((p) & BIDI_MASK_SEPARATOR)  8370 #define BIDI_IS_OVERRIDE(p) ((p) & BIDI_MASK_OVERRIDE)  8373 #define BIDI_IS_ISOLATE(p) (((p) & BIDI_TYPE_MASK) == BIDI_MASK_ISOLATE)  8376 #define BIDI_IS_LTR_LETTER(p) \  8377     ((p) & (BIDI_MASK_LETTER | BIDI_MASK_RTL) == BIDI_MASK_LETTER)  8380 #define BIDI_IS_RTL_LETTER(p) \  8381     ((p) & (BIDI_MASK_LETTER | BIDI_MASK_RTL) \  8382     == (BIDI_MASK_LETTER | BIDI_MASK_RTL))  8385 #define BIDI_IS_ES_OR_CS(p) \  8386     (((p) & BIDI_MISC_MASK) == BIDI_MASK_ES || \  8387      ((p) & BIDI_MISC_MASK) == BIDI_MASK_CS)  8390 #define BIDI_NUMBER_TO_RTL(p) \  8391     (BIDI_IS_NUMBER(p) ? BIDI_TYPE_RTL : (p))  8394 #define BIDI_IS_EXPLICIT_OR_BN(p) \  8395     ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \  8396         (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN))  8399 #define BIDI_IS_EXPLICIT_OR_BN_OR_WS(p) \  8400     ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \  8401         (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN) || \  8402         (((p) & BIDI_MISC_MASK) == BIDI_MASK_WS))  8405 #define BIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS(p) \  8406     ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \  8407         ((p) & BIDI_MASK_SEPARATOR) || \  8408         (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN) || \  8409         (((p) & BIDI_MISC_MASK) == BIDI_MASK_WS))  8412 #define BIDI_IS_EXPLICIT_OR_BN_OR_NSM(p) \  8413     ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \  8414         (((p) & BIDI_TYPE_MASK) == BIDI_MASK_NSM) || \  8415         (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN))  8419 #define BIDI_EXPLICIT_TO_OVERRIDE_DIR(p) \  8420     (BIDI_IS_OVERRIDE(p) ? BIDI_LEVEL_TO_DIR(BIDI_DIR_TO_LEVEL(p)) \  8424 #define BIDI_CHANGE_NUMBER_TO_RTL(p) \  8425     (BIDI_IS_NUMBER(p) ? BIDI_TYPE_RTL : (p))  8427 #define BIDI_PGDIR_LTR  BIDI_TYPE_LTR  8428 #define BIDI_PGDIR_RTL  BIDI_TYPE_RTL  8429 #define BIDI_PGDIR_WLTR BIDI_TYPE_WLTR  8430 #define BIDI_PGDIR_WRTL BIDI_TYPE_WRTL  8431 #define BIDI_PGDIR_ON   BIDI_TYPE_ON  8437 #define BIDI_MASK_JOINS_RIGHT       0x01      8438 #define BIDI_MASK_JOINS_LEFT        0x02      8439 #define BIDI_MASK_ARAB_SHAPES       0x04      8440 #define BIDI_MASK_TRANSPARENT       0x08      8441 #define BIDI_MASK_IGNORED           0x10      8442 #define BIDI_MASK_LIGATURED         0x20      8449 #define BIDI_JOINING_TYPE_U_VAL    ( 0 )  8452 #define BIDI_JOINING_TYPE_R_VAL    \  8453     ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_ARAB_SHAPES )  8456 #define BIDI_JOINING_TYPE_D_VAL    \  8457     ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT \  8458     | BIDI_MASK_ARAB_SHAPES )  8461 #define BIDI_JOINING_TYPE_C_VAL    \  8462     ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT )  8465 #define BIDI_JOINING_TYPE_L_VAL    \  8466     ( BIDI_MASK_JOINS_LEFT | BIDI_MASK_ARAB_SHAPES )  8469 #define BIDI_JOINING_TYPE_T_VAL    \  8470     ( BIDI_MASK_TRANSPARENT | BIDI_MASK_ARAB_SHAPES )  8473 #define BIDI_JOINING_TYPE_G_VAL    ( BIDI_MASK_IGNORED )  8482 #define BIDI_IS_JOINING_TYPE_U(p)    \  8484         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8485         | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) ) )  8488 #define BIDI_IS_JOINING_TYPE_R(p)    \  8489     ( BIDI_MASK_JOINS_RIGHT == ( (p) &    \  8490         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8491         | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) ) )  8494 #define BIDI_IS_JOINING_TYPE_D(p)    \  8495     ( ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT    \  8496       | BIDI_MASK_ARAB_SHAPES ) == ( (p) &    \  8497         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8498         | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT    \  8499         | BIDI_MASK_ARAB_SHAPES ) ) )  8502 #define BIDI_IS_JOINING_TYPE_C(p)    \  8503     ( ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) == ( (p) & \  8504         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8505         | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT    \  8506         | BIDI_MASK_ARAB_SHAPES ) ) )  8509 #define BIDI_IS_JOINING_TYPE_L(p)    \  8510     ( BIDI_MASK_JOINS_LEFT == ( (p) &    \  8511         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8512         | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) ) )  8515 #define BIDI_IS_JOINING_TYPE_T(p)    \  8516     ( BIDI_MASK_TRANSPARENT == ( (p) &    \  8517         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED ) ) )  8520 #define BIDI_IS_JOINING_TYPE_G(p)    \  8521     ( BIDI_MASK_IGNORED == ( (p) &    \  8522         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED ) ) )  8527 #define BIDI_IS_JOINING_TYPE_RC(p)    \  8528     ( BIDI_MASK_JOINS_RIGHT == ( (p) &    \  8529         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8530         | BIDI_MASK_JOINS_RIGHT ) ) )  8533 #define BIDI_IS_JOINING_TYPE_LC(p)    \  8534     ( BIDI_MASK_JOINS_LEFT == ( (p) &    \  8535         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8536         | BIDI_MASK_JOINS_LEFT ) ) )  8544 #define BIDI_JOINS_RIGHT(p)    ((p) & BIDI_MASK_JOINS_RIGHT)  8547 #define BIDI_JOINS_LEFT(p)    ((p) & BIDI_MASK_JOINS_LEFT)  8550 #define BIDI_ARAB_SHAPES(p)    ((p) & BIDI_MASK_ARAB_SHAPES)  8553 #define BIDI_IS_JOIN_SKIPPED(p)    \  8554     ((p) & (BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED))  8557 #define BIDI_IS_JOIN_BASE_SHAPES(p)    \  8558     ( BIDI_MASK_ARAB_SHAPES == ( (p) &    \  8559         ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED    \  8560         | BIDI_MASK_ARAB_SHAPES ) ) )  8562 #define BIDI_JOINS_PRECEDING_MASK(level)    \  8563     (BIDI_LEVEL_IS_RTL (level) ? BIDI_MASK_JOINS_RIGHT    \  8564                       : BIDI_MASK_JOINS_LEFT)  8566 #define BIDI_JOINS_FOLLOWING_MASK(level)    \  8567     (BIDI_LEVEL_IS_RTL (level) ? BIDI_MASK_JOINS_LEFT    \  8568                       : BIDI_MASK_JOINS_RIGHT)  8570 #define BIDI_JOIN_SHAPE(p)    \  8571     ((p) & ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ))  8575 #ifdef _MGCHARSET_UNICODE  8704         const BidiType *bidi_types, 
int len_ucs,
  8705         BidiBracketType *bracket_types);
  8776         BidiJoiningType *joining_types);
  8846         const BidiType *bidi_types,
  8847         const BidiBracketType* bracket_types, 
int len,
  8848         ParagraphDir *paragraph_dir, BidiLevel *embedding_levels);
  8886         const Uchar32* ucs, 
int nr_ucs,
  8887         ParagraphDir *paragraph_dir, BidiLevel *embedding_levels);
  8898 typedef void (*CB_REVERSE_ARRAY) (
void* extra, 
int len, 
int pos);
  8960         const BidiType *bidi_types, 
int len, 
int off,
  8961         ParagraphDir paragraph_dir, BidiLevel *embedding_levels,
  8962         Uchar32 *visual_str, 
int *indices_map,
  8963         void* extra, CB_REVERSE_ARRAY cb_reverse_extra);
  8988         int len, Uchar32* ucs);
  9024         const BidiLevel *embedding_levels, 
int len,
  9025         BidiArabicProp *ar_props);
  9065         const BidiLevel *embedding_levels, 
int len,
  9066         BidiArabicProp *ar_props, Uchar32* ucs);
  9101         const BidiLevel *embedding_levels, 
int len,
  9102         BidiArabicProp *ar_props, Uchar32* ucs);
  9122 #define CTR_NONE            0x00  9124 #define CTR_CASE_MASK       0x0F  9132 #define CTR_CAPITALIZE      0x01  9139 #define CTR_UPPERCASE       0x02  9146 #define CTR_LOWERCASE       0x03  9156 #define CTR_FULL_WIDTH      0x10  9167 #define CTR_FULL_SIZE_KANA  0x20  9186 #define WBR_NORMAL          0x00  9193 #define WBR_BREAK_ALL       0x01  9200 #define WBR_KEEP_ALL        0x02  9219 #define LBP_NORMAL          0x00  9227 #define LBP_LOOSE           0x01  9234 #define LBP_STRICT          0x02  9246 #define LBP_ANYWHERE        0x03  9266 #define BOV_UNKNOWN                 0x0000  9270 #define BOV_WHITESPACE              0x8000  9274 #define BOV_EXPANDABLE_SPACE        0x0800  9279 #define BOV_ZERO_WIDTH              0x0080  9281 #define BOV_GB_MASK                 0x7000  9285 #define BOV_GB_CHAR_BREAK           0x1000  9290 #define BOV_GB_CURSOR_POS           0x2000  9295 #define BOV_GB_BACKSPACE_DEL_CH     0x4000  9297 #define BOV_WB_MASK                 0x0700  9301 #define BOV_WB_WORD_BOUNDARY        0x0100  9305 #define BOV_WB_WORD_START           0x0200  9309 #define BOV_WB_WORD_END             0x0400  9311 #define BOV_SB_MASK                 0x0070  9315 #define BOV_SB_SENTENCE_BOUNDARY    0x0010  9319 #define BOV_SB_SENTENCE_START       0x0020  9323 #define BOV_SB_SENTENCE_END         0x0040  9325 #define BOV_LB_MASK                 0x000F  9326 #define BOV_LB_BREAK_FLAG           0x0004  9327 #define BOV_LB_MANDATORY_FLAG       0x0008  9331 #define BOV_LB_ALLOWED              (BOV_LB_BREAK_FLAG | 0x0001)  9335 #define BOV_LB_MANDATORY            (BOV_LB_BREAK_FLAG | BOV_LB_MANDATORY_FLAG | 0x0002)  9339 #define BOV_LB_NOTALLOWED           0x0003  9409         Uchar32* ucs, 
int nr_ucs, BreakOppo** break_oppos);
  9411 MG_EXPORT 
void GUIAPI UStrTailorBreaks(ScriptType writing_system,
  9412         const Uchar32* ucs, 
int nr_ucs, BreakOppo* break_oppos);
  9533         Uchar32 *result, 
int result_len);
  9631             iso15924[2], iso15924[1], iso15924[0]));
  9634 typedef enum _UVerticalOrient {
  9642     GLYPH_RUN_DIR_LTR = 0,
  9649     GLYPH_GRAVITY_SOUTH = 0,
  9651     GLYPH_GRAVITY_NORTH,
  9657     GLYPH_GRAVITY_POLICY_NATURAL,
  9658     GLYPH_GRAVITY_POLICY_STRONG,
  9659     GLYPH_GRAVITY_POLICY_LINE,
  9660     GLYPH_GRAVITY_POLICY_MIXED,
  9661 } GlyphGravityPolicy;
  9686 MG_EXPORT GlyphGravity GUIAPI ScriptGetGlyphGravity(ScriptType script,
  9687         BOOL vertical, GlyphGravity base_gravity, GlyphGravityPolicy policy);
  9717 GlyphGravity ScriptGetGlyphGravityForWide (ScriptType script,
  9719         GlyphGravity base_gravity, GlyphGravityPolicy policy);
  9779                 const char* spText, 
int len, 
SIZE* pSize);
  9802                 const char* spText, 
int len, 
SIZE* pSize);
  9810 #define GetTextCharacterExtra(hdc)  GetDCAttr (hdc, DC_ATTR_CHAR_EXTRA)  9818 #define GetTextWordExtra(hdc)  GetDCAttr (hdc, DC_ATTR_WORD_EXTRA)  9826 #define GetTextAboveLineExtra(hdc)  GetDCAttr (hdc, DC_ATTR_ALINE_EXTRA)  9834 #define GetTextBellowLineExtra(hdc) GetDCAttr (hdc, DC_ATTR_BLINE_EXTRA)  9843 #define SetTextCharacterExtra(hdc, extra)       \  9844                 SetDCAttr (hdc, DC_ATTR_CHAR_EXTRA, (DWORD) extra)  9853 #define SetTextWordExtra(hdc, extra)       \  9854                 SetDCAttr (hdc, DC_ATTR_WORD_EXTRA, (DWORD) extra)  9862 #define SetTextAboveLineExtra(hdc, extra)       \  9863                 SetDCAttr (hdc, DC_ATTR_ALINE_EXTRA, (DWORD) extra)  9871 #define SetTextBellowLineExtra(hdc, extra)      \  9872                 SetDCAttr (hdc, DC_ATTR_BLINE_EXTRA, (DWORD) extra)  9874 #define TA_LEFT         0x0000  9875 #define TA_RIGHT        0x0001  9876 #define TA_CENTER       0x0002  9877 #define TA_X_MASK       0x000F  9879 #define TA_TOP          0x0000  9880 #define TA_BASELINE     0x0010  9881 #define TA_BOTTOM       0x0020  9882 #define TA_Y_MASK       0x00F0  9884 #define TA_NOUPDATECP   0x0000  9885 #define TA_UPDATECP     0x0100  9886 #define TA_CP_MASK      0x0F00  9939 #define GetTextAlign(hdc)         GetDCAttr (hdc, DC_ATTR_TEXT_ALIGN)  9997 #define SetTextAlign(hdc, ta_flags)         \  9998             SetDCAttr (hdc, DC_ATTR_TEXT_ALIGN, (DWORD)ta_flags) 10000 #define BIDI_FLAG_LTR       0x00 10001 #define BIDI_FLAG_RTL       0x10 10003 #define GetBIDIFlags(hdc)                   \ 10004             GetDCAttr (hdc, DC_ATTR_BIDI_FLAGS) 10006 #define SetBIDIFlags(hdc, bidi_flags)       \ 10007             SetDCAttr (hdc, DC_ATTR_BIDI_FLAGS, (DWORD)bidi_flags) 10028                 const char* spText, 
int len);
 10053                 const char *mtext, 
int len, 
int max_extent);
 10077                 const char* spText, 
int len);
 10106                 const char* spText, 
int nCount,
 10107                 int nTabPositions, 
int *pTabPositions, 
int nTabOrigin);
 10128 #define TextOut(hdc, x, y, text)    TextOutLen (hdc, x, y, text, -1) 10138 #define TabbedTextOut(hdc, x, y, text)  TabbedTextOutLen (hdc, x, y, text, -1) 10140 #define DT_TOP              0x00000000 10141 #define DT_LEFT             0x00000000 10142 #define DT_CENTER           0x00000001 10143 #define DT_RIGHT            0x00000002 10144 #define DT_VCENTER          0x00000004 10145 #define DT_BOTTOM           0x00000008 10146 #define DT_WORDBREAK        0x00000010 10147 #define DT_SINGLELINE       0x00000020 10148 #define DT_EXPANDTABS       0x00000040 10149 #define DT_TABSTOP          0x00000080 10150 #define DT_NOCLIP           0x00000100 10151 #define DT_EXTERNALLPADING  0x00000200 10152 #define DT_CALCRECT         0x00000400 10153 #define DT_NOPREFIX         0x00000800 10154 #define DT_INTERNAL         0x00001000 10155 #define DT_CHARBREAK        0x00002000 10249 MG_EXPORT 
int GUIAPI 
DrawTextEx2 (
HDC hdc, 
const char* pText, 
int nCount,
 10261 #define DrawText(hdc, text, n, rc, format)          \ 10262                 DrawTextEx2 (hdc, text, n, rc, 0, format, NULL) 10272 #define DrawTextEx(hdc, text, n, rc, indent, format)    \ 10273                 DrawTextEx2 (hdc, text, n, rc, indent, format, NULL) 10285 #define MYBMP_TYPE_NORMAL       0x00000000 10286 #define MYBMP_TYPE_RLE4         0x00000001 10287 #define MYBMP_TYPE_RLE8         0x00000002 10288 #define MYBMP_TYPE_RGB          0x00000003 10289 #define MYBMP_TYPE_BGR          0x00000004 10290 #define MYBMP_TYPE_RGBA         0x00000005 10291 #define MYBMP_TYPE_MASK         0x0000000F 10293 #define MYBMP_FLOW_DOWN         0x00000010 10294 #define MYBMP_FLOW_UP           0x00000020 10295 #define MYBMP_FLOW_MASK         0x000000F0 10297 #define MYBMP_TRANSPARENT       0x00000100 10298 #define MYBMP_ALPHACHANNEL      0x00000200 10299 #define MYBMP_ALPHA             0x00000400 10301 #define MYBMP_RGBSIZE_3         0x00001000 10302 #define MYBMP_RGBSIZE_4         0x00002000 10304 #define MYBMP_LOAD_GRAYSCALE    0x00010000 10305 #define MYBMP_LOAD_ALLOCATE_ONE 0x00020000 10306 #define MYBMP_LOAD_NONE         0x00000000 10347     Uint8 reserved [2];
 10364 #define BMP_TYPE_NORMAL         0x00 10365 #define BMP_TYPE_RLE            0x01 10366 #define BMP_TYPE_ALPHA          0x02 10367 #define BMP_TYPE_ALPHACHANNEL   0x04 10368 #define BMP_TYPE_COLORKEY       0x10 10369 #define BMP_TYPE_ALPHA_MASK     0x20 10370 #define BMP_TYPE_REPLACEKEY     0x40 10497             void (*cleanup) (
void* init_info),
 10559 #define MLS_BLENDMODE_NONE           0x00 10560 #define MLS_BLENDMODE_COLORKEY       0x01 10561 #define MLS_BLENDMODE_ALPHA          0x02 10563 #define MLS_INFOMASK_OFFSET          0x01 10564 #define MLS_INFOMASK_BLEND           0x02 10565 #define MLS_INFOMASK_ZORDER          0x04 10566 #define MLS_INFOMASK_ALL             0x07 10567 #define MLS_INFOMASK_ENABLE          0x08 10569 MG_EXPORT 
BOOL GUIAPI mlsSetSlaveScreenInfo (
HDC dc_mls, 
DWORD mask, 
int offset_x, 
int offset_y,
 10570         DWORD blend_flags, 
gal_pixel color_key, 
int alpha, 
int z_order);
 10572 MG_EXPORT 
BOOL GUIAPI mlsGetSlaveScreenInfo (
HDC dc_mls, 
DWORD mask, 
int* offset_x, 
int* offset_y,
 10573                         DWORD blend_flags, 
gal_pixel* color_key, 
int* alpha, 
int* z_order);
 10590 #define ERR_BMP_OK              0 10591 #define ERR_BMP_IMAGE_TYPE      -1 10592 #define ERR_BMP_UNKNOWN_TYPE    -2 10593 #define ERR_BMP_CANT_READ       -3 10594 #define ERR_BMP_CANT_SAVE       -4 10595 #define ERR_BMP_NOT_SUPPORTED   -5 10596 #define ERR_BMP_MEM             -6 10597 #define ERR_BMP_LOAD            -7 10598 #define ERR_BMP_FILEIO          -8 10599 #define ERR_BMP_OTHER           -9 10600 #define ERR_BMP_ERROR_SOURCE    -10 10639                 const char* spFileName);
 10647 #define LoadBitmap  LoadBitmapFromFile 10657                 const void* mem, 
int size, 
const char* ext);
 10815                 const char* file_name);
 10823 #define LoadMyBitmap    LoadMyBitmapFromFile 10841                 const void* mem, 
int size, 
const char* ext);
 10856 #ifdef _MGMISC_SAVEBITMAP 10875                 const char* spFileName);
 10893                 const char* spFileName);
 10894 #define SaveBitmap  SaveBitmapToFile 10919                 BYTE* bits, PBITMAP bmp);
 10985 typedef struct GAL_PixelFormat {
 10988     Uint8  BitsPerPixel;
 10989     Uint8  BytesPerPixel;
 10991     Uint8  DitheredPalette;
 11015 #define _FILL_MYBITMAP 11017 #ifndef MYBITMAP_CONTXT 11018 typedef struct _MYBITMAP_CONTXT{
 11021     GAL_PixelFormat* AlphaPixelFormat;
 11026 typedef BYTE* (* CB_DRAW_PIXEL) (
HDC hdc, MYBITMAP_CONTXT* mybmp, 
Uint32 pixel, 
BYTE* dest);
 11044                 const MYBITMAP* my_bmp, 
const RGB* pal, 
int frame);
 11072 MG_EXPORT 
void GUIAPI Expand16CBitmapEx (
HDC hdc, 
BYTE* bits, 
Uint32 pitch,
 11102     Expand16CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
 11103                 w, h, flags, pal, 
FALSE, 0xFF);
 11106 MG_EXPORT 
void GUIAPI Expand256CBitmapEx (
HDC hdc, 
BYTE* bits, 
Uint32 pitch,
 11110                 CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
 11138                 CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp)
 11140     Expand256CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
 11141                 w, h, flags, pal, 
FALSE, 0xFF, cb_draw, mybmp);
 11170                 CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
 11187                         CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp,
 11190 #ifdef _FILL_MYBITMAP 11191 MG_EXPORT 
int GUIAPI FillBoxWithMyBitmap (
HDC hdc, 
int x, 
int y, 
MYBITMAP* mybmp, 
RGB* pal);
 11193 MG_EXPORT 
void GUIAPI ExpandPartMonoBitmap (
HDC hdc, 
BYTE* bits, 
Uint32 pitch,
 11196                 int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
 11198 MG_EXPORT 
void GUIAPI ExpandPart16CBitmapEx (
HDC hdc, 
BYTE* bits, 
Uint32 pitch,
 11202                 int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
 11204 static inline void GUIAPI ExpandPart16CBitmap (
HDC hdc, 
BYTE* bits, 
Uint32 pitch,
 11207                 int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp)
 11209     ExpandPart16CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
 11210                 w, h, flags, pal, 
FALSE, 0xFF, stepx, cb_draw, mybmp);
 11215 #define CompileRGBBitmap CompileRGBABitmap 11263                 const char* spFileName);
 11282                 const void* mem, 
int size, 
const char* ext);
 11335                 int w, 
int h, 
const char* spFileName);
 11356                 int w, 
int h, 
const void* mem, 
int size, 
const char* ext);
 11358 #ifdef _MGHAVE_FIXED_MATH 11376                 int lx, 
int ty, 
int angle);
 11389                 int lx, 
int ty, 
int angle);
 11400                 int lx, 
int ty, 
int angle);
 11411                 int lx, 
int ty, 
int angle, 
int w, 
int h);
 11425                 int lx, 
int ty, 
int angle, 
int w, 
int h);
 11439                 int lx, 
int ty, 
int angle, 
int w, 
int h);
 11453                 int lx, 
int ty, 
int cx, 
int cy, 
int angle);
 11493 #ifdef _MGFONT_BMPF 11513                 const BITMAP* glyph_bmp, 
const char* start_mchar, 
int nr_glyphs,
 11532                 const char* start_mchar, 
int nr_glyphs, 
int glyph_width);
 11616 #define INV_ACHAR_VALUE             0xFFFFFFFF 11621 #define INV_GLYPH_VALUE             0xFFFFFFFF 11637         int mchar_len, 
const char* pre_mchar, 
int pre_len);
 11639 #ifdef _MGCHARSET_UNICODE 11659         int mchar_len, Uchar32* uc);
 11725         int mchar_len, ACHARSHAPETYPE shape_type);
 11749         Achar32* mirrored);
 11777 typedef struct _ACHARMAPINFO {
 11811         const char* text, 
int text_len, Achar32** achars,
 11840         const char* text, 
int text_len, 
int start_index, 
int end_index,
 11841         int** ranges, 
int* nr_ranges);
 11868         const char* text, 
int text_len, Achar32** achars,
 11905         Achar32* achars, 
int nr_achars, 
int pel,
 11906         void* extra, CB_REVERSE_ARRAY cb_reverse_extra);
 11935         Achar32* achars, 
int nr_achars, 
ACHARMAPINFO* achars_map);
 11965 MG_EXPORT 
void GUIAPI BIDIGetLogicalEmbedLevelsEx (
LOGFONT* log_font,
 11966         Achar32* achars, 
int nr_achars, 
int pel, 
Uint8** embedding_levels);
 11968 static inline void BIDIGetLogicalEmbeddLevels (
LOGFONT* log_font,
 11969         Achar32* achars, 
int nr_achars, 
Uint8** embedding_levels)
 11971     BIDIGetLogicalEmbedLevelsEx (log_font, achars, nr_achars, -1,
 12006 MG_EXPORT 
void GUIAPI BIDIGetVisualEmbedLevelsEx (
LOGFONT* log_font,
 12007         Achar32* achars, 
int nr_achars, 
int pel, 
Uint8** embedding_levels);
 12009 static inline void BIDIGetVisualEmbeddLevels (
LOGFONT* log_font,
 12010         Achar32* achars, 
int nr_achars, 
Uint8** embedding_levels)
 12012     BIDIGetVisualEmbedLevelsEx (log_font, achars, nr_achars, -1,
 12038 MG_EXPORT 
int GUIAPI DrawACharString (
HDC hdc, 
int x, 
int y, Achar32* achars,
 12039         int nr_achars, 
int* adv_x, 
int* adv_y);
 12078         int nr_achars, 
int max_extent, 
SIZE* size);
 12094         int mchar_len, 
const char* pre_mchar, 
int pre_len);
 12126 MG_EXPORT 
int GUIAPI 
DrawGlyph (
HDC hdc, 
int x, 
int y, Glyph32 glyph_value,
 12127         int* adv_x, 
int* adv_y);
 12148 MG_EXPORT 
int GUIAPI DrawGlyphString (
HDC hdc, Glyph32* glyphs, 
int nr_glyphs,
 12190         int nr_glyphs, 
int max_extent, 
SIZE* size);
 12192 #define GLYPH_INFO_METRICS      0x01 12193 #define GLYPH_INFO_BMP          0x02 12196 #define GLYPHBMP_TYPE_MONO      0x00 12198 #define GLYPHBMP_TYPE_GREY      0x01 12200 #define GLYPHBMP_TYPE_GREY4b    0x02 12202 #define GLYPHBMP_TYPE_SUBPIXEL  0x03 12204 #define GLYPHBMP_TYPE_PRERENDER 0x04 12210 typedef struct _GLYPHINFO {
 12220     int bbox_x, bbox_y, bbox_w, bbox_h;
 12222     int advance_x, advance_y;
 12241     const unsigned char* bits;
 12270 #ifdef _MGCHARSET_UNICODE 12289 #define WSR_NORMAL          0x00 12299 #define WSR_PRE             0x01 12307 #define WSR_NOWRAP          0x02 12315 #define WSR_PRE_WRAP        0x03 12331 #define WSR_BREAK_SPACES    0x04 12340 #define WSR_PRE_LINE        0x05 12382         const char* mstr, 
int mstr_len, 
Uint8 wsr,
 12383         Uchar32** uchars, 
int* nr_uchars);
 12422         Uchar32* ucs, 
int n);
 12435 #define UCHAR2ACHAR(uc) ((uc) | 0x80000000) 12482         Achar32* acs, 
int n);
 12500 #define GRF_WRITING_MODE_MASK               0xF0000000 12501 #define GRF_WRITING_MODE_VERTICAL_FLAG      0x20000000 12506 #define GRF_WRITING_MODE_HORIZONTAL_TB      0x00000000 12512 #define GRF_WRITING_MODE_HORIZONTAL_BT      0x10000000 12518 #define GRF_WRITING_MODE_VERTICAL_RL        0x20000000 12524 #define GRF_WRITING_MODE_VERTICAL_LR        0x30000000 12526 #define GRF_TEXT_ORIENTATION_MASK           0x0F000000 12531 #define GRF_TEXT_ORIENTATION_UPRIGHT        0x00000000 12536 #define GRF_TEXT_ORIENTATION_SIDEWAYS       0x01000000 12541 #define GRF_TEXT_ORIENTATION_UPSIDE_DOWN    0x02000000 12546 #define GRF_TEXT_ORIENTATION_SIDEWAYS_LEFT  0x03000000 12551 #define GRF_TEXT_ORIENTATION_AUTO           0x04000000 12559 #define GRF_TEXT_ORIENTATION_MIXED          0x05000000 12561 #define GRF_TEXT_ORIENTATION_LINE           0x06000000 12563 #define GRF_LINE_EXTENT_MASK                0x00C00000 12569 #define GRF_LINE_EXTENT_FIXED               0x00000000 12575 #define GRF_LINE_EXTENT_VARIABLE            0x00400000 12577 #define GRF_INDENT_MASK                     0x00300000 12581 #define GRF_INDENT_NONE                     0x00000000 12585 #define GRF_INDENT_FIRST_LINE               0x00100000 12589 #define GRF_INDENT_HANGING                  0x00200000 12591 #define GRF_OVERFLOW_WRAP_MASK              0x000C0000 12595 #define GRF_OVERFLOW_WRAP_NORMAL            0x00000000 12599 #define GRF_OVERFLOW_WRAP_BREAK_WORD        0x00040000 12605 #define GRF_OVERFLOW_WRAP_ANYWHERE          0x00080000 12607 #define GRF_OVERFLOW_ELLIPSIZE_MASK         0x00030000 12611 #define GRF_OVERFLOW_ELLIPSIZE_NONE         0x00000000 12615 #define GRF_OVERFLOW_ELLIPSIZE_START        0x00010000 12619 #define GRF_OVERFLOW_ELLIPSIZE_MIDDLE       0x00020000 12623 #define GRF_OVERFLOW_ELLIPSIZE_END          0x00030000 12625 #define GRF_ALIGN_MASK                      0x0000F000 12629 #define GRF_ALIGN_START                     0x00000000 12633 #define GRF_ALIGN_END                       0x00001000 12638 #define GRF_ALIGN_LEFT                      0x00002000 12643 #define GRF_ALIGN_RIGHT                     0x00003000 12647 #define GRF_ALIGN_CENTER                    0x00004000 12655 #define GRF_ALIGN_JUSTIFY                   0x00005000 12657 #define GRF_TEXT_JUSTIFY_MASK               0x00000F00 12661 #define GRF_TEXT_JUSTIFY_NONE               0x00000000 12667 #define GRF_TEXT_JUSTIFY_AUTO               0x00000100 12671 #define GRF_TEXT_JUSTIFY_INTER_WORD         0x00000200 12676 #define GRF_TEXT_JUSTIFY_INTER_CHAR         0x00000300 12678 #define GRF_HANGING_PUNC_MASK               0x000000F0 12682 #define GRF_HANGING_PUNC_NONE               0x00000000 12686 #define GRF_HANGING_PUNC_FORCE_END          0x00000010 12691 #define GRF_HANGING_PUNC_ALLOW_END          0x00000020 12695 #define GRF_HANGING_PUNC_OPEN               0x00000040 12699 #define GRF_HANGING_PUNC_CLOSE              0x00000080 12701 #define GRF_SPACES_MASK                     0x0000000F 12705 #define GRF_SPACES_KEEP                     0x00000000 12709 #define GRF_SPACES_REMOVE_START             0x00000001 12713 #define GRF_SPACES_REMOVE_END               0x00000002 12717 #define GRF_SPACES_HANGE_END                0x00000004 12722     GLYPH_ORIENT_UPRIGHT        = GLYPH_GRAVITY_SOUTH,
 12723     GLYPH_ORIENT_SIDEWAYS       = GLYPH_GRAVITY_EAST,
 12724     GLYPH_ORIENT_UPSIDE_DOWN    = GLYPH_GRAVITY_NORTH,
 12725     GLYPH_ORIENT_SIDEWAYS_LEFT  = GLYPH_GRAVITY_WEST,
 12729     GLYPH_HANGED_NONE = 0,
 12730     GLYPH_HANGED_START,
 12909         const Achar32* uchars, 
int nr_uchars, 
const BreakOppo* break_oppos,
 12910         Uint32 render_flags, 
int x, 
int y,
 12911         int letter_spacing, 
int word_spacing, 
int tab_size, 
int max_extent,
 12942 MG_EXPORT 
int GUIAPI DrawGlyphStringEx (
HDC hdc,
 12944         const Glyph32* glyphs, 
const GLYPHPOS* glyph_pos,
 12994         const Uchar32* ucs, 
int nr_ucs,
 12995         LanguageCode lang_code, ParagraphDir base_dir,
 12997         BreakOppo* break_oppos);
 13017         int start_index, 
int length, 
const char* logfont_name);
 13025         const TEXTRUNS* truns, 
int index);
 13045         int start_index, 
int length, 
RGBCOLOR color);
 13053         const TEXTRUNS* truns, 
int index);
 13076     int start_index, 
int length, 
RGBCOLOR color);
 13084         const TEXTRUNS* truns, 
int index);
 13139 #ifdef _MGCOMPLEX_SCRIPTS 13226         const BreakOppo* break_oppos, 
BOOL persist_lines,
 13227         int max_line_extent, 
int indent,
 13228         int letter_spacing, 
int word_spacing, 
int tab_size,
 13229         int* tabs, 
int nr_tabs);
 13251 typedef struct _RENDERDATA {
 13308         Glyph32 glyph_value, 
const GLYPHPOS* glyph_pos,
 13309         const RENDERDATA* render_data);
 13408         int* x, 
int* y, 
int line_height, 
RECT* line_rc);
 13446         int max_line_extent, 
int max_height, 
int line_height,
 13447         int x, 
int y, 
RECT* bounding);
 13478 MG_EXPORT 
BOOL DrawShapedGlyph(
HDC hdc,
 13479         Glyph32 glyph_value, 
const GLYPHPOS* glyph_pos,
 13480         const RENDERDATA* render_data);
 13516 #ifdef _MGDEVEL_MODE 13517 typedef struct _TextRun TEXTRUN;
 13519 MG_EXPORT TEXTRUN* GetNextTextRunInfo(
TEXTRUNS* runinfo,
 13521         const char** fontname, 
int* start_index, 
int* length,
 13522         LanguageCode* lang_code, ScriptType* script,
 13523         BidiLevel* embedding_level, 
Uint8* flags);
 13527         int* max_extent, 
int* nr_chars, 
int* nr_glyphs,
 13528         int** log_widths, 
int* width, 
int* height,
 13529         BOOL* is_ellipsized, 
BOOL* is_wrapped);
 13542 typedef struct _COMP_CTXT {
 13547     void* user_comp_ctxt;
 13563 typedef struct _SPAN_CTXT {
 13564     GAL_PixelFormat* dst_format; 
 13565     GAL_PixelFormat* src_format; 
 13566     void * user_context; 
 13573 typedef struct _COMPOSITE_CTXT {
 13576     const int *far_bkmode;
 13577     const int *far_step;
 13585 typedef struct _RASTER_CTXT {
 13598 typedef void (*CB_COMP_SETPIXEL) (COMP_CTXT* comp_ctxt);
 13609 typedef void (*CB_COMP_SETHLINE) (COMP_CTXT* comp_ctxt, 
int w);
 13620 typedef void (*CB_COMP_PUTHLINE) (COMP_CTXT* comp_ctxt, 
gal_uint8* src, 
int bkmode, 
int w);
 13643 MG_EXPORT 
int GUIAPI SetUserCompositionOps (
HDC hdc,
 13644         CB_COMP_SETPIXEL comp_setpixel,
 13645         CB_COMP_SETHLINE comp_sethline,
 13646         CB_COMP_PUTHLINE comp_puthline,
 13647         void* user_comp_ctxt);
 13651 #ifdef _MGGAL_HI3560 13656 MG_EXPORT 
int hi3560GetVideoFD (
void);
 13657 MG_EXPORT 
void* hi3560GetFBAddress (
void);
 13658 MG_EXPORT 
int hi3560SetScreenAttr (
Uint8 siAttr, 
void* pValue);
 MG_EXPORT void GUIAPI PivotScaledBitmapFlip(HDC hdc, const BITMAP *bmp, fixed x, fixed y, fixed cx, fixed cy, int angle, fixed scale_x, fixed scale_y, BOOL h_flip, BOOL v_flip)
Rotates, stretches or shrinks, flips a bitmap object. 
 
static BOOL PtInRect(const RECT *prc, int x, int y)
Determines whether a point lies within an rectangle. 
 
MG_EXPORT BOOL GUIAPI AddGlyphsToBMPFont(DEVFONT *dev_font, BITMAP *glyph_bmp, const char *start_mchar, int nr_glyphs, int glyph_width)
Add a new segment in device font. 
 
MG_EXPORT BOOL GUIAPI SyncUpdateDC(HDC hdc)
Synchronize the update rectangles of the surface corresponding to hdc to screen. 
 
MG_EXPORT LanguageCode GUIAPI LanguageCodeFromISO639s1(Uint16 iso639_1)
Get MiniGUI language code from an encoded ISO639-1 language code. 
 
MG_EXPORT int GUIAPI GetSysFontHeight(int font_id)
Gets the height of a single-byte character of a system font. 
 
MG_EXPORT void GUIAPI UBidiShape(Uint32 shaping_flags, const BidiLevel *embedding_levels, int len, BidiArabicProp *ar_props, Uchar32 *ucs)
Do bidi-aware shaping. 
 
MG_EXPORT BOOL GUIAPI SetBackgroundColorInTextRuns(TEXTRUNS *truns, int start_index, int length, RGBCOLOR color)
Set background color in a TEXTRUNS object. 
 
static gal_pixel DWORD2Pixel(HDC hdc, DWORD dword)
An inline function to convert DWORD color to gal_pixel. 
 
MG_EXPORT int GUIAPI PaintImageFromFile(HDC hdc, int x, int y, const char *spFileName)
Paints an image from file on device directly. 
 
MG_EXPORT BOOL GUIAPI RealizePalette(HDC hdc)
This function maps palette entries from the current logical palette to the system palette...
 
MG_EXPORT int GUIAPI StretchPaintImageEx(HDC hdc, int x, int y, int w, int h, MG_RWops *area, const char *ext)
Paints an image from data source on device directly. 
 
MG_EXPORT BOOL GUIAPI RestoreDC(HDC hdc, int saved_dc)
Restores a device context (DC) to the specified state. 
 
MG_EXPORT BOOL GUIAPI InitComplexShapingEngine(TEXTRUNS *truns)
Initialize the complex shaping engine for a TEXTRUNS object. 
 
MG_EXPORT BOOL GUIAPI DestroyIcon(HICON hicon)
Destroys an icon object. 
 
MG_EXPORT void GUIAPI LPtoSP(HDC hdc, POINT *pPt)
Converts logical coordinates into screen coordinates. 
 
MG_EXPORT Uchar32 GUIAPI UCharToSingleWidth(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI SetFontNameInTextRuns(TEXTRUNS *truns, int start_index, int length, const char *logfont_name)
Set logfont name of text runs. 
 
MG_EXPORT BOOL GUIAPI IsUCharTitle(Uchar32 uc)
 
MG_EXPORT DEVFONT *GUIAPI LoadDevFontFromIncoreData(const char *devfont_name, const void *data)
Load device font from incore data. 
 
MG_EXPORT void GUIAPI GetDCLCS(HDC hdc, int which, POINT *pt)
Retrieves mapping parameters of a device context. 
 
MG_EXPORT void GUIAPI UnloadMyBitmap(PMYBITMAP my_bmp)
Unloads a bitmap. 
 
MG_EXPORT void GUIAPI UBidiShapeArabic(Uint32 shaping_flags, const BidiLevel *embedding_levels, int len, BidiArabicProp *ar_props, Uchar32 *ucs)
Do Arabic shaping. 
 
MG_EXPORT int GUIAPI GetGlyphsExtent(HDC hdc, Glyph32 *glyphs, int nr_glyphs, SIZE *size)
Get visual extent value of a glyph string. 
 
void(* CB_ONE_SCANLINE)(void *context, MYBITMAP *my_bmp, int y)
The type of scanline loaded callback. 
 
static void GUIAPI Expand16CBitmap(HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, const RGB *pal)
Convert a 16 color MYBITMAP pixel data to a BITMAP pixel data. 
 
MG_EXPORT BOOL GUIAPI IsCovered(const RECT *prc1, const RECT *prc2)
Determines whether one rectangle is covered by another. 
 
int BOOL
A type definition for boolean value. 
 
struct _GLYPHPOS GLYPHPOS
 
MG_EXPORT int GUIAPI MBS2WCSEx(PLOGFONT log_font, void *dest, BOOL wc32, const unsigned char *mstr, int mstr_len, int n, int *conved_mstr_len)
Converts a multibyte string to a wide character string in UC16 according to the charset/encoding of t...
 
MG_EXPORT HDC GUIAPI GetPrivateClientDC(HWND hwnd)
Returns the private client DC of a window. 
 
#define GetAValue(rgba)
Gets the alpha component from a RGBA triple value rgba. 
 
MG_EXPORT int GUIAPI PaintImageFromMem(HDC hdc, int x, int y, const void *mem, int size, const char *ext)
Paints an image from memory on device directly. 
 
MG_EXPORT BOOL GUIAPI DestroyLayout(LAYOUT *layout)
Destroy the specified layout information structure. 
 
#define GetBValue(rgba)
Gets the blue component from a RGBA triple value rgba. 
 
MG_EXPORT const char *GUIAPI CheckBitmapType(MG_RWops *fp)
Checks the type of the bitmap in a data source. 
 
ACHARSHAPETYPE
Achar32 shape type. 
 
MG_EXPORT int GUIAPI UCharCombiningClass(Uchar32 uc)
 
unsigned char BYTE
A type definition for an 8-bit unsigned character (byte). 
 
MG_EXPORT int GUIAPI GetGlyphsExtentFromUChars(LOGFONT *logfont_upright, const Achar32 *uchars, int nr_uchars, const BreakOppo *break_oppos, Uint32 render_flags, int x, int y, int letter_spacing, int word_spacing, int tab_size, int max_extent, SIZE *line_size, Glyph32 *glyphs, GLYPHEXTINFO *glyph_ext_info, GLYPHPOS *glyph_pos, LOGFONT **logfont_sideways)
Get the visual extent info of all glyphs fitting in the specified maximal output extent. 
 
MG_EXPORT int GUIAPI GetRasterOperation(HDC hdc)
Gets the raster operation of a DC. 
 
MG_EXPORT BOOL GUIAPI InitVectorialFonts(void)
Initializes vectorial font renderer. 
 
MG_EXPORT RGBCOLOR GUIAPI GetTextColorInTextRuns(const TEXTRUNS *truns, int index)
 
MG_EXPORT BOOL GUIAPI SetMemDCAlpha(HDC mem_dc, DWORD flags, Uint8 alpha)
Sets the alpha value for the entire surface of a DC, as opposed to using the alpha component of each ...
 
MG_EXPORT void GUIAPI LineGenerator(void *context, int x1, int y1, int x2, int y2, CB_LINE cb)
A line generator based-on Breshenham algorithm. 
 
MG_EXPORT BOOL GUIAPI DoesIntersect(const RECT *psrc1, const RECT *psrc2)
Determines whether two rectangles intersect. 
 
struct _DTFIRSTLINE DTFIRSTLINE
 
MG_EXPORT void GUIAPI Circle(HDC hdc, int sx, int sy, int r)
Draws a circle. 
 
MG_EXPORT void GUIAPI StretchBlt(HDC hsdc, int sx, int sy, int sw, int sh, HDC hddc, int dx, int dy, int dw, int dh, DWORD dwRop)
Copies a bitmap from a source rectangle into a destination rectangle, streches the bitmap if necessar...
 
MG_EXPORT BOOL GUIAPI UnionRect(RECT *pdrc, const RECT *psrc1, const RECT *psrc2)
Unions two source rectangles. 
 
MG_EXPORT void GUIAPI MoveTo(HDC hdc, int x, int y)
Moves the current zero pen position. 
 
MG_EXPORT HDC GUIAPI InitSlaveScreenEx(const char *name, const char *mode, int dpi)
Initializes slave screen. 
 
MG_EXPORT int GUIAPI UStrGetBreaks(LanguageCode lang_code, Uint8 ctr, Uint8 wbr, Uint8 lbp, Uchar32 *ucs, int nr_ucs, BreakOppo **break_oppos)
Calculate the breaking opportunities of a Uchar32 string under the specified rules and line breaking ...
 
struct _ACHARMAPINFO ACHARMAPINFO
Data type of struct _ACHARMAPINFO. 
 
MG_EXPORT void GUIAPI ClipRectIntersect(HDC hdc, const RECT *prc)
Intersects the specified rectangle with the visible region of the DC. 
 
MG_EXPORT BOOL GUIAPI SetClipRgn(PCLIPRGN pRgn, const RECT *pRect)
Sets a region to contain only one rect. 
 
MG_EXPORT BOOL GUIAPI IsUCharWide(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI InitCircleRegion(PCLIPRGN dst, int x, int y, int r)
Initializes a region to be an enclosed circle. 
 
MG_EXPORT HDC GUIAPI CreateSecondaryDC(HWND hwnd)
Creates a secondary window DC of a window. 
 
MG_EXPORT int GUIAPI UCharFullyDecompose(Uchar32 ch, BOOL compat, Uchar32 *result, int result_len)
 
MG_EXPORT void GUIAPI DestroyBMPFont(DEVFONT *dev_font)
Destroy the bitmap device font. 
 
MG_EXPORT BOOL GUIAPI FillBoxWithBitmap(HDC hdc, int x, int y, int w, int h, const BITMAP *bmp)
Fills a box with a BITMAP object. 
 
MG_EXPORT HDC GUIAPI CreatePrivateClientDC(HWND hwnd)
Creates a private client DC of a window. 
 
MG_EXPORT BOOL GUIAPI SetColorfulPalette(HDC hdc)
Sets a DC with colorfule palette. 
 
static void CopyRect(RECT *pdrc, const RECT *psrc)
Copies one rectangle to another. 
 
MG_EXPORT BOOL GUIAPI SaveMainWindowContent(HWND hWnd, const char *filename)
Saves content of a main window to a file. 
 
MG_EXPORT void GUIAPI RotateBitmapVFlip(HDC hdc, const BITMAP *bmp, int lx, int ty, int angle)
Flips vertically and rotates a bitmap object. 
 
MG_EXPORT void GUIAPI SPtoLP(HDC hdc, POINT *pPt)
Converts screen coordinates into logical coordinates. 
 
MG_EXPORT BOOL GUIAPI SetPalette(HDC hdc, int start, int len, GAL_Color *cmap)
Sets palette entries of a DC. 
 
MG_EXPORT Uint32 GUIAPI GetDCAttr(HDC hdc, int attr)
Gets a specified attribute value of a DC. 
 
static gal_pixel GUIAPI GetPixelInBitmap(const BITMAP *bmp, int x, int y)
Returns the pixel value in a BITMAP object. 
 
MG_EXPORT void GUIAPI SetBrushOrigin(HDC hdc, int x, int y)
Set the origin when using tiles or stipples with the DC. 
 
MG_EXPORT Glyph32 GUIAPI GetGlyphValueAlt(LOGFONT *logfont, Achar32 chv)
Get the LOGFONT glyph value of an abstract character. 
 
MG_EXPORT Achar32 GUIAPI GetACharValue(LOGFONT *logfont, const char *mchar, int mchar_len, const char *pre_mchar, int pre_len)
Get the character value of a multi-byte character. 
 
MG_EXPORT BOOL GUIAPI IsEmptyClipRgn(const CLIPRGN *pRgn)
Determines whether a region is an empty region. 
 
MG_EXPORT BOOL GUIAPI DestroyTextRuns(TEXTRUNS *truns)
Destroy the glyph run info object. It also frees all data allocated for shapping and layouting the gl...
 
MG_EXPORT BOOL GUIAPI AddClipRect(PCLIPRGN pRgn, const RECT *pRect)
Unions one rectangle to a region. 
 
MG_EXPORT int GUIAPI GetSysCCharWidth(void)
Gets the width of a multi-byte character of the default system font. 
 
HDC GUIAPI CreatePrivateSubDC(HDC hdc, int off_x, int off_y, int width, int height)
Creates a private SubDC of a window. 
 
MG_EXPORT BOOL GUIAPI IsUCharXDigit(Uchar32 uc)
 
MG_EXPORT void GUIAPI LPtoDP(HDC hdc, POINT *pPt)
Converts logical coordinates into device coordinates. 
 
MG_EXPORT Uchar32 GUIAPI AChar2UChar(LOGFONT *logfont, Achar32 chv)
Get Uchar32 value (Unicode wide character value) from a LOGFONT abstract character value...
 
CLIPRGN * PCLIPRGN
Data type of the pointer to a CLIPRGN. 
 
MG_EXPORT void GUIAPI FillArcEx(HDC hdc, int x, int y, int width, int height, int ang1, int ang2)
Fills an arc with the current brush in a DC. 
 
MG_EXPORT Achar32 *GUIAPI BIDILogAChars2VisAChars(LOGFONT *log_font, Achar32 *achars, int nr_achars, ACHARMAPINFO *achars_map)
Reorder the specified logical glyph string in visual order and reorder glyph map if specified...
 
MG_EXPORT BOOL GUIAPI IsUCharSpace(Uchar32 uc)
 
MG_EXPORT HWND GUIAPI WindowFromDC(HDC hdc)
Get the window handle from DC. 
 
MG_EXPORT int GUIAPI StretchPaintImageFromMem(HDC hdc, int x, int y, int w, int h, const void *mem, int size, const char *ext)
Paints an image from memory on device directly. 
 
int(* ON_UPDATE_SECONDARYDC)(HWND hwnd, HDC secondary_dc, HDC real_dc, const RECT *secondary_rc, const RECT *real_rc, const RECT *main_update_rc)
The callback type of on updating secondary DC. 
 
MG_EXPORT void GUIAPI CompileRGBABitmapEx(HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, void *pixel_format, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT *mybmp, BYTE *alpha_mask)
Compile a MYBITMAP pixel data to a BITMAP pixel data. 
 
struct _GLYPHBITMAP GLYPHBITMAP
 
MG_EXPORT TEXTRUNS *GUIAPI CreateTextRuns(const Uchar32 *ucs, int nr_ucs, LanguageCode lang_code, ParagraphDir base_dir, const char *logfont_name, RGBCOLOR color, RGBCOLOR bg_color, BreakOppo *break_oppos)
Split a Uchar32 paragraph string in mixed scripts into text runs. 
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontEx(const char *type, const char *family, const char *charset, char weight, char slant, char flip, char other, char decoration, char rendering, int size, int rotation)
Creates a logical font. 
 
MG_EXPORT BOOL GUIAPI ConvertMemDC(HDC mem_dc, HDC ref_dc, DWORD flags)
Converts a memory DC to have a same format as a reference DC. 
 
MG_EXPORT void GUIAPI DeleteBitmapAlphaPixel(PBITMAP bmp)
Deletes the bitmap alpha pixel format information of a BITMAP object. 
 
MG_EXPORT Uchar32 GUIAPI UCharToFullWidth(Uchar32 uc)
 
MG_EXPORT ScriptType GUIAPI NormalizeScriptType(LanguageCode cl, ScriptType ws)
 
MG_EXPORT int GUIAPI GetPaletteEntries(HPALETTE hpal, int start, int len, GAL_Color *cmap)
Gets palette entries of a logical palette. 
 
#define MAKEWORD16(low, high)
Makes a 16-bit word from low byte and high byte. 
 
MG_EXPORT HPALETTE GUIAPI CreatePalette(GAL_Palette *pal)
Creates a logical palette. 
 
MG_EXPORT int GUIAPI SetPaletteEntries(HPALETTE hpal, int start, int len, GAL_Color *cmap)
Sets palette entries of a logical palette. 
 
MG_EXPORT BOOL GUIAPI RectInRegion(PCLIPRGN region, const RECT *rect)
Determines whether a rectangle is intersected with a region. 
 
MG_EXPORT HDC GUIAPI GetSecondaryDC(HWND hwnd)
Retrives and returns the secondary DC of a specific window. 
 
MG_EXPORT Uchar32 GUIAPI UCharToSmallKana(Uchar32 uc)
 
MG_EXPORT void * BlockDataAlloc(PBLOCKHEAP heap)
Allocates a data block from private heap. 
 
struct _BLOCKHEAP BLOCKHEAP
 
MG_EXPORT int GUIAPI LoadMyBitmapEx(PMYBITMAP my_bmp, RGB *pal, MG_RWops *area, const char *ext)
Loads a MYBITMAP object from a data source. 
 
MG_EXPORT gal_pixel GUIAPI SetPixelRGBA(HDC hdc, int x, int y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Sets the pixel by a RGBA quarter at the specified position on a DC. 
 
MG_EXPORT UINT GUIAPI GetNearestPaletteIndex(HPALETTE hpal, Uint8 red, Uint8 green, Uint8 blue)
Gets the nearest palette index in the logical palette for a spefici color. 
 
MG_EXPORT ScriptType GUIAPI UCharGetScriptType(Uchar32 ch)
 
MG_EXPORT int GUIAPI DrawGlyph(HDC hdc, int x, int y, Glyph32 glyph_value, int *adv_x, int *adv_y)
Draw a glyph. 
 
MG_EXPORT int GUIAPI OffsetClipRegion(HDC hdc, int nXOffset, int nYOffset)
Moves the clipping region of a device context by the specified offsets. 
 
MG_EXPORT int GUIAPI GetNextUChar(LOGFONT *logfont, const char *mchar, int mchar_len, Uchar32 *uc)
Get the Uchar32 value (Unicode code point) of a multi-byte character in specified LOGFONT object...
 
MG_EXPORT int GUIAPI SubtractRect(RECT *rc, const RECT *psrc1, const RECT *psrc2)
Obtains the rectangles when substracting one rectangle from another. 
 
MG_EXPORT BOOL GUIAPI RoundRect(HDC hdc, int x0, int y0, int x1, int y1, int cw, int ch)
Draw and fill a rectangle with rounded corners in a DC. 
 
Uint32 gal_pixel
Data type of pixel value. 
 
MG_EXPORT int GUIAPI TextOutOmitted(HDC hdc, int x, int y, const char *mtext, int len, int max_extent)
Outputs a string of text with omitted format. 
 
MG_EXPORT BOOL GUIAPI IsCompatibleDC(HDC hdc1, HDC hdc2)
Check whether a given DC is compliant to a specific DC. 
 
static void SetRect(RECT *prc, int left, int top, int right, int bottom)
Sets a rectangle. 
 
MG_EXPORT void GUIAPI CircleArcGenerator(void *context, int sx, int sy, int r, int ang1, int ang2, CB_ARC cb)
An arc generator. 
 
MG_EXPORT int GUIAPI SetRasterOperation(HDC hdc, int rop)
Sets the raster operation of a DC to a new value. 
 
MG_EXPORT void InitBlockDataHeap(PBLOCKHEAP heap, size_t bd_size, size_t heap_size)
Initializes a private block data heap. 
 
MG_EXPORT void GUIAPI ExpandMonoBitmap(HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, Uint32 bg, Uint32 fg)
Convert a mono color MYBITMAP pixel data to a BITMAP pixel data. 
 
MG_EXPORT void GUIAPI GetBoundRect(PRECT pdrc, const RECT *psrc1, const RECT *psrc2)
Gets the bound rectangle of two source rectangles. 
 
MG_EXPORT int GUIAPI GetTextWordInfo(PLOGFONT log_font, const char *mstr, int len, int *pos_words, WORDINFO *info_words)
Retrieves information of multi-byte words in a string. 
 
MG_EXPORT int GUIAPI GetTextMCharInfo(PLOGFONT log_font, const char *mstr, int len, int *pos_chars)
Retrieves positions of multi-byte characters in a string. 
 
MG_EXPORT void GUIAPI FillBox(HDC hdc, int x, int y, int w, int h)
Fills a rectangle box. 
 
MG_EXPORT HDC GUIAPI CreateMemDCFromBitmap(HDC hdc, const BITMAP *bmp)
Creates a memory DC from a reference DC and a BITMAP object. 
 
MG_EXPORT void GUIAPI GetFontMetrics(LOGFONT *log_font, FONTMETRICS *font_metrics)
Gets metrics information of a logical font. 
 
MG_EXPORT void GUIAPI UCharCanonicalOrdering(Uchar32 *string, int len)
 
MG_EXPORT BOOL GUIAPI IntersectClipRect(PCLIPRGN pRgn, const RECT *pRect)
Intersects a rectangle with a region. 
 
MG_EXPORT void GUIAPI Rectangle(HDC hdc, int x0, int y0, int x1, int y1)
Draws a rectangle. 
 
MG_EXPORT int GUIAPI SaveDC(HDC hdc)
Saves the current state of a device context. 
 
unsigned short Uint16
A type definition for a 16-bit unsigned integer. 
 
MG_EXPORT BOOL GUIAPI LineClipper(const RECT *cliprc, int *_x0, int *_y0, int *_x1, int *_y1)
The line clipper using Cohen-Sutherland algorithm. 
 
MG_EXPORT BOOL GUIAPI IsUCharWideCJK(Uchar32 uc)
 
MG_EXPORT int GUIAPI StretchPaintImageFromFile(HDC hdc, int x, int y, int w, int h, const char *spFileName)
Paints an image from file on device directly. 
 
MG_EXPORT BOOL GUIAPI UCharDecompose(Uchar32 ch, Uchar32 *a, Uchar32 *b)
 
static DWORD Pixel2DWORD(HDC hdc, gal_pixel pixel)
An inline function to convert pixel value to DWORD color. 
 
MG_EXPORT void GUIAPI SelectClipRect(HDC hdc, const RECT *prc)
Sets the visible region of a DC to be a rectangle. 
 
MG_EXPORT Uchar32 UCharToUpper(Uchar32 uc)
 
DWORD32 RGBCOLOR
A type definition for a RGB color. 
 
MG_EXPORT int GUIAPI GetMaxFontWidth(HDC hdc)
Retrieves the maximal character width of the current logical font in a DC. 
 
MG_EXPORT int GUIAPI LoadBitmapEx(HDC hdc, PBITMAP pBitmap, MG_RWops *area, const char *ext)
Loads a device-dependent bitmap from a general data source. 
 
signed char Sint8
A type definition for an 8-bit signed character. 
 
MG_EXPORT int GUIAPI GetFontHeight(HDC hdc)
Retrieves the height of the current logical font in a DC. 
 
MG_EXPORT const char *GUIAPI GetSysCharset(BOOL wchar)
Gets the current system charset. 
 
struct _GLYPHINFO GLYPHINFO
Data type of struct _GLYPHINFO. 
 
void(* CB_ARC)(void *context, int x, int y)
The type of arc generator callback. 
 
static void GUIAPI Expand256CBitmap(HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, const RGB *pal, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT *mybmp)
Convert a 256 color MYBITMAP pixel data to a BITMAP pixel data. 
 
MG_EXPORT void GUIAPI RotateScaledBitmapHFlip(HDC hdc, const BITMAP *bmp, int lx, int ty, int angle, int w, int h)
Flip horizontaly, rotates, stretch or shrinks a bitmap object. 
 
BOOL(* CB_GLYPH_LAID_OUT)(GHANDLE ctxt, Glyph32 glyph_value, const GLYPHPOS *glyph_pos, const RENDERDATA *render_data)
The prototype of callback function for LayoutNextLine. 
 
MG_EXPORT UVerticalOrient GUIAPI UCharGetVerticalOrientation(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI UCharIsArabicVowel(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI UnionRegion(PCLIPRGN dst, const CLIPRGN *src1, const CLIPRGN *src2)
Unions two regions. 
 
void(* CB_ELLIPSE)(void *context, int x1, int x2, int y)
The type of ellipse generator callback. 
 
MG_EXPORT int GUIAPI WC2MBEx(PLOGFONT log_font, unsigned char *s, Uchar32 wc)
Converts a wide character in UCS to a multibyte character according to the charset/encoding of the lo...
 
MG_EXPORT BOOL GUIAPI ClipRgnIntersect(PCLIPRGN pRstRgn, const CLIPRGN *pRgn1, const CLIPRGN *pRgn2)
Intersects two region. 
 
MG_EXPORT BOOL GUIAPI GetIconSize(HICON hicon, int *w, int *h)
Gets the size of an icon object. 
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontForMChar2UChar(const char *charset)
Create a logical font for conversion from multi-byte character string to Uchar32 string. 
 
MG_EXPORT int GUIAPI GetGlyphsExtentPoint(HDC hdc, Glyph32 *glyphs, int nr_glyphs, int max_extent, SIZE *size)
Get the visual extent value of an glyph string. 
 
MG_EXPORT int GUIAPI PaintImageEx(HDC hdc, int x, int y, MG_RWops *area, const char *ext)
Paints an image from data source on device directly. 
 
MG_EXPORT BidiLevel GUIAPI UBidiReorderLine(Uint32 bidi_flags, const BidiType *bidi_types, int len, int off, ParagraphDir paragraph_dir, BidiLevel *embedding_levels, Uchar32 *visual_str, int *indices_map, void *extra, CB_REVERSE_ARRAY cb_reverse_extra)
Reorder a line of logical string to visual string. 
 
MG_EXPORT void GUIAPI DestroyDynamicDevFont(DEVFONT **devfont)
Destroy device font loaded dynamically from font file. 
 
MG_EXPORT BOOL GUIAPI FillBoxWithBitmapPart(HDC hdc, int x, int y, int w, int h, int bw, int bh, const BITMAP *bmp, int xo, int yo)
Fills a box with a part of a bitmap oject. 
 
MG_EXPORT BidiType GUIAPI UCharGetBidiType(Uchar32 uc)
Get bidi type of a Unicode character. 
 
MG_EXPORT void BlockDataFree(PBLOCKHEAP heap, void *data)
Frees an allocated data block. 
 
MG_EXPORT void GUIAPI RotateScaledBitmap(HDC hdc, const BITMAP *bmp, int lx, int ty, int angle, int w, int h)
Stretches or shrinks a bitmap object at the same as rotating it. 
 
MG_EXPORT BOOL GUIAPI IsUCharAlnum(Uchar32 uc)
 
MG_EXPORT LAYOUTLINE *GUIAPI LayoutNextLine(LAYOUT *layout, LAYOUTLINE *prev_line, int max_extent, BOOL last_line, CB_GLYPH_LAID_OUT cb_laid_out, GHANDLE ctxt)
Layout the next line of a paragraph according to the layout information. 
 
MG_EXPORT void GUIAPI GetLogFontInfo(HDC hdc, LOGFONT *log_font)
Gets logical font information of a DC. 
 
MG_EXPORT void GUIAPI ReleaseSecondaryDC(HWND hwnd, HDC hdc)
Release the DC returned by GetSecondaryDC or GetSecondaryClientDC. 
 
MG_EXPORT BOOL GUIAPI IsUCharDigit(Uchar32 uc)
 
MG_EXPORT int GUIAPI DrawTextEx2(HDC hdc, const char *pText, int nCount, RECT *pRect, int nIndent, UINT nFormat, DTFIRSTLINE *firstline)
Draws a formatted text in a rectangle. 
 
MG_EXPORT BidiType GUIAPI UBidiGetParagraphDir(const BidiType *bidi_types, int len)
Get the base paragraph direction. 
 
GHANDLE HDC
Handle to device context. 
 
MG_EXPORT BOOL GUIAPI GetMirrorAChar(LOGFONT *logfont, Achar32 chv, Achar32 *mirrored)
Get the mirrored abstract character if possible. 
 
MG_EXPORT BOOL GUIAPI FillBitmapPartInBox(HDC hdc, int box_x, int box_y, int box_w, int box_h, const BITMAP *pbmp, int bmp_x, int bmp_y, int bmp_w, int bmp_h)
Fills a part of bitmap into a box, and the parts bitmap will be scaled if needed. ...
 
MG_EXPORT int GUIAPI GetACharsExtentPoint(HDC hdc, Achar32 *achars, int nr_achars, int max_extent, SIZE *size)
Get the visual extent value of an achar string. 
 
MG_EXPORT Uint32 GUIAPI GetACharType(LOGFONT *logfont, Achar32 chv)
Retrieve the basic type, the general cateory of Unicode, and the break class of Unicode of an abstrac...
 
MG_EXPORT void GUIAPI SelectClipRegion(HDC hdc, const CLIPRGN *pRgn)
Sets the visible region of a DC to be a region. 
 
struct _LAYOUTLINE LAYOUTLINE
 
MG_EXPORT void GUIAPI FocusRect(HDC hdc, int x0, int y0, int x1, int y1)
Draws a focus rectangle. 
 
MG_EXPORT Achar32 GUIAPI GetShapedAChar(LOGFONT *logfont, const char *mchar, int mchar_len, ACHARSHAPETYPE shape_type)
Get the glyph shape of a character. 
 
MG_EXPORT UCharBreakType GUIAPI UCharGetBreakType(Uchar32 uc)
Get the break property of a Unicode character. 
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontIndirect(LOGFONT *logfont)
Creates a logical font indirectly from a LOGFONT structure. 
 
MG_EXPORT BOOL GUIAPI SaveScreenRectContent(const RECT *rcWin, const char *filename)
Saves content of a rectangle in the screen to a file. 
 
struct _TEXTRUNS TEXTRUNS
 
MG_EXPORT DEVFONT *GUIAPI CreateBMPDevFont(const char *bmpfont_name, const BITMAP *glyph_bmp, const char *start_mchar, int nr_glyphs, int glyph_width)
Create a bitmap device font. 
 
MG_EXPORT void GUIAPI SetPenDashes(HDC hdc, int dash_offset, const unsigned char *dash_list, int n)
Sets the way dashed-lines are drawn. 
 
MG_EXPORT int GUIAPI GetGlyphInfo(LOGFONT *logfont, Glyph32 glyph_value, GLYPHINFO *glyph_info)
Retrieve the information of a glyph. 
 
MG_EXPORT BOOL GUIAPI GetBitmapFromDC(HDC hdc, int x, int y, int w, int h, BITMAP *bmp)
Gets image box on a DC and saves it into a BITMAP object. 
 
MG_EXPORT int GUIAPI BIDIGetTextVisualAChars(LOGFONT *log_font, const char *text, int text_len, Achar32 **achars, ACHARMAPINFO **achars_map)
Get visual achars and glyph_map info relative with logical string byte index. 
 
MG_EXPORT void GUIAPI LineEx(HDC hdc, int x1, int y1, int x2, int y2)
Draws a line with the current pen in the DC hdc. 
 
MG_EXPORT void GUIAPI UStrGetBracketTypes(const Uchar32 *ucs, const BidiType *bidi_types, int len_ucs, BidiBracketType *bracket_types)
Get bracketed characters of a Uchar32 string. 
 
MG_EXPORT int GUIAPI LoadMyBitmapSL(MG_RWops *area, void *load_info, MYBITMAP *my_bmp, CB_ONE_SCANLINE cb, void *context)
Loads MYBITMAP scanlines from a data source one by one. 
 
MG_EXPORT DEVFONT *GUIAPI LoadDevFontFromFile(const char *devfont_name, const char *file_name)
Load device font from font file. 
 
static HDC InitSlaveScreen(const char *name, const char *mode)
Initializes slave screen. 
 
MG_EXPORT void GUIAPI DPtoLP(HDC hdc, POINT *pPt)
Converts device coordinates into logical coordinates. 
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFont(const char *type, const char *family, const char *charset, char weight, char slant, char flip, char other, char underline, char struckout, int size, int rotation)
Creates a logical font. 
 
void(* CB_CIRCLE)(void *context, int x1, int x2, int y)
The type of circle generator callback. 
 
MG_EXPORT BOOL GUIAPI PolygonIsMonotoneVertical(const POINT *pts, int vertices)
Checks a polygon is monotone vertical or not. 
 
MG_EXPORT void GUIAPI DeleteSecondaryDC(HWND hwnd)
Deletes the secondary DC of the window. 
 
MG_EXPORT int GUIAPI TabbedTextOutLen(HDC hdc, int x, int y, const char *spText, int len)
Outputs a formatted text. 
 
MG_EXPORT void GUIAPI EmptyClipRgn(PCLIPRGN pRgn)
Empties a clipping region. 
 
#define TRUE
TRUE value, defined as 1 by MiniGUI. 
 
MG_EXPORT BOOL GUIAPI IsUCharGraph(Uchar32 uc)
 
MG_EXPORT void GUIAPI SetBrushInfo(HDC hdc, const BITMAP *tile, const STIPPLE *stipple)
Set the tile or stipple with the DC. 
 
MG_EXPORT BOOL GUIAPI mlsEnableSlaveScreen(HDC dc_mls, BOOL enable)
Enable or Disable a MLShadow slave screen. 
 
MG_EXPORT void GUIAPI UBidiJoinArabic(const BidiType *bidi_types, const BidiLevel *embedding_levels, int len, BidiArabicProp *ar_props)
Do Arabic joining. 
 
MG_EXPORT BidiType GUIAPI GetACharBidiType(LOGFONT *log_font, Achar32 chv)
Retrieve the BIDI type of an abstract character. 
 
MG_EXPORT void GUIAPI CircleGenerator(void *context, int sx, int sy, int r, CB_CIRCLE cb)
A circle generator. 
 
const unsigned char * bits
 
MG_EXPORT void GUIAPI GetLastTextOutPos(HDC hdc, POINT *pt)
Retrieves the last text output position. 
 
MG_EXPORT BOOL GUIAPI ResizePalette(HPALETTE hpal, int len)
Resizes a logical palette. 
 
static void Pixel2RGBA(HDC hdc, gal_pixel pixel, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
Gets the color in RGBA quarter from a pixel value under a DC. 
 
MG_EXPORT void GUIAPI DestroyClipRgn(PCLIPRGN pRgn)
Empties and destroys a clipping region. 
 
MG_EXPORT void GUIAPI BIDIGetTextRangesLog2Vis(LOGFONT *log_font, const char *text, int text_len, int start_index, int end_index, int **ranges, int *nr_ranges)
Get a list of visual ranges corresponding to a given logical range. 
 
Uint8 gal_uint8
Data type of 8-bit unsigned integer. 
 
MG_EXPORT int GUIAPI GetFirstMCharLen(PLOGFONT log_font, const char *mstr, int len)
Retrieves the length of the first multi-byte character in a string. 
 
GHANDLE HWND
Handle to main window or control. 
 
static void SetRectEmpty(RECT *prc)
Empties a rectangle. 
 
MG_EXPORT gal_pixel GUIAPI SetPixelRGB(HDC hdc, int x, int y, Uint8 r, Uint8 g, Uint8 b)
Sets the pixel by a RGB triple at the specified position on a DC. 
 
MG_EXPORT void GUIAPI ReplaceBitmapColor(HDC hdc, PBITMAP pBitmap, gal_pixel iOColor, gal_pixel iNColor)
Replaces a specific pixels in a bitmap with another pixel. 
 
MG_EXPORT BOOL GUIAPI ClipRgnCopy(PCLIPRGN pDstRgn, const CLIPRGN *pSrcRgn)
Copies one region to another. 
 
MG_EXPORT void GUIAPI GetClipRgnBoundRect(PCLIPRGN pRgn, PRECT pRect)
Gets the bounding rectangle of a region. 
 
MG_EXPORT int GUIAPI GetACharsExtent(HDC hdc, Achar32 *achars, int nr_achars, SIZE *size)
Get visual extent value of an achar string. 
 
MG_EXPORT const DEVFONT *GUIAPI GetNextDevFont(const DEVFONT *dev_font)
Get next devfont information. 
 
MG_EXPORT BOOL GUIAPI SelectPalette(HDC hdc, HPALETTE hpal, BOOL reserved)
Selects a palette for a DC. 
 
MG_EXPORT void GUIAPI OffsetRegionEx(PCLIPRGN region, const RECT *rcClient, const RECT *rcScroll, int x, int y)
Offsets the region in the specified window's scroll area. 
 
MG_EXPORT LanguageCode GUIAPI GetSampleLanguageForScript(ScriptType st)
 
static LanguageCode GUIAPI LanguageCodeFromISO639s1Code(const char *iso639_1)
Get MiniGUI language code from an ISO639-1 language code string. 
 
MG_EXPORT int GUIAPI GetSysCharHeight(void)
Gets the height of a character of the default system font. 
 
MG_EXPORT BOOL GUIAPI FloodFillGenerator(void *context, const RECT *src_rc, int x, int y, CB_EQUAL_PIXEL cb_equal_pixel, CB_FLOOD_FILL cb_flood_fill)
A flood filling generator. 
 
MG_EXPORT BOOL GUIAPI InitPolygonRegion(PCLIPRGN dst, const POINT *pts, int vertices)
Initializes a region to be an enclosed polygon. 
 
MG_EXPORT void GUIAPI RGB2Pixels(HDC hdc, const RGB *rgbs, gal_pixel *pixels, int count)
Gets the pixel values from a color array in RGB triple under a DC. 
 
MG_EXPORT int GUIAPI GetTabbedTextExtent(HDC hdc, const char *spText, int len, SIZE *pSize)
Computes the output extent of a formatted text. 
 
void(* CB_DIRECT_DRAW_RECT)(HDC hdc, Uint8 *pixels, int pitch, int bytesPerPixel, const RECT *rc, void *context)
Type of directly access pixels hook function. 
 
static ScriptType GUIAPI ScriptTypeFromISO15924Code(const char *iso15924)
 
MG_EXPORT void GUIAPI GetGlyphBitmap(LOGFONT *log_font, const char *mchar, int mchar_len, GLYPHBITMAP *glyph_bitmap)
Gets the glyph bitmap information when uses a logical font to output a multi-byte character...
 
MG_EXPORT gal_pixel GUIAPI GetPixelInBitmapEx(const BITMAP *bmp, int x, int y, Uint8 *alpha)
Returns the pixel value in a BITMAP object. 
 
MG_EXPORT int GUIAPI GetTabbedTextExtentPoint(HDC hdc, const char *text, int len, int max_extent, int *fit_chars, int *pos_chars, int *dx_chars, SIZE *size)
Computes the extent of a string when output the formatted string in a limited space. 
 
MG_EXPORT void GUIAPI PivotBitmap(HDC hdc, const BITMAP *bmp, int lx, int ty, int cx, int cy, int angle)
Pivot a bitmap object. 
 
MG_EXPORT void GUIAPI ReleaseDC(HDC hdc)
Releases a DC from DC pool. 
 
void(* CB_LINE)(void *context, int stepx, int stepy)
The type of line generator callback. 
 
#define MakeRGBA(r, g, b, a)
Makes a RGBA triple value from red r, green g, blue b and alpha components. 
 
struct _FONTMETRICS FONTMETRICS
 
BOOL(* CB_EQUAL_PIXEL)(void *context, int x, int y)
Flodd filling generator's equation callback. 
 
MG_EXPORT BOOL GUIAPI IntersectRect(RECT *pdrc, const RECT *psrc1, const RECT *psrc2)
Calculates the intersection of two rectangles. 
 
MG_EXPORT void GUIAPI LineTo(HDC hdc, int x, int y)
Draws a zero line to a position. 
 
MG_EXPORT BOOL GUIAPI InitBitmapPixelFormat(HDC hdc, PBITMAP bmp)
Initializes the bitmap pixel format information of a BITMAP object. 
 
MG_EXPORT const char *GUIAPI LanguageCodeToISO639s1(LanguageCode lc)
 
MG_EXPORT void GUIAPI EllipseGenerator(void *context, int sx, int sy, int rx, int ry, CB_ELLIPSE cb)
An ellipse generator. 
 
static void OffsetRect(RECT *prc, int x, int y)
Moves a rectangle by offsets. 
 
MG_EXPORT void GUIAPI PolyLineTo(HDC hdc, const POINT *pts, int vertices)
Draws a polyline. 
 
MG_EXPORT int GUIAPI LoadBitmapFromMem(HDC hdc, PBITMAP pBitmap, const void *mem, int size, const char *ext)
Loads a device-dependent bitmap from memory. 
 
MG_EXPORT gal_pixel SysPixelIndex[]
The pre-defined system pixel values. 
 
MG_EXPORT void GUIAPI InitClipRgn(PCLIPRGN pRgn, PBLOCKHEAP pFreeList)
Initializes a clipping region. 
 
MG_EXPORT BOOL GUIAPI SubtractRegion(CLIPRGN *rgnD, const CLIPRGN *rgnM, const CLIPRGN *rgnS)
Substrcts a region from another. 
 
MG_EXPORT int GUIAPI LoadMyBitmapFromFile(PMYBITMAP my_bmp, RGB *pal, const char *file_name)
Loads a MYBITMAP object from a file. 
 
MG_EXPORT void GUIAPI Ellipse(HDC hdc, int sx, int sy, int rx, int ry)
Draws a ellipse. 
 
MG_EXPORT Uchar32 GUIAPI UCharToTitle(Uchar32 uc)
 
MG_EXPORT void GUIAPI UBidiShapeMirroring(const BidiLevel *embedding_levels, int len, Uchar32 *ucs)
Do mirroring shaping. 
 
MG_EXPORT void GUIAPI RGBA2Pixels(HDC hdc, const RGB *rgbs, gal_pixel *pixels, int count)
Gets the pixel values from a color array in RGBA quarter under a DC. 
 
MG_EXPORT int GUIAPI AChars2UChars(LOGFONT *logfont, const Achar32 *chs, Uchar32 *ucs, int n)
Convert an Achar32 array to Unicode character array. 
 
MG_EXPORT BidiJoiningType GUIAPI UCharGetJoiningType(Uchar32 uc)
Get character joining type. 
 
MG_EXPORT gal_pixel GUIAPI GetPixel(HDC hdc, int x, int y)
Gets the pixel value at the specified position on a DC. 
 
MG_EXPORT BOOL GUIAPI IsUCharControl(Uchar32 uc)
 
#define NULL
A value indicates null pointer. 
 
MG_EXPORT void GUIAPI UnlockDC(HDC hdc)
Unlocks a locked DC. 
 
MG_EXPORT int GUIAPI GetPalette(HDC hdc, int start, int len, GAL_Color *cmap)
Gets palette entries of a DC. 
 
PVOID GHANDLE
General handle. 
 
MG_EXPORT HDC GUIAPI CreateMemDCFromMyBitmap(const MYBITMAP *my_bmp, const RGB *pal)
Creates a memory DC from a device independent MYBITMAP object. 
 
MG_EXPORT BOOL GUIAPI InitBitmap(HDC hdc, Uint32 w, Uint32 h, Uint32 pitch, BYTE *bits, PBITMAP bmp)
Initializes a BITMAP object as a normal bitmap. 
 
void(* CB_FLOOD_FILL)(void *context, int x1, int x2, int y)
Flodd filling generator's scan line callback. 
 
MG_EXPORT HDC GUIAPI GetClientDC(HWND hwnd)
Gets a client DC of a window. 
 
MG_EXPORT BOOL GUIAPI MonotoneVerticalPolygonGenerator(void *context, const POINT *pts, int vertices, CB_POLYGON cb)
A monotone vertical polygon generator. 
 
MG_EXPORT int GUIAPI CalcLayoutBoundingRect(LAYOUT *layout, int max_line_extent, int max_height, int line_height, int x, int y, RECT *bounding)
Calculate the bounding rectangle of a layout. 
 
#define GetRValue(rgba)
Gets the red component from a RGBA triple value rgba. 
 
MG_EXPORT void GUIAPI FillCircle(HDC hdc, int sx, int sy, int r)
Fills a circle. 
 
#define GetGValue(rgba)
Gets the green component from a RGBA triple value rgba. 
 
MG_EXPORT void GUIAPI RotateBitmapHFlip(HDC hdc, const BITMAP *bmp, int lx, int ty, int angle)
Flips horizontally and rotates a bitmap object. 
 
MG_EXPORT int GUIAPI GetClipRegion(HDC hdc, CLIPRGN *cliprgn)
Gets the current clipping region of a DC. 
 
MG_EXPORT int GUIAPI BIDIGetTextLogicalAChars(LOGFONT *log_font, const char *text, int text_len, Achar32 **achars, ACHARMAPINFO **achars_map)
Get logical achars string of the text. 
 
MG_EXPORT BOOL GUIAPI IsUCharPrint(Uchar32 uc)
 
MG_EXPORT int GUIAPI GetUCharsUntilParagraphBoundary(LOGFONT *logfont, const char *mstr, int mstr_len, Uint8 wsr, Uchar32 **uchars, int *nr_uchars)
Convert a multi-byte character string to a Unicode character (Uchar32) string until the end of text (...
 
unsigned char Uint8
A type definition for an 8-bit unsigned character. 
 
static gal_pixel RGB2Pixel(HDC hdc, Uint8 r, Uint8 g, Uint8 b)
Gets the pixel value from a color in RGB triple under a DC. 
 
MG_EXPORT BOOL GUIAPI XorRegion(CLIPRGN *dst, const CLIPRGN *src1, const CLIPRGN *src2)
Does the XOR operation between two regions. 
 
GHANDLE HPALETTE
Handle to a logical palette. 
 
MG_EXPORT void GUIAPI PolyLineEx(HDC hdc, const POINT *pts, int nr_pts)
Draws a polyline with the current pen in a DC. 
 
static gal_pixel RGBA2Pixel(HDC hdc, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Gets the pixel value from a color in RGBA quarter under a DC. 
 
MG_EXPORT void GUIAPI FillEllipse(HDC hdc, int sx, int sy, int rx, int ry)
Fills an ellipse. 
 
MG_EXPORT void GUIAPI BitBlt(HDC hsdc, int sx, int sy, int sw, int sh, HDC hddc, int dx, int dy, DWORD dwRop)
Performs a bit-block transfer from a device context into another device context. 
 
MG_EXPORT HDC GUIAPI CreateCompatibleDCEx(HDC hdc, int width, int height)
Creates a memory DC which is compatible with the specified reference DC. 
 
MG_EXPORT BOOL GUIAPI IsUCharUppercase(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI PolygonGeneratorEx(void *context, const POINT *pts, int vertices, CB_POLYGON cb, RECT *rc_output)
A general polygon generator. 
 
MG_EXPORT int GUIAPI GetTextExtentPoint(HDC hdc, const char *text, int len, int max_extent, int *fit_chars, int *pos_chars, int *dx_chars, SIZE *size)
Computes the extent of a string when output the string in a limited space. 
 
MG_EXPORT unsigned int GUIAPI GetGDCapability(HDC hdc, int iItem)
Returns a capability of a DC. 
 
MG_EXPORT BOOL GUIAPI SetTextColorInTextRuns(TEXTRUNS *truns, int start_index, int length, RGBCOLOR color)
Set text color in a TEXTRUNS object. 
 
MG_EXPORT void GUIAPI DestroyPalette(HPALETTE hpal)
Destroy a logical palette. 
 
MG_EXPORT int GUIAPI GetClipBox(HDC hdc, RECT *clipbox)
Retrieves the bounding rectangle of the current clipping region of a DC. 
 
MG_EXPORT void GUIAPI DrawIcon(HDC hdc, int x, int y, int w, int h, HICON hicon)
Draws an icon into a box. 
 
MG_EXPORT BOOL GUIAPI IsUCharPunct(Uchar32 uc)
 
MG_EXPORT int GUIAPI SelectClipRegionEx(HDC hdc, const CLIPRGN *pRgn, int fnMode)
Combines the specified region with the current clipping region using the specified mode...
 
MG_EXPORT HDC GUIAPI CreateMemDCEx(int width, int height, int depth, DWORD flags, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask, void *bits, int pitch)
Creates a memory DC. 
 
const MG_EXPORT RGB SysPixelColor[]
The pre-defined system RGB colors. 
 
MG_EXPORT BOOL GUIAPI GetLayoutLineSize(const LAYOUTLINE *line, SIZE *line_size)
Get the size of a layout line. 
 
MG_EXPORT void GUIAPI HFlipBitmap(BITMAP *bmp, unsigned char *inter_buff)
Horizontal Flip the special Bitmap object. 
 
MG_EXPORT void GUIAPI Pixel2RGBAs(HDC hdc, const gal_pixel *pixels, RGB *rgbs, int count)
Gets the colors in RGBA quarter from a array of pixel values under a DC. 
 
MG_EXPORT PCLIPRGN GUIAPI CreateClipRgn(void)
Creates a clipping region. 
 
MG_EXPORT UCharGeneralCategory GUIAPI UCharGetCategory(Uchar32 uc)
Get the general category of a Unicode character. 
 
MG_EXPORT void GUIAPI SetDCLCS(HDC hdc, int which, const POINT *pt)
Sets mapping parameters of a device context. 
 
MG_EXPORT LAYOUT *GUIAPI CreateLayout(const TEXTRUNS *truns, Uint32 render_flags, const BreakOppo *break_oppos, BOOL persist_lines, int max_line_extent, int indent, int letter_spacing, int word_spacing, int tab_size, int *tabs, int nr_tabs)
Create layout information structure for laying out a paragraph. 
 
static void InflateRectToPt(RECT *prc, int x, int y)
Inflates a rectangle to contain a point. 
 
MG_EXPORT void GUIAPI OffsetRegion(PCLIPRGN region, int x, int y)
Offsets the region. 
 
MG_EXPORT void GUIAPI RotateBitmap(HDC hdc, const BITMAP *bmp, int lx, int ty, int angle)
Rotate a bitmap object. 
 
#define MAKEDWORD32(first, second, third, fourth)
Makes a WORD32 value with four bytes. 
 
MG_EXPORT void GUIAPI SetPixel(HDC hdc, int x, int y, gal_pixel pixel)
Sets the pixel with a new pixel value at the specified position on a DC. 
 
MG_EXPORT void GUIAPI GetBoundsRect(HDC hdc, RECT *pRect)
Retrieves the bounding rectangle of the current visible region of a DC. 
 
MG_EXPORT BOOL GUIAPI LockDCEx(HDC hdc, const PCLIPRGN region, void *context, CB_DIRECT_DRAW_RECT cb)
directly access the pixels in a DC. 
 
MG_EXPORT int GUIAPI TabbedTextOutEx(HDC hdc, int x, int y, const char *spText, int nCount, int nTabPositions, int *pTabPositions, int nTabOrigin)
Writes a character string at a specified location, expanding tabs to the values specified in an anrry...
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontByName(const char *font_name)
Creates a logical font by a font name. 
 
MG_EXPORT void GUIAPI DeletePrivateDC(HDC hdc)
Deletes the DC returned by CreatePrivateDC or CreatePrivateClientDC or CreatePrivateSubDC. 
 
struct _MYBITMAP * PMYBITMAP
Data type of pointer to a struct _MYBITMAP. 
 
MG_EXPORT int GUIAPI SetBitmapKeyColor(HDC hdc, PBITMAP bmp, Uint8 r, Uint8 g, Uint8 b)
Set the bitmap color key. 
 
MG_EXPORT BidiBracketType GUIAPI UCharGetBracketType(Uchar32 ch)
Get bracketed character. 
 
const unsigned char * bits
 
long fixed
Data type of fixed point. 
 
unsigned int Uint32
A type definition for a 32-bit unsigned integer. 
 
MG_EXPORT BidiLevel GUIAPI UBidiGetParagraphEmbeddingLevelsAlt(const Uchar32 *ucs, int nr_ucs, ParagraphDir *paragraph_dir, BidiLevel *embedding_levels)
An alternative of UBidiGetParagraphEmbeddingLevels(). 
 
MG_EXPORT void GUIAPI ArcEx(HDC hdc, int x, int y, int width, int height, int ang1, int ang2)
Draws an arc with the current pen in a DC. 
 
MG_EXPORT void GUIAPI ExcludeClipRect(HDC hdc, const RECT *prc)
Excludes the specified rectangle from the current visible region of a DC. 
 
MG_EXPORT HPALETTE GUIAPI GetDefaultPalette(void)
Gets the system default logical palette. 
 
DWORD_PTR DWORD
A unsigned long type definition for pointer precision. 
 
MG_EXPORT int GUIAPI GetFirstWord(PLOGFONT log_font, const char *mstr, int len, WORDINFO *word_info)
Retrieves the length and info of the first multi-byte word in a string. 
 
LOGFONT * PLOGFONT
Data type of pointer to a LOGFONT. 
 
MG_EXPORT BOOL GUIAPI IsUCharLowercase(Uchar32 uc)
 
MG_EXPORT int GUIAPI SaveMyBitmapToFile(PMYBITMAP my_bmp, RGB *pal, const char *spFileName)
Saves a MYBITMAP object to a bitmap file. 
 
MG_EXPORT int GUIAPI LoadMyBitmapFromMem(PMYBITMAP my_bmp, RGB *pal, const void *mem, int size, const char *ext)
Loads a MYBITMAP object from memory. 
 
MG_EXPORT const ScriptType *GUIAPI GetScriptsForLang(const char *lang_name, LanguageCode *lang_code, int *nr_scripts)
 
MG_EXPORT gal_pixel GUIAPI GetPixelRGBA(HDC hdc, int x, int y, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
Gets the pixel value at the specified position on a DC in RGBA quarter. 
 
This file includes functions for reading and writing data from general sources, such as file...
 
MG_EXPORT int GUIAPI LoadBitmapFromFile(HDC hdc, PBITMAP pBitmap, const char *spFileName)
Loads a device-dependent bitmap from a file. 
 
MG_EXPORT int GUIAPI UChars2AChars(LOGFONT *logfont, const Uchar32 *ucs, Achar32 *acs, int n)
Convert an Uchar32 array to Unicode character array. 
 
MG_EXPORT RGBCOLOR GUIAPI GetNearestColor(HDC hdc, Uint8 red, Uint8 green, Uint8 blue)
Gets the nearest color compliant to a DC for a spefici color. 
 
MG_EXPORT BOOL GUIAPI UCharCompose(Uchar32 a, Uchar32 b, Uchar32 *ch)
 
MG_EXPORT void GUIAPI UStrGetBidiTypes(const Uchar32 *ucs, int nr_ucs, BidiType *bdts)
Get bidi types for an string of Unicode characters. 
 
MG_EXPORT BOOL GUIAPI BIDILogAChars2VisACharsEx(LOGFONT *log_font, Achar32 *achars, int nr_achars, int pel, void *extra, CB_REVERSE_ARRAY cb_reverse_extra)
Reorder the specified logical glyph string in visual order and reorder an extra array to reflect the ...
 
static PLOGFONT GUIAPI GetSystemFont(int font_id)
Gets the system logical font through an font identifier. 
 
MG_EXPORT RGBCOLOR GUIAPI GetBackgroundColorInTextRuns(const TEXTRUNS *truns, int index)
 
MG_EXPORT HDC GUIAPI GetDC(HWND hwnd)
Gets a window DC of a window. 
 
MG_EXPORT int GUIAPI MB2WCEx(PLOGFONT log_font, void *dest, BOOL wc32, const unsigned char *mstr, int n)
Converts a multibyte character to a wide character in UCS according to the charset/encoding of the lo...
 
MG_EXPORT void *GUIAPI InitMyBitmapSL(MG_RWops *area, const char *ext, MYBITMAP *my_bmp, RGB *pal)
Initializes scanline loader of the MYBITMAP object from a data source. 
 
MG_EXPORT Uchar32 GUIAPI UCharToFullSizeKana(Uchar32 uc)
 
MG_EXPORT PLOGFONT GUIAPI SelectFont(HDC hdc, PLOGFONT log_font)
Selects a logical font into a DC. 
 
MG_EXPORT Uchar32 GUIAPI UCharToLower(Uchar32 uc)
 
MG_EXPORT void GUIAPI NormalizeRect(RECT *pRect)
Normalizes a rectangle. 
 
static BOOL GUIAPI SetPixelInBitmap(const BITMAP *bmp, int x, int y, gal_pixel pixel)
Sets pixel value in a BITMAP object. 
 
MG_EXPORT void GUIAPI TermVectorialFonts(void)
Terminates vectorial font renderer. 
 
MG_EXPORT int GUIAPI WCS2MBSEx(PLOGFONT log_font, unsigned char *dest, const void *wcs, int wcs_len, BOOL wc32, int n, int *conved_wcs_len)
Converts a wide character string in UC16 to a multibyte string according to the charset/encoding of t...
 
MG_EXPORT BOOL GUIAPI SubtractClipRect(PCLIPRGN pRgn, const RECT *pRect)
Subtracts a rectangle from a region. 
 
MG_EXPORT BOOL GUIAPI ft2SetLcdFilter(LOGFONT *logfont, FT2LCDFilter filter)
Set freetype2 smooth mode. 
 
MG_EXPORT void GUIAPI TerminateSlaveScreen(HDC hdc)
Terminates slave screen. 
 
MG_EXPORT BOOL GUIAPI InitBasicShapingEngine(TEXTRUNS *truns)
Initialize the base shaping engine for a TEXTRUNS object. 
 
MG_EXPORT gal_pixel GUIAPI GetPixelRGB(HDC hdc, int x, int y, Uint8 *r, Uint8 *g, Uint8 *b)
Gets the pixel value at the specified position on a DC in RGB triple. 
 
MG_EXPORT BOOL GUIAPI IsRectEmpty(const RECT *prc)
Determines whether an rectangle is empty. 
 
MG_EXPORT Glyph32 GUIAPI GetGlyphValue(LOGFONT *logfont, const char *mchar, int mchar_len, const char *pre_mchar, int pre_len)
Get the glyph value of a multi-byte character. 
 
MG_EXPORT BOOL GUIAPI EqualRect(const RECT *prc1, const RECT *prc2)
Determines whether two rectangles are equal. 
 
MG_EXPORT void GUIAPI PolyFillArcEx(HDC hdc, const ARC *arcs, int nr_arcs)
Fill a polyarc with the current brush in a DC. 
 
#define FALSE
FALSE value, defined as 0 by MiniGUI. 
 
MG_EXPORT void DestroyBlockDataHeap(PBLOCKHEAP heap)
Destroys a private block data heap. 
 
MG_EXPORT int GUIAPI GetSysCharWidth(void)
Gets the width of a single-byte character of the default system font. 
 
MG_EXPORT HDC GUIAPI SetSecondaryDC(HWND hwnd, HDC secondary_dc, ON_UPDATE_SECONDARYDC on_update_secondarydc)
Set a window's secondary DC and the callback procedure for the secondary DC update. 
 
MG_EXPORT void GUIAPI PolyArcEx(HDC hdc, const ARC *arcs, int nr_arcs)
Draws a polyarc with the current pen in a DC. 
 
unsigned int UINT
A type definition for unsigned integer. 
 
struct _CLIPRECT CLIPRECT
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontIndirectEx(LOGFONT *logfont, int rotation)
Creates a new logical font indirectly from a LOGFONT structure with a rotation degrees. 
 
unsigned int DWORD32
A type definition for a 32-bit unsigned integer. 
 
MG_EXPORT BOOL GUIAPI ScaleBitmapEx(BITMAP *dst, const BITMAP *src, HDC ref_dc)
Scales a BITMAP object into another BITMAP object by specify algorithm. 
 
MG_EXPORT void GUIAPI CircleArc(HDC hdc, int sx, int sy, int r, int ang1, int ang2)
Draws an arc. 
 
MG_EXPORT BidiLevel GUIAPI UBidiGetParagraphEmbeddingLevels(const BidiType *bidi_types, const BidiBracketType *bracket_types, int len, ParagraphDir *paragraph_dir, BidiLevel *embedding_levels)
Get bidi embedding levels of a paragraph. 
 
MG_EXPORT HDC GUIAPI CreatePrivateDC(HWND hwnd)
Creates a private window DC of a window. 
 
MG_EXPORT void GUIAPI UnloadBitmap(PBITMAP pBitmap)
Unloads a bitmap. 
 
MG_EXPORT HICON GUIAPI LoadIconFromMem(HDC hdc, const void *area, int which)
Loads an icon from a memory area. 
 
MG_EXPORT HDC GUIAPI GetSubDC(HDC hdc, int off_x, int off_y, int width, int height)
This function gets a sub DC which is compliant to the specified client DC. 
 
MG_EXPORT int DrawLayoutLine(HDC hdc, const LAYOUTLINE *line, int x, int y)
Draw a laid out line at the specific position. 
 
MG_EXPORT BOOL GUIAPI FillPolygon(HDC hdc, const POINT *pts, int vertices)
Fills an polygon. 
 
MG_EXPORT void GUIAPI UStrGetJoiningTypes(const Uchar32 *ucs, int nr_ucs, BidiJoiningType *joining_types)
Get joining types for a string of Unicode characters. 
 
MG_EXPORT HDC GUIAPI GetSecondaryClientDC(HWND hwnd)
Retrives and returns the client secondary DC of a specific window. 
 
MG_EXPORT Uint32 GUIAPI SetDCAttr(HDC hdc, int attr, Uint32 value)
Sets a specified attribute value of a DC. 
 
static void Pixel2RGB(HDC hdc, gal_pixel pixel, Uint8 *r, Uint8 *g, Uint8 *b)
Gets the color in RGB triple from a pixel value under a DC. 
 
MG_EXPORT HDC GUIAPI CreateSubMemDC(HDC parent, int off_x, int off_y, int width, int height, BOOL comp_to_parent)
Creates a sub memory DC in the given memory DC. 
 
struct _GLYPHEXTINFO GLYPHEXTINFO
 
MG_EXPORT void GUIAPI VFlipBitmap(BITMAP *bmp, unsigned char *inter_buff)
Vertical Flip the special Bitmap object. 
 
MG_EXPORT int GUIAPI CleanupMyBitmapSL(MYBITMAP *my_bmp, void *load_info)
Cleanups the scanline loader. 
 
MG_EXPORT void GUIAPI IncludeClipRect(HDC hdc, const RECT *prc)
Includes the specified rectangle to the current visible region of a DC. 
 
BLOCKHEAP * PBLOCKHEAP
Data type of the pointer to a BLOCKHEAP. 
 
MG_EXPORT BOOL GUIAPI UCharGetMirror(Uchar32 uc, Uchar32 *mirrored)
Get mirrored character. 
 
MG_EXPORT void GUIAPI DeleteMemDC(HDC mem_dc)
Deletes a memory DC. 
 
MG_EXPORT Uint8 *GUIAPI LockDC(HDC hdc, const RECT *rw_rc, int *width, int *height, int *pitch)
Locks a dc to get direct access to pixels in the DC. 
 
MG_EXPORT int GUIAPI ExpandMyBitmap(HDC hdc, PBITMAP bmp, const MYBITMAP *my_bmp, const RGB *pal, int frame)
Expands a MYBITMAP object to a BITMAP object. 
 
MG_EXPORT BOOL GUIAPI IsUCharMark(Uchar32 uc)
 
MG_EXPORT int GUIAPI TextOutLen(HDC hdc, int x, int y, const char *spText, int len)
Outputs a string of text. 
 
MG_EXPORT HICON GUIAPI LoadIconFromFile(HDC hdc, const char *filename, int which)
Loads an icon from a Windows ICO file. 
 
MG_EXPORT BOOL GUIAPI IsUCharZeroWidth(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI PtVisible(HDC hdc, int x, int y)
Checks whether a point is visible. 
 
MG_EXPORT void GUIAPI Pixel2RGBs(HDC hdc, const gal_pixel *pixels, RGB *rgbs, int count)
Gets the colors in RGB triple from a pixel value array under a DC. 
 
MG_EXPORT BOOL GUIAPI SetMemDCColorKey(HDC mem_dc, DWORD flags, Uint32 color_key)
Sets the color key (transparent pixel) of a memory DC. 
 
MG_EXPORT PLOGFONT GUIAPI GetCurFont(HDC hdc)
Gets the pointer to the current logical font of a DC. 
 
MG_EXPORT BOOL GUIAPI PtInRegion(PCLIPRGN region, int x, int y)
Determines whether a point is in a region. 
 
MG_EXPORT BOOL GUIAPI FloodFill(HDC hdc, int x, int y)
Fills an enclosed area starting at point (x,y). 
 
const LOGFONT * CPLOGFONT
Data type of pointer to a LOGFONT. 
 
MG_EXPORT BOOL GUIAPI IsUCharAlpha(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI RegisterBitmapFileType(const char *ext, void *(*init)(MG_RWops *fp, MYBITMAP *my_bmp, RGB *pal), int(*load)(MG_RWops *fp, void *init_info, MYBITMAP *my_bmp, CB_ONE_SCANLINE cb, void *context), void(*cleanup)(void *init_info), int(*save)(MG_RWops *fp, MYBITMAP *my_bmp, RGB *pal), BOOL(*check)(MG_RWops *fp))
Registers a bitmap file loader, saver, and checker. 
 
MG_EXPORT BOOL GUIAPI RectVisible(HDC hdc, const RECT *pRect)
Checks whether the specified rectangle is visible. 
 
MG_EXPORT void GUIAPI SplineTo(HDC hdc, const POINT *pts)
Draws a bezier spline. 
 
MG_EXPORT void GUIAPI DrawHVDotLine(HDC hdc, int x, int y, int w_h, BOOL H_V)
Draws a horizontal or vertical dot dash line. 
 
MG_EXPORT BOOL GUIAPI IsUCharDefined(Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI InitEllipseRegion(PCLIPRGN dst, int x, int y, int rx, int ry)
Initializes a region to be an enclosed ellipse. 
 
MG_EXPORT int GUIAPI GetTextExtent(HDC hdc, const char *spText, int len, SIZE *pSize)
Computes the output extent of a string of text. 
 
MG_EXPORT Uint32 GUIAPI ScriptTypeToISO15924(ScriptType script)
 
static HDC GUIAPI CreateMemDC(int width, int height, int depth, DWORD flags, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
Creates a memory DC. 
 
static void InflateRect(RECT *prc, int cx, int cy)
Increases or decreases the width and height of an rectangle. 
 
MG_EXPORT BOOL GUIAPI UChar2AChar(LOGFONT *logfont, Uchar32 uc, Achar32 *ac)
Get the LOGFONT Achar32 value from a Unicode character value. 
 
BITMAP * PBITMAP
Data type of pointer to a BITMAP. 
 
void(* CB_POLYGON)(void *context, int x1, int x2, int y)
The type of polygon generator callback. 
 
MG_EXPORT int GUIAPI GetSysFontAveWidth(int font_id)
Gets the average width of a single-byte character of a system font. 
 
MG_EXPORT int GUIAPI SaveBitmapToFile(HDC hdc, PBITMAP pBitmap, const char *spFileName)
Saves a BITMAP object to a bitmap file. 
 
MG_EXPORT void GUIAPI CompileRGBABitmap(HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, void *pixel_format, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT *mybmp)
Convert a MYBITMAP pixel data to a BITMAP pixel data. 
 
MG_EXPORT HICON GUIAPI CreateIconEx(HDC hdc, int w, int h, const BYTE *AndBits, const BYTE *XorBits, int colornum, const RGB *pal)
Creates an icon object from the memory. 
 
MG_EXPORT int GUIAPI SetBitmapScalerType(HDC hdc, int scaler_type)
set bitmap scaler algorithm callback of DC according by scaler_type. 
 
MG_EXPORT void GUIAPI DestroyLogFont(PLOGFONT log_font)
Destroys a logical font. 
 
GHANDLE HICON
Handle to icon. 
 
MG_EXPORT int GUIAPI GetSysFontMaxWidth(int font_id)
Gets the maximal width of a single-byte character of a system font. 
 
MG_EXPORT const char *GUIAPI GetFontNameInTextRuns(const TEXTRUNS *truns, int index)
 
MG_EXPORT ScriptType GUIAPI ScriptTypeFromISO15924(Uint32 iso15924)
Get the ScriptType value from an encoded ISO15924 script code. 
 
MG_EXPORT void GUIAPI RotateScaledBitmapVFlip(HDC hdc, const BITMAP *bmp, int lx, int ty, int angle, int w, int h)
Flip vertically, rotates, stretch or shrinks a bitmap object.