187 #define PIXEL_invalid 0 194 #define PIXEL_transparent SysPixelIndex[0] 201 #define PIXEL_darkblue SysPixelIndex[1] 208 #define PIXEL_darkgreen SysPixelIndex[2] 215 #define PIXEL_darkcyan SysPixelIndex[3] 222 #define PIXEL_darkred SysPixelIndex[4] 229 #define PIXEL_darkmagenta SysPixelIndex[5] 236 #define PIXEL_darkyellow SysPixelIndex[6] 243 #define PIXEL_darkgray SysPixelIndex[7] 250 #define PIXEL_lightgray SysPixelIndex[8] 257 #define PIXEL_blue SysPixelIndex[9] 264 #define PIXEL_green SysPixelIndex[10] 271 #define PIXEL_cyan SysPixelIndex[11] 278 #define PIXEL_red SysPixelIndex[12] 285 #define PIXEL_magenta SysPixelIndex[13] 292 #define PIXEL_yellow SysPixelIndex[14] 299 #define PIXEL_lightwhite SysPixelIndex[15] 306 #define PIXEL_black SysPixelIndex[16] 312 #define COLOR_invalid PIXEL_invalid 318 #define COLOR_transparent PIXEL_transparent 324 #define COLOR_darkred PIXEL_darkred 330 #define COLOR_darkgreen PIXEL_darkgreen 336 #define COLOR_darkyellow PIXEL_darkyellow 342 #define COLOR_darkblue PIXEL_darkblue 348 #define COLOR_darkmagenta PIXEL_darkmagenta 354 #define COLOR_darkcyan PIXEL_darkcyan 360 #define COLOR_lightgray PIXEL_lightgray 366 #define COLOR_darkgray PIXEL_darkgray 372 #define COLOR_red PIXEL_red 378 #define COLOR_green PIXEL_green 384 #define COLOR_yellow PIXEL_yellow 390 #define COLOR_blue PIXEL_blue 396 #define COLOR_magenta PIXEL_magenta 402 #define COLOR_cyan PIXEL_cyan 408 #define COLOR_lightwhite PIXEL_lightwhite 414 #define COLOR_black PIXEL_black 420 #define RGBA_transparent \ 421 (MakeRGBA(SysPixelColor[0].r, SysPixelColor[0].g, \ 422 SysPixelColor[0].b, SysPixelColor[0].a)) 428 #define RGBA_darkblue \ 429 (MakeRGBA(SysPixelColor[1].r, SysPixelColor[1].g, \ 430 SysPixelColor[1].b, SysPixelColor[1].a)) 436 #define RGBA_darkgreen \ 437 (MakeRGBA(SysPixelColor[2].r, SysPixelColor[2].g, \ 438 SysPixelColor[2].b, SysPixelColor[2].a)) 444 #define RGBA_darkcyan \ 445 (MakeRGBA(SysPixelColor[3].r, SysPixelColor[3].g, \ 446 SysPixelColor[3].b, SysPixelColor[3].a)) 452 #define RGBA_darkred \ 453 (MakeRGBA(SysPixelColor[4].r, SysPixelColor[4].g, \ 454 SysPixelColor[4].b, SysPixelColor[4].a)) 460 #define RGBA_darkmagenta \ 461 (MakeRGBA(SysPixelColor[5].r, SysPixelColor[5].g, \ 462 SysPixelColor[5].b, SysPixelColor[5].a)) 468 #define RGBA_darkyellow \ 469 (MakeRGBA(SysPixelColor[6].r, SysPixelColor[6].g, \ 470 SysPixelColor[6].b, SysPixelColor[6].a)) 476 #define RGBA_darkgray \ 477 (MakeRGBA(SysPixelColor[7].r, SysPixelColor[7].g, \ 478 SysPixelColor[7].b, SysPixelColor[7].a)) 484 #define RGBA_lightgray \ 485 (MakeRGBA(SysPixelColor[8].r, SysPixelColor[8].g, \ 486 SysPixelColor[8].b, SysPixelColor[8].a)) 493 (MakeRGBA(SysPixelColor[9].r, SysPixelColor[9].g, \ 494 SysPixelColor[9].b, SysPixelColor[9].a)) 501 (MakeRGBA(SysPixelColor[10].r, SysPixelColor[10].g, \ 502 SysPixelColor[10].b, SysPixelColor[10].a)) 509 (MakeRGBA(SysPixelColor[11].r, SysPixelColor[11].g, \ 510 SysPixelColor[11].b, SysPixelColor[11].a)) 517 (MakeRGBA(SysPixelColor[12].r, SysPixelColor[12].g, \ 518 SysPixelColor[12].b, SysPixelColor[12].a)) 524 #define RGBA_magenta \ 525 (MakeRGBA(SysPixelColor[13].r, SysPixelColor[13].g, \ 526 SysPixelColor[13].b, SysPixelColor[13].a)) 532 #define RGBA_yellow \ 533 (MakeRGBA(SysPixelColor[14].r, SysPixelColor[14].g, \ 534 SysPixelColor[14].b, SysPixelColor[14].a)) 540 #define RGBA_lightwhite \ 541 (MakeRGBA(SysPixelColor[15].r, SysPixelColor[15].g, \ 542 SysPixelColor[15].b, SysPixelColor[15].a)) 549 (MakeRGBA(SysPixelColor[16].r, SysPixelColor[16].g, \ 550 SysPixelColor[16].b, SysPixelColor[16].a)) 556 #define SysColorIndex SysPixelColor 592 pthread_mutex_t lock;
781 #define NULLREGION 0x00 782 #define SIMPLEREGION 0x01 783 #define COMPLEXREGION 0x02 844 #define InitFreeClipRectList(heap, size) \ 845 InitBlockDataHeap (heap, sizeof (CLIPRECT), size) 857 #define ClipRectAlloc(heap) BlockDataAlloc (heap) 871 #define FreeClipRect(heap, cr) BlockDataFree (heap, cr); 884 #define DestroyFreeClipRectList(heap) DestroyBlockDataHeap (heap); 906 MG_EXPORT
void GUIAPI
InitClipRgn (PCLIPRGN pRgn, PBLOCKHEAP pFreeList);
1093 MG_EXPORT
BOOL GUIAPI
PtInRegion (
const PCLIPRGN region,
int x,
int y);
1128 PCLIPRECT crc = s1->
head;
1154 const RECT *rcScroll,
int x,
int y);
1167 MG_EXPORT
void GUIAPI
OffsetRegion (PCLIPRGN region,
int x,
int y);
1230 #define UnionRectWithRegion AddClipRect 1237 #define CopyRegion ClipRgnCopy 1244 #define IntersectRegion ClipRgnIntersect 1276 int x,
int y,
int rx,
int ry);
1291 const POINT* pts,
int vertices);
1366 #define HDC_SCREEN ((HDC)0) 1384 #define HDC_SCREEN_SYS ((HDC)1) 1390 #define HDC_INVALID ((HDC)-1) 1392 #define GDCAP_COLORNUM 0 1393 #define GDCAP_HPIXEL 1 1394 #define GDCAP_VPIXEL 2 1395 #define GDCAP_MAXX 3 1396 #define GDCAP_MAXY 4 1397 #define GDCAP_DEPTH 5 1399 #define GDCAP_BITSPP 7 1400 #define GDCAP_RMASK 8 1401 #define GDCAP_GMASK 9 1402 #define GDCAP_BMASK 10 1403 #define GDCAP_AMASK 11 1404 #define GDCAP_PITCH 12 1405 #define GDCAP_DPI 13 1406 #define GDCAP_DPI_DEFAULT 96 1407 #define GDCAP_DPI_MINIMAL 36 1549 MG_EXPORT
HDC GUIAPI
GetSubDC (
HDC hdc,
int off_x,
int off_y,
int width,
int height);
1627 #define MEMDC_FLAG_NONE 0x00000000 1628 #define MEMDC_FLAG_SWSURFACE 0x00000000 1629 #define MEMDC_FLAG_HWSURFACE 0x00000001 1630 #define MEMDC_FLAG_SRCCOLORKEY 0x00001000 1631 #define MEMDC_FLAG_SRCALPHA 0x00010000 1632 #define MEMDC_FLAG_SRCPIXELALPHA 0x00020000 1633 #define MEMDC_FLAG_RLEACCEL 0x00004000 1760 void* bits,
int pitch);
1798 return CreateMemDCEx (width, height, depth, flags, Rmask, Gmask, Bmask, Amask,
1827 int width,
int height,
BOOL comp_to_parent);
1977 #define CreateCompatibleDC(hdc) CreateCompatibleDCEx(hdc, 0, 0) 1989 #define DeleteCompatibleDC(hdc) DeleteMemDC(hdc) 2029 int* width,
int* height,
int* pitch);
2048 int pitch,
int bytesPerPixel,
const RECT* rc,
void* context);
2165 int width,
int height);
2244 HDC real_dc,
const RECT* secondary_rc,
const RECT* real_rc,
2245 const RECT* main_update_rc);
2247 #define ON_UPDSECDC_DEFAULT ((ON_UPDATE_SECONDARYDC)0) 2248 #define ON_UPDSECDC_DONOTHING ((ON_UPDATE_SECONDARYDC)-1) 2434 #define BM_TRANSPARENT 1 2437 #define DC_ATTR_BK_COLOR 0 2438 #define DC_ATTR_PEN_COLOR 1 2439 #define DC_ATTR_BRUSH_COLOR 2 2440 #define DC_ATTR_TEXT_COLOR 3 2442 #define DC_ATTR_BK_MODE 4 2444 #define DC_ATTR_TAB_STOP 5 2445 #define DC_ATTR_CHAR_EXTRA 6 2446 #define DC_ATTR_WORD_EXTRA 7 2447 #define DC_ATTR_ALINE_EXTRA 8 2448 #define DC_ATTR_BLINE_EXTRA 9 2450 #define DC_ATTR_MAP_MODE 10 2452 #define DC_ATTR_TEXT_ALIGN 11 2454 #define DC_ATTR_BIDI_FLAGS 12 2456 #ifdef _MGHAVE_ADV_2DAPI 2457 # define DC_ATTR_PEN_TYPE 13 2458 # define DC_ATTR_PEN_CAP_STYLE 14 2459 # define DC_ATTR_PEN_JOIN_STYLE 15 2460 # define DC_ATTR_PEN_WIDTH 16 2461 # define DC_ATTR_BRUSH_TYPE 17 2462 # define NR_DC_ATTRS 18 2464 # define NR_DC_ATTRS 13 2541 #define GetBkColor(hdc) GetDCAttr (hdc, DC_ATTR_BK_COLOR) 2558 #define GetBkMode(hdc) GetDCAttr (hdc, DC_ATTR_BK_MODE) 2569 #define GetPenColor(hdc) GetDCAttr (hdc, DC_ATTR_PEN_COLOR) 2580 #define GetBrushColor(hdc) GetDCAttr (hdc, DC_ATTR_BRUSH_COLOR) 2591 #define GetTextColor(hdc) GetDCAttr (hdc, DC_ATTR_TEXT_COLOR) 2602 #define GetTabStop(hdc) GetDCAttr (hdc, DC_ATTR_TAB_STOP) 2614 #define SetBkColor(hdc, color) \ 2615 SetDCAttr (hdc, DC_ATTR_BK_COLOR, (DWORD) color) 2634 #define SetBkMode(hdc, mode) \ 2635 SetDCAttr (hdc, DC_ATTR_BK_MODE, (DWORD) mode) 2647 #define SetPenColor(hdc, color) \ 2648 SetDCAttr (hdc, DC_ATTR_PEN_COLOR, (DWORD) color) 2660 #define SetBrushColor(hdc, color) \ 2661 SetDCAttr (hdc, DC_ATTR_BRUSH_COLOR, (DWORD) color) 2673 #define SetTextColor(hdc, color) \ 2674 SetDCAttr (hdc, DC_ATTR_TEXT_COLOR, (DWORD) color) 2686 #define SetTabStop(hdc, value) \ 2687 SetDCAttr (hdc, DC_ATTR_TAB_STOP, (DWORD) value) 2693 #define ROP_COMPOSITE 4 2694 #define ROP_COMP_USER 0x0100 3153 RGB rgb = {r, g, b, a};
3196 RGB rgb = {r, g, b, 0xFF};
3218 RGB* rgbs,
int count);
3246 *r = rgb.
r; *g = rgb.
g, *b = rgb.
b;
3264 RGB* rgbs,
int count);
3294 *r = rgb.
r; *g = rgb.
g, *b = rgb.
b; *a = rgb.
a;
3314 #define PIXEL2DWORD(hdc, pixel) Pixel2DWORD(hdc, pixel) 3350 MG_EXPORT
void GUIAPI
FocusRect (
HDC hdc,
int x0,
int y0,
int x1,
int y1);
3387 #define DrawHDotLine(hdc, x, y, w) DrawHVDotLine (hdc, x, y, w, TRUE); 3405 #define DrawVDotLine(hdc, x, y, h) DrawHVDotLine (hdc, x, y, h, FALSE); 3437 int *_x0,
int *_y0,
int *_x1,
int *_y1);
3443 typedef void (*
CB_LINE) (
void* context,
int stepx,
int stepy);
3468 int x1,
int y1,
int x2,
int y2,
CB_LINE cb);
3474 typedef void (*
CB_CIRCLE) (
void* context,
int x1,
int x2,
int y);
3510 typedef void (*
CB_ELLIPSE) (
void* context,
int x1,
int x2,
int y);
3537 int sx,
int sy,
int rx,
int ry,
CB_ELLIPSE cb);
3543 typedef void (*
CB_ARC) (
void* context,
int x,
int y);
3569 int sx,
int sy,
int r,
int ang1,
int ang2,
CB_ARC cb);
3575 typedef void (*
CB_POLYGON) (
void* context,
int x1,
int x2,
int y);
3675 #define PolygonGenerator(context, pts, vertices, cb) \ 3676 PolygonGeneratorEx(context, pts, vertices, cb, NULL) 3711 const RECT* src_rc,
int x,
int y,
3715 #define BITMAP_SCALER_DDA 0 3717 #define BITMAP_SCALER_BILINEAR 1 3748 MG_EXPORT
void GUIAPI
MoveTo (
HDC hdc,
int x,
int y);
3764 MG_EXPORT
void GUIAPI
LineTo (
HDC hdc,
int x,
int y);
3781 MG_EXPORT
void GUIAPI
Rectangle (
HDC hdc,
int x0,
int y0,
int x1,
int y1);
3829 MG_EXPORT
void GUIAPI
Circle (
HDC hdc,
int sx,
int sy,
int r);
3847 MG_EXPORT
void GUIAPI
Ellipse (
HDC hdc,
int sx,
int sy,
int rx,
int ry);
3870 MG_EXPORT
void GUIAPI
CircleArc (
HDC hdc,
int sx,
int sy,
int r,
3871 int ang1,
int ang2);
3887 MG_EXPORT
void GUIAPI
FillBox (
HDC hdc,
int x,
int y,
int w,
int h);
3902 MG_EXPORT
void GUIAPI
FillCircle (
HDC hdc,
int sx,
int sy,
int r);
3920 MG_EXPORT
void GUIAPI
FillEllipse (
HDC hdc,
int sx,
int sy,
int rx,
int ry);
3952 #ifdef _MGHAVE_ADV_2DAPI 3992 #define GetPenType(hdc) \ 3993 GetDCAttr (hdc, DC_ATTR_PEN_TYPE) 4005 #define SetPenType(hdc, type) \ 4006 SetDCAttr (hdc, DC_ATTR_PEN_TYPE, (DWORD) type) 4028 const unsigned char* dash_list,
int n);
4061 #define GetPenCapStyle(hdc) \ 4062 GetDCAttr (hdc, DC_ATTR_PEN_CAP_STYLE) 4074 #define SetPenCapStyle(hdc, style) \ 4075 SetDCAttr (hdc, DC_ATTR_PEN_CAP_STYLE, (DWORD) style) 4106 #define GetPenJoinStyle(hdc) GetDCAttr (hdc, DC_ATTR_PEN_JOIN_STYLE) 4118 #define SetPenJoinStyle(hdc, style) \ 4119 SetDCAttr (hdc, DC_ATTR_PEN_JOIN_STYLE, (DWORD) style) 4130 #define GetPenWidth(hdc) \ 4131 GetDCAttr (hdc, DC_ATTR_PEN_WIDTH) 4143 #define SetPenWidth(hdc, width) \ 4144 SetDCAttr (hdc, DC_ATTR_PEN_WIDTH, (DWORD) width) 4187 #define GetBrushType(hdc) \ 4188 GetDCAttr (hdc, DC_ATTR_BRUSH_TYPE) 4200 #define SetBrushType(hdc, type) \ 4201 SetDCAttr (hdc, DC_ATTR_BRUSH_TYPE, (DWORD) type) 4268 MG_EXPORT
void GUIAPI
LineEx (
HDC hdc,
int x1,
int y1,
int x2,
int y2);
4293 MG_EXPORT
void GUIAPI
ArcEx (
HDC hdc,
int x,
int y,
int width,
int height,
4294 int ang1,
int ang2);
4319 MG_EXPORT
void GUIAPI
FillArcEx (
HDC hdc,
int x,
int y,
int width,
int height,
4320 int ang1,
int ang2);
4374 MG_EXPORT
void GUIAPI
PolyArcEx (
HDC hdc,
const ARC* arcs,
int nr_arcs);
4408 MG_EXPORT
BOOL GUIAPI
RoundRect (
HDC hdc,
int x0,
int y0,
int x1,
int y1,
int cw,
int ch);
4461 #define MM_ANISOTROPIC 1 4478 #define GetMapMode(hdc) GetDCAttr (hdc, DC_ATTR_MAP_MODE) 4495 #define SetMapMode(hdc, mapmode) \ 4496 SetDCAttr (hdc, DC_ATTR_MAP_MODE, (DWORD)mapmode) 4550 #define DC_LCS_VORG 0 4551 #define DC_LCS_VEXT 1 4552 #define DC_LCS_WORG 2 4553 #define DC_LCS_WEXT 3 4554 #define NR_DC_LCS_PTS 4 4569 #define GetViewportOrg(hdc, pPt) GetDCLCS(hdc, DC_LCS_VORG, pPt) 4584 #define GetViewportExt(hdc, pPt) GetDCLCS(hdc, DC_LCS_VEXT, pPt) 4599 #define GetWindowOrg(hdc, pPt) GetDCLCS(hdc, DC_LCS_WORG, pPt) 4614 #define GetWindowExt(hdc, pPt) GetDCLCS(hdc, DC_LCS_WEXT, pPt) 4629 #define SetViewportOrg(hdc, pPt) SetDCLCS(hdc, DC_LCS_VORG, pPt) 4644 #define SetViewportExt(hdc, pPt) SetDCLCS(hdc, DC_LCS_VEXT, pPt) 4659 #define SetWindowOrg(hdc, pPt) SetDCLCS(hdc, DC_LCS_WORG, pPt) 4674 #define SetWindowExt(hdc, pPt) SetDCLCS(hdc, DC_LCS_WEXT, pPt) 4840 #define RGN_COPY 0x00 4841 #define RGN_DIFF 0x01 4842 #define RGN_AND 0x02 4844 #define RGN_XOR 0x04 5049 int x,
int y,
int w,
int h,
BITMAP* bmp);
5143 int x,
int y,
int w,
int h,
5144 int bw,
int bh,
const BITMAP* bmp,
int xo,
int yo);
5169 int box_w,
int box_h,
const BITMAP* pbmp,
int bmp_x,
int bmp_y,
5170 int bmp_w,
int bmp_h);
5307 COLOR_LOGICOP_CLEAR = 0,
5309 COLOR_LOGICOP_AND_INVERTED,
5310 COLOR_LOGICOP_COPY_INVERTED,
5311 COLOR_LOGICOP_AND_REVERSE,
5312 COLOR_LOGICOP_INVERT,
5316 COLOR_LOGICOP_EQUIV,
5317 COLOR_LOGICOP_NOOP0,
5318 COLOR_LOGICOP_OR_INVERTED1,
5320 COLOR_LOGICOP_OR_REVERSE,
5359 MG_EXPORT
void GUIAPI
BitBlt (
HDC hsdc,
int sx,
int sy,
int sw,
int sh,
5360 HDC hddc,
int dx,
int dy,
DWORD dwRop);
5401 MG_EXPORT
void GUIAPI
StretchBlt (
HDC hsdc,
int sx,
int sy,
int sw,
int sh,
5402 HDC hddc,
int dx,
int dy,
int dw,
int dh,
DWORD dwRop);
5426 #define ScaleBitmap(dst, src) ScaleBitmapEx(dst, src, HDC_SCREEN) 5497 MG_EXPORT
BOOL GUIAPI SetPixelInBitmapEx (
const BITMAP* bmp,
5523 return SetPixelInBitmapEx (bmp, x, y, pixel,
NULL);
5526 #ifdef _MGMISC_SAVESCREEN 5547 const char* filename);
5642 const BYTE* AndBits,
const BYTE* XorBits,
int colornum,
5648 #define CreateIcon(hdc, w, h, AndBits, XorBits, colornum) \ 5649 CreateIconEx(hdc, w, h, AndBits, XorBits, colornum, NULL) 5683 const char* file_name);
5703 const void* mem,
size_t size,
const char* ext);
5751 int x,
int y,
int w,
int h,
HICON hicon);
5774 static inline void SetRect (
RECT* prc,
int left,
int top,
int right,
int bottom)
5776 (prc)->left = left; (prc)->top = top;
5777 (prc)->right = right; (prc)->bottom = bottom;
5795 (prc)->left = (prc)->top = (prc)->right = (prc)->bottom = 0;
5812 (pdrc)->left = (psrc)->left; (pdrc)->top = (psrc)->top;
5813 (pdrc)->right = (psrc)->right; (pdrc)->bottom = (psrc)->bottom;
5833 (prc)->left += x; (prc)->top += y; (prc)->right += x; (prc)->bottom += y;
5854 (prc)->left -= cx; (prc)->top -= cy;
5855 (prc)->right += cx; (prc)->bottom += cy;
5873 if ((x) < (prc)->left) (prc)->left = (x);
5874 if ((y) < (prc)->top) (prc)->top = (y);
5875 if ((x) > (prc)->right) (prc)->right = (x);
5876 if ((y) > (prc)->bottom) (prc)->bottom = (y);
5896 if (x >= prc->
left && x < prc->right && y >= prc->
top && y < prc->bottom)
5961 const RECT* psrc1,
const RECT* psrc2);
6013 const RECT* psrc1,
const RECT* psrc2);
6031 const RECT* psrc1,
const RECT* psrc2);
6055 #define RECTWP(prc) ((prc)->right - (prc)->left) 6060 #define RECTHP(prc) ((prc)->bottom - (prc)->top) 6065 #define RECTW(rc) ((rc).right - (rc).left) 6070 #define RECTH(rc) ((rc).bottom - (rc).top) 6086 #define LEN_LOGFONT_NAME_FIELD 31 6087 #define LEN_LOGFONT_FAMILY_FIELD (LEN_LOGFONT_NAME_FIELD*7+6) 6088 #define LEN_LOGFONT_NAME_FULL (LEN_LOGFONT_FAMILY_FIELD + 32) 6089 #define LEN_UNIDEVFONT_NAME 255 6091 #define LEN_FONT_NAME LEN_LOGFONT_NAME_FIELD 6092 #define LEN_DEVFONT_NAME LEN_UNIDEVFONT_NAME 6094 #define FONT_WEIGHT_NIL '\0' 6095 #define FONT_WEIGHT_ANY '*' 6096 #define FONT_WEIGHT_THIN 't' 6097 #define FONT_WEIGHT_EXTRA_LIGHT 'e' 6098 #define FONT_WEIGHT_LIGHT 'l' 6099 #define FONT_WEIGHT_NORMAL 'n' 6100 #define FONT_WEIGHT_REGULAR 'r' 6101 #define FONT_WEIGHT_MEDIUM 'm' 6102 #define FONT_WEIGHT_DEMIBOLD 'd' 6103 #define FONT_WEIGHT_BOLD 'b' 6104 #define FONT_WEIGHT_EXTRA_BOLD 'x' 6105 #define FONT_WEIGHT_BLACK 'c' 6110 #define FONT_WEIGHT_SUBPIXEL 's' 6111 #define FONT_WEIGHT_BOOK 'k' 6113 #define FS_WEIGHT_MASK 0x000000FF 6114 #define FS_WEIGHT_ANY 0 6115 #define FS_WEIGHT_THIN 10 6116 #define FS_WEIGHT_EXTRA_LIGHT 20 6117 #define FS_WEIGHT_LIGHT 30 6118 #define FS_WEIGHT_NORMAL 35 6119 #define FS_WEIGHT_REGULAR 40 6120 #define FS_WEIGHT_MEDIUM 50 6121 #define FS_WEIGHT_DEMIBOLD 60 6122 #define FS_WEIGHT_EXTRA_BOLD 70 6123 #define FS_WEIGHT_BOLD 80 6124 #define FS_WEIGHT_BLACK 90 6126 #define FONT_SLANT_NIL '\0' 6127 #define FONT_SLANT_ANY '*' 6128 #define FONT_SLANT_ROMAN 'r' 6129 #define FONT_SLANT_ITALIC 'i' 6130 #define FONT_SLANT_OBLIQUE 'o' 6132 #define FS_SLANT_MASK 0x00000F00 6133 #define FS_SLANT_ANY 0x00000000 6134 #define FS_SLANT_ROMAN 0x00000100 6135 #define FS_SLANT_ITALIC 0x00000200 6136 #define FS_SLANT_OBLIQUE 0x00000300 6138 #define FONT_FLIP_NONE 'n' 6139 #define FONT_FLIP_HORZ 'h' 6140 #define FONT_FLIP_VERT 'v' 6141 #define FONT_FLIP_HORZVERT 't' 6142 #define FONT_FLIP_NIL FONT_FLIP_NONE 6144 #define FS_FLIP_MASK 0x0000F000 6145 #define FS_FLIP_NONE 0x00000000 6146 #define FS_FLIP_HORZ 0x00001000 6147 #define FS_FLIP_VERT 0x00002000 6148 #define FS_FLIP_HORZVERT 0x00003000 6150 #define FONT_OTHER_NONE 'n' 6151 #define FONT_OTHER_AUTOSCALE 's' 6152 #define FONT_OTHER_TTFNOCACHE 'c' 6153 #define FONT_OTHER_TTFKERN 'k' 6154 #define FONT_OTHER_TTFNOCACHEKERN 'r' 6155 #define FONT_OTHER_NIL FONT_OTHER_NONE 6157 #define FS_OTHER_MASK 0x00F00000 6158 #define FS_OTHER_NONE 0x00000000 6159 #define FS_OTHER_AUTOSCALE 0x00100000 6160 #define FS_OTHER_TTFNOCACHE 0x00200000 6161 #define FS_OTHER_TTFKERN 0x00400000 6162 #define FS_OTHER_TTFNOCACHEKERN 0x00600000 6164 #define FONT_DECORATE_NIL '\0' 6165 #define FONT_DECORATE_NONE 'n' 6166 #define FONT_DECORATE_UNDERLINE 'u' 6167 #define FONT_DECORATE_STRUCKOUT 's' 6168 #define FONT_DECORATE_REVERSE 'r' 6169 #define FONT_DECORATE_OUTLINE 'o' 6170 #define FONT_DECORATE_US 'U' 6172 #define FS_DECORATE_MASK 0x0F000000 6173 #define FS_DECORATE_NONE 0x00000000 6174 #define FS_DECORATE_UNDERLINE 0x01000000 6175 #define FS_DECORATE_STRUCKOUT 0x02000000 6176 #define FS_DECORATE_REVERSE 0x04000000 6177 #define FS_DECORATE_OUTLINE 0x08000000 6178 #define FS_DECORATE_US (FS_DECORATE_UNDERLINE | FS_DECORATE_STRUCKOUT) 6180 #define FONT_RENDER_NIL '\0' 6181 #define FONT_RENDER_ANY '*' 6182 #define FONT_RENDER_MONO 'n' 6183 #define FONT_RENDER_GREY 'g' 6184 #define FONT_RENDER_SUBPIXEL 's' 6186 #define FS_RENDER_MASK 0xF0000000 6187 #define FS_RENDER_MONO 0x00000000 6188 #define FS_RENDER_GREY 0x10000000 6189 #define FS_RENDER_SUBPIXEL 0x20000000 6190 #define FS_RENDER_ANY FS_RENDER_MONO 6193 #define FONT_OTHER_LCDPORTRAIT 'p' 6194 #define FONT_OTHER_LCDPORTRAITKERN 'q' 6196 #define FONT_WEIGHT_ALL FONT_WEIGHT_ANY 6197 #define FONT_SLANT_ALL FONT_SLANT_ANY 6198 #define FS_WEIGHT_ALL FS_WEIGHT_ANY 6199 #define FS_SLANT_ALL FS_SLANT_ANY 6205 #define FONT_SETWIDTH_NIL '\0' 6206 #define FONT_SETWIDTH_ALL '*' 6207 #define FONT_SETWIDTH_BOLD 'b' 6208 #define FONT_SETWIDTH_CONDENSED 'c' 6209 #define FONT_SETWIDTH_SEMICONDENSED 's' 6210 #define FONT_SETWIDTH_NORMAL 'n' 6211 #define FONT_SETWIDTH_TTFNOCACHE 'w' 6213 #define FONT_SPACING_NIL '\0' 6214 #define FONT_SPACING_ALL '*' 6215 #define FONT_SPACING_MONOSPACING 'm' 6216 #define FONT_SPACING_PROPORTIONAL 'p' 6217 #define FONT_SPACING_CHARCELL 'c' 6219 #define FONT_UNDERLINE_NIL '\0' 6220 #define FONT_UNDERLINE_ALL '*' 6221 #define FONT_UNDERLINE_LINE 'u' 6222 #define FONT_UNDERLINE_NONE 'n' 6224 #define FONT_STRUCKOUT_NIL '\0' 6225 #define FONT_STRUCKOUT_ALL '*' 6226 #define FONT_STRUCKOUT_LINE 's' 6227 #define FONT_STRUCKOUT_NONE 'n' 6230 #define FONT_TYPE_NAME_LEN 3 6231 #define FONT_TYPE_NAME_BITMAP_NUF "nuf" 6232 #define FONT_TYPE_NAME_BITMAP_RAW "rbf" 6233 #define FONT_TYPE_NAME_BITMAP_VAR "vbf" 6234 #define FONT_TYPE_NAME_BITMAP_QPF "qpf" 6235 #define FONT_TYPE_NAME_BITMAP_UPF "upf" 6236 #define FONT_TYPE_NAME_BITMAP_BMP "bmp" 6237 #define FONT_TYPE_NAME_SCALE_TTF "ttf" 6238 #define FONT_TYPE_NAME_SCALE_T1F "t1f" 6239 #define FONT_TYPE_NAME_ANY "*" 6240 #define FONT_TYPE_NAME_ALL FONT_TYPE_NAME_ANY 6242 #define FONT_ETC_SECTION_NAME_VBF "varbitmapfonts" 6243 #define FONT_ETC_SECTION_NAME_RBF "rawbitmapfonts" 6244 #define FONT_ETC_SECTION_NAME_UPF "upf" 6245 #define FONT_ETC_SECTION_NAME_QPF "qpf" 6246 #define FONT_ETC_SECTION_NAME_TTF "truetypefonts" 6248 #define FONT_TYPE_BITMAP_RAW 0x0001 6249 #define FONT_TYPE_BITMAP_VAR 0x0002 6250 #define FONT_TYPE_BITMAP_QPF 0x0003 6251 #define FONT_TYPE_BITMAP_BMP 0x0004 6252 #define FONT_TYPE_BITMAP_UPF 0x0005 6253 #define FONT_TYPE_SCALE_TTF 0x0010 6254 #define FONT_TYPE_SCALE_T1F 0x0011 6255 #define FONT_TYPE_ANY 0x0000 6256 #define FONT_TYPE_ALL FONT_TYPE_ANY 6258 #define FONT_CHARSET_US_ASCII "US-ASCII" 6260 #define FONT_CHARSET_ISO8859_1 "ISO8859-1" 6261 #define FONT_CHARSET_ISO8859_2 "ISO8859-2" 6262 #define FONT_CHARSET_ISO8859_3 "ISO8859-3" 6263 #define FONT_CHARSET_ISO8859_4 "ISO8859-4" 6264 #define FONT_CHARSET_ISO8859_5 "ISO8859-5" 6265 #define FONT_CHARSET_ISO8859_6 "ISO8859-6" 6266 #define FONT_CHARSET_ISO8859_7 "ISO8859-7" 6267 #define FONT_CHARSET_ISO8859_8 "ISO8859-8" 6268 #define FONT_CHARSET_ISO8859_9 "ISO8859-9" 6269 #define FONT_CHARSET_ISO8859_10 "ISO8859-10" 6270 #define FONT_CHARSET_ISO8859_11 "ISO8859-11" 6271 #define FONT_CHARSET_ISO8859_12 "ISO8859-12" 6272 #define FONT_CHARSET_ISO8859_13 "ISO8859-13" 6273 #define FONT_CHARSET_ISO8859_14 "ISO8859-14" 6274 #define FONT_CHARSET_ISO8859_15 "ISO8859-15" 6275 #define FONT_CHARSET_ISO8859_16 "ISO8859-16" 6277 #define FONT_CHARSET_EUC_CN "EUC-CN" 6283 #define FONT_CHARSET_GB1988_0 "GB1988-0" 6289 #define FONT_CHARSET_GB2312_0 "GB2312-0" 6290 #define FONT_CHARSET_GBK "GBK" 6296 #define FONT_CHARSET_GB18030_0 "GB18030-0" 6297 #define FONT_CHARSET_BIG5 "BIG5" 6303 #define FONT_CHARSET_EUCTW "EUC-TW" 6304 #define FONT_CHARSET_EUCKR "EUC-KR" 6310 #define FONT_CHARSET_KSC5636_0 "KSC5636-0" 6316 #define FONT_CHARSET_KSC5601_0 "KSC5601-0" 6317 #define FONT_CHARSET_EUCJP "EUC-JP" 6323 #define FONT_CHARSET_JISX0201_0 "JISX0201-0" 6329 #define FONT_CHARSET_JISX0208_0 "JISX0208-0" 6330 #define FONT_CHARSET_SHIFTJIS "SHIFT-JIS" 6336 #define FONT_CHARSET_JISX0201_1 "JISX0201-1" 6342 #define FONT_CHARSET_JISX0208_1 "JISX0208-1" 6348 #define FONT_CHARSET_ISO_10646_1 "ISO-10646-1" 6354 #define FONT_CHARSET_UTF8 "UTF-8" 6360 #define FONT_CHARSET_UTF16LE "UTF-16LE" 6366 #define FONT_CHARSET_UTF16BE "UTF-16BE" 6368 #define FONT_MAX_SIZE 256 6369 #define FONT_MIN_SIZE 1 6370 #define MAXNR_DEVFONTS 8 6405 unsigned short scales[MAXNR_DEVFONTS];
6407 DEVFONT* devfonts[MAXNR_DEVFONTS];
6430 #define MAX_LEN_MCHAR 6 6452 #define ACHARTYPE_BASIC_MASK 0x0000FFFF 6453 #define ACHARTYPE_CATEGORY_MASK 0x00FF0000 6454 #define ACHARTYPE_BREAK_MASK 0xFF000000 6460 #define ACHARTYPE_EXTRACT_BASIC(t) \ 6461 (((t) & ACHARTYPE_BASIC_MASK)) 6467 #define ACHARTYPE_EXTRACT_CATEGORY(t) \ 6468 (((t) & ACHARTYPE_CATEGORY_MASK) >> 16) 6474 #define ACHARTYPE_EXTRACT_BREAK(t) \ 6475 (((t) & ACHARTYPE_BREAK_MASK) >> 24) 6481 #define ACHARTYPE_UNKNOWN 0 6483 #define ACHAR_BASIC_NOSPACING_MARK 0x0001 6484 #define ACHAR_BASIC_ABOVE_MARK 0x0002 6485 #define ACHAR_BASIC_BELLOW_MARK 0x0004 6487 #define ACHAR_BASIC_UNKNOWN 0x0000 6488 #define ACHAR_BASIC_NUL (0x0000 | ACHAR_BASIC_NOSPACING_MARK) 6490 #define ACHAR_BASIC_CTRL1 0x0100 6492 #define ACHAR_BASIC_BEL 0x0200 6494 #define ACHAR_BASIC_BS 0x0300 6496 #define ACHAR_BASIC_HT 0x0400 6498 #define ACHAR_BASIC_LF 0x0500 6500 #define ACHAR_BASIC_VT 0x0600 6502 #define ACHAR_BASIC_FF 0x0700 6504 #define ACHAR_BASIC_CR 0x0800 6506 #define ACHAR_BASIC_CTRL2 0x0900 6508 #define ACHAR_BASIC_SPACE 0x0A00 6510 #define ACHAR_BASIC_ZEROWIDTH 0x0B00 6511 #define ACHAR_BASIC_GENERIC 0x0C00 6513 #define ACHAR_BASIC_LIGATURE (0x0D00 | ACHAR_BASIC_NOSPACING_MARK) 6514 #define ACHAR_BASIC_VOWEL (0x0E00 | ACHAR_BASIC_NOSPACING_MARK) 6515 #define ACHAR_BASIC_VOWEL_ABOVE (ACHAR_BASIC_VOWEL | ACHAR_BASIC_ABOVE_MARK) 6516 #define ACHAR_BASIC_VOWEL_BELLOW (ACHAR_BASIC_VOWEL | ACHAR_BASIC_BELLOW_MARK) 6519 #define MCHAR_TYPE_UNKNOWN ACHAR_BASIC_UNKNOWN 6520 #define MCHAR_TYPE_NUL ACHAR_BASIC_NUL 6521 #define MCHAR_TYPE_CTRL1 ACHAR_BASIC_CTRL1 6522 #define MCHAR_TYPE_BEL ACHAR_BASIC_BEL 6523 #define MCHAR_TYPE_BS ACHAR_BASIC_BS 6524 #define MCHAR_TYPE_HT ACHAR_BASIC_HT 6525 #define MCHAR_TYPE_LF ACHAR_BASIC_LF 6526 #define MCHAR_TYPE_VT ACHAR_BASIC_VT 6527 #define MCHAR_TYPE_FF ACHAR_BASIC_FF 6528 #define MCHAR_TYPE_CR ACHAR_BASIC_CR 6529 #define MCHAR_TYPE_CTRL2 ACHAR_BASIC_CTRL2 6530 #define MCHAR_TYPE_SPACE ACHAR_BASIC_SPACE 6531 #define MCHAR_TYPE_ZEROWIDTH ACHAR_BASIC_ZEROWIDTH 6532 #define MCHAR_TYPE_GENERIC ACHAR_BASIC_GENERIC 6533 #define MCHAR_TYPE_NOSPACING_MARK ACHAR_BASIC_NOSPACING_MARK 6534 #define MCHAR_TYPE_LIGATURE ACHAR_BASIC_LIGATURE 6535 #define MCHAR_TYPE_VOWEL ACHAR_BASIC_VOWEL 6536 #define MCHAR_TYPE_VOWEL_ABOVE ACHAR_BASIC_VOWEL_ABOVE 6537 #define MCHAR_TYPE_VOWEL_BELLOW ACHAR_BASIC_VOWEL_BELLOW 6540 #define MCHAR_TYPE_ASCII 0x0080 6541 #define MCHAR_TYPE_LATIN1 0x0081 6542 #define MCHAR_TYPE_LATIN2 0x0082 6543 #define MCHAR_TYPE_LATIN3 0x0083 6544 #define MCHAR_TYPE_LATIN4 0x0084 6545 #define MCHAR_TYPE_LATIN5 0x0085 6546 #define MCHAR_TYPE_LATIN6 0x0086 6547 #define MCHAR_TYPE_LATIN7 0x0087 6548 #define MCHAR_TYPE_LATIN8 0x0088 6549 #define MCHAR_TYPE_LATIN9 0x0089 6550 #define MCHAR_TYPE_LATIN10 0x008A 6551 #define MCHAR_TYPE_CYRILLIC 0x008B 6552 #define MCHAR_TYPE_ARABIC 0x008C 6553 #define MCHAR_TYPE_GREEK 0x008D 6554 #define MCHAR_TYPE_HEBREW 0x008E 6555 #define MCHAR_TYPE_THAI 0x008F 6557 #define MCHAR_TYPE_DIGIT 0x0091 6558 #define MCHAR_TYPE_SYMBOL_PUNCT 0x0092 6559 #define MCHAR_TYPE_SYMBOL_MATH 0x0093 6560 #define MCHAR_TYPE_SYMBOL_OTHER 0x0094 6561 #define MCHAR_TYPE_FW_DIGIT 0x0095 6562 #define MCHAR_TYPE_FW_SYM_PUNCT 0x0096 6563 #define MCHAR_TYPE_FW_SYM_MATH 0x0097 6564 #define MCHAR_TYPE_FW_SYM_OTHER 0x0098 6566 #define MCHAR_TYPE_HANGUL 0x00A1 6567 #define MCHAR_TYPE_KATAKANA 0x00A2 6568 #define MCHAR_TYPE_CJK 0x00A3 6610 UCHAR_CATEGORY_CONTROL,
6611 UCHAR_CATEGORY_FORMAT,
6612 UCHAR_CATEGORY_UNASSIGNED,
6613 UCHAR_CATEGORY_PRIVATE_USE,
6614 UCHAR_CATEGORY_SURROGATE,
6615 UCHAR_CATEGORY_LOWERCASE_LETTER,
6616 UCHAR_CATEGORY_MODIFIER_LETTER,
6617 UCHAR_CATEGORY_OTHER_LETTER,
6618 UCHAR_CATEGORY_TITLECASE_LETTER,
6619 UCHAR_CATEGORY_UPPERCASE_LETTER,
6620 UCHAR_CATEGORY_SPACING_MARK,
6621 UCHAR_CATEGORY_ENCLOSING_MARK,
6622 UCHAR_CATEGORY_NON_SPACING_MARK,
6623 UCHAR_CATEGORY_DECIMAL_NUMBER,
6624 UCHAR_CATEGORY_LETTER_NUMBER,
6625 UCHAR_CATEGORY_OTHER_NUMBER,
6626 UCHAR_CATEGORY_CONNECT_PUNCTUATION,
6627 UCHAR_CATEGORY_DASH_PUNCTUATION,
6628 UCHAR_CATEGORY_CLOSE_PUNCTUATION,
6629 UCHAR_CATEGORY_FINAL_PUNCTUATION,
6630 UCHAR_CATEGORY_INITIAL_PUNCTUATION,
6631 UCHAR_CATEGORY_OTHER_PUNCTUATION,
6632 UCHAR_CATEGORY_OPEN_PUNCTUATION,
6633 UCHAR_CATEGORY_CURRENCY_SYMBOL,
6634 UCHAR_CATEGORY_MODIFIER_SYMBOL,
6635 UCHAR_CATEGORY_MATH_SYMBOL,
6636 UCHAR_CATEGORY_OTHER_SYMBOL,
6637 UCHAR_CATEGORY_LINE_SEPARATOR,
6638 UCHAR_CATEGORY_PARAGRAPH_SEPARATOR,
6639 UCHAR_CATEGORY_SPACE_SEPARATOR
6697 UCHAR_BREAK_MANDATORY,
6698 UCHAR_BREAK_CARRIAGE_RETURN,
6699 UCHAR_BREAK_LINE_FEED,
6700 UCHAR_BREAK_COMBINING_MARK,
6701 UCHAR_BREAK_SURROGATE,
6702 UCHAR_BREAK_ZERO_WIDTH_SPACE,
6703 UCHAR_BREAK_INSEPARABLE,
6704 UCHAR_BREAK_NON_BREAKING_GLUE,
6705 UCHAR_BREAK_CONTINGENT,
6709 UCHAR_BREAK_BEFORE_AND_AFTER,
6711 UCHAR_BREAK_NON_STARTER,
6712 UCHAR_BREAK_OPEN_PUNCTUATION,
6713 UCHAR_BREAK_CLOSE_PUNCTUATION,
6714 UCHAR_BREAK_QUOTATION,
6715 UCHAR_BREAK_EXCLAMATION,
6716 UCHAR_BREAK_IDEOGRAPHIC,
6717 UCHAR_BREAK_NUMERIC,
6718 UCHAR_BREAK_INFIX_SEPARATOR,
6720 UCHAR_BREAK_ALPHABETIC,
6722 UCHAR_BREAK_POSTFIX,
6723 UCHAR_BREAK_COMPLEX_CONTEXT,
6724 UCHAR_BREAK_AMBIGUOUS,
6725 UCHAR_BREAK_UNKNOWN,
6726 UCHAR_BREAK_NEXT_LINE,
6727 UCHAR_BREAK_WORD_JOINER,
6728 UCHAR_BREAK_HANGUL_L_JAMO,
6729 UCHAR_BREAK_HANGUL_V_JAMO,
6730 UCHAR_BREAK_HANGUL_T_JAMO,
6731 UCHAR_BREAK_HANGUL_LV_SYLLABLE,
6732 UCHAR_BREAK_HANGUL_LVT_SYLLABLE,
6733 UCHAR_BREAK_CLOSE_PARANTHESIS,
6734 UCHAR_BREAK_CONDITIONAL_JAPANESE_STARTER,
6735 UCHAR_BREAK_HEBREW_LETTER,
6736 UCHAR_BREAK_REGIONAL_INDICATOR,
6737 UCHAR_BREAK_EMOJI_BASE,
6738 UCHAR_BREAK_EMOJI_MODIFIER,
6739 UCHAR_BREAK_ZERO_WIDTH_JOINER
6915 SCRIPT_INVALID_CODE = 0xFF,
6956 SCRIPT_CANADIAN_ABORIGINAL,
6978 SCRIPT_SYLOTI_NAGRI,
7006 SCRIPT_EGYPTIAN_HIEROGLYPHS,
7007 SCRIPT_IMPERIAL_ARAMAIC,
7008 SCRIPT_INSCRIPTIONAL_PAHLAVI,
7009 SCRIPT_INSCRIPTIONAL_PARTHIAN,
7013 SCRIPT_MEETEI_MAYEK,
7014 SCRIPT_OLD_SOUTH_ARABIAN,
7027 SCRIPT_MEROITIC_CURSIVE,
7028 SCRIPT_MEROITIC_HIEROGLYPHS,
7031 SCRIPT_SORA_SOMPENG,
7036 SCRIPT_CAUCASIAN_ALBANIAN,
7045 SCRIPT_MENDE_KIKAKUI,
7049 SCRIPT_OLD_NORTH_ARABIAN,
7051 SCRIPT_PAHAWH_HMONG,
7054 SCRIPT_PSALTER_PAHLAVI,
7061 SCRIPT_ANATOLIAN_HIEROGLYPHS,
7064 SCRIPT_OLD_HUNGARIAN,
7076 SCRIPT_MASARAM_GONDI,
7079 SCRIPT_ZANABAZAR_SQUARE,
7083 SCRIPT_GUNJALA_GONDI,
7084 SCRIPT_HANIFI_ROHINGYA,
7093 SCRIPT_NYIAKENG_PUACHUE_HMONG,
7446 LanguageCode* lang_code,
int* nr_scripts);
7457 typedef struct _FONTOPS FONTOPS;
7458 typedef struct _CHARSETOPS CHARSETOPS;
7475 char name [LEN_UNIDEVFONT_NAME + 1];
7491 CHARSETOPS* charset_ops;
7507 #define INV_LOGFONT 0 7586 const char* mchar,
int mchar_len,
7609 _WRN_PRINTF(
"deprecated\n");
7629 _WRN_PRINTF(
"deprecated\n");
7756 MG_EXPORT PLOGFONT GUIAPI
CreateLogFont (
const char* type,
const char* family,
7757 const char* charset,
char weight,
char slant,
char flip,
7758 char other,
char underline,
char struckout,
7759 int size,
int rotation);
7890 MG_EXPORT PLOGFONT GUIAPI
CreateLogFontEx (
const char* type,
const char* family,
7891 const char* charset,
char weight,
char slant,
char flip,
7892 char other,
char decoration,
char rendering,
7893 int size,
int rotation);
7927 #ifdef _MGCHARSET_UNICODE 8044 MG_EXPORT PLOGFONT GUIAPI
SelectFont (
HDC hdc, PLOGFONT log_font);
8130 const char *file_name);
8161 #define SYSLOGFONT_DEFAULT 0 8167 #define SYSLOGFONT_WCHAR_DEF 1 8173 #define SYSLOGFONT_FIXED 2 8179 #define SYSLOGFONT_CAPTION 3 8185 #define SYSLOGFONT_MENU 4 8191 #define SYSLOGFONT_CONTROL 5 8193 #define NR_SYSLOGFONTS 6 8196 extern MG_EXPORT PLOGFONT g_SysLogFont [];
8223 if (font_id >= 0 && font_id < NR_SYSLOGFONTS)
8224 return g_SysLogFont [font_id];
8226 return (PLOGFONT)
NULL;
8379 const char* mstr,
int len,
int* pos_chars);
8404 MG_EXPORT
int GUIAPI
GetTextWordInfo (PLOGFONT log_font,
const char* mstr,
8405 int len,
int* pos_words,
WORDINFO* info_words);
8423 const char* mstr,
int len);
8446 const char* mstr,
int len,
WORDINFO* word_info);
8480 int max_extent,
int* fit_chars,
int* pos_chars,
8481 int* dx_chars,
SIZE* size);
8492 const char* text,
int len,
int max_extent,
8493 int* fit_chars,
int* pos_chars,
int* dx_chars,
SIZE* size);
8495 #ifdef _MGCHARSET_UNICODE 8517 MG_EXPORT
int GUIAPI
MB2WCEx (PLOGFONT log_font,
void* dest,
BOOL wc32,
8518 const unsigned char* mstr,
int n);
8526 #define MB2WC(log_font, dest, mstr, n) \ 8527 MB2WCEx (log_font, dest, sizeof(wchar_t) == 4, mstr, n) 8546 MG_EXPORT
int GUIAPI
WC2MBEx (PLOGFONT log_font,
unsigned char *s, Uchar32 wc);
8554 #define WC2MB(log_font, s, wc) \ 8555 WC2MBEx (log_font, s, (Uchar32)wc) 8589 MG_EXPORT
int GUIAPI
MBS2WCSEx (PLOGFONT log_font,
void* dest,
BOOL wc32,
8590 const unsigned char* mstr,
int mstr_len,
int n,
8591 int* conved_mstr_len);
8599 #define MBS2WCS(log_font, dest, mstr, mstr_len, n) \ 8600 MBS2WCSEx(log_font, dest, sizeof (wchar_t) == 4, mstr, \ 8635 MG_EXPORT
int GUIAPI
WCS2MBSEx (PLOGFONT log_font,
unsigned char* dest,
8636 const void *wcs,
int wcs_len,
BOOL wc32,
int n,
8637 int* conved_wcs_len);
8645 #define WCS2MBS(log_font, dest, wcs, wcs_len, n) \ 8646 WCS2MBSEx (log_font, dest, wcs, wcs_len, sizeof (wchar_t) == 4, \ 8695 #define BIDI_FLAG_SHAPE_MIRRORING 0x00000001 8696 #define BIDI_FLAG_REORDER_NSM 0x00000002 8697 #define BIDI_FLAG_SHAPE_ARAB_PRES 0x00000100 8698 #define BIDI_FLAG_SHAPE_ARAB_LIGA 0x00000200 8699 #define BIDI_FLAG_SHAPE_ARAB_CONSOLE 0x00000400 8701 #define BIDI_FLAGS_DEFAULT \ 8702 (BIDI_FLAG_REORDER_NSM | BIDI_FLAG_REMOVE_SPECIALS) 8704 #define BIDI_FLAGS_ARABIC \ 8705 (BIDI_FLAG_SHAPE_ARAB_PRES | BIDI_FLAG_SHAPE_ARAB_LIGA) 8707 #define BIDI_FLAG_REMOVE_BIDI 0x00010000 8708 #define BIDI_FLAG_REMOVE_JOINING 0x00020000 8709 #define BIDI_FLAG_REMOVE_SPECIALS 0x00040000 8711 #define BIDI_BRACKET_NONE 0 8712 #define BIDI_BRACKET_OPEN_MASK 0x80000000 8713 #define BIDI_BRACKET_CHAR_MASK 0X7FFFFFFF 8714 #define BIDI_IS_BRACKET_OPEN(bt) ((bt & BIDI_BRACKET_OPEN_MASK)>0) 8715 #define BIDI_BRACKET_CHAR(bt) ((bt & BIDI_BRACKET_CHAR_MASK)) 8722 #define BIDI_TYPE_INVALID 0x0000 8724 #define BIDI_MASK_RTL 0x0001 8725 #define BIDI_MASK_ARABIC 0x0002 8726 #define BIDI_MASK_FIRST 0x0004 8727 #define BIDI_MASK_SEPARATOR 0x0008 8729 #define BIDI_MASK_STRONG 0x0010 8730 #define BIDI_MASK_WEAK 0x0020 8731 #define BIDI_MASK_NEUTRAL 0x0040 8732 #define BIDI_MASK_SENTINEL 0x0080 8735 #define BIDI_MASK_LETTER 0x0100 8736 #define BIDI_MASK_NUMBER 0x0200 8737 #define BIDI_MASK_NUMSEPTER 0x0300 8738 #define BIDI_MASK_SPACE 0x0400 8739 #define BIDI_MASK_EXPLICIT 0x0500 8740 #define BIDI_MASK_ISOLATE 0x0600 8741 #define BIDI_MASK_NSM 0x0700 8742 # define BIDI_TYPE_MASK 0x0700 8744 #define BIDI_MASK_OVERRIDE 0x8000 8747 #define BIDI_MASK_ES 0x1000 8748 #define BIDI_MASK_CS 0x2000 8749 #define BIDI_MASK_ET 0x3000 8750 #define BIDI_MASK_BS 0x4000 8751 #define BIDI_MASK_SS 0x5000 8752 #define BIDI_MASK_BN 0x6000 8753 #define BIDI_MASK_WS 0x7000 8754 # define BIDI_MISC_MASK 0x7000 8757 #define BIDI_MASK_PRIVATE 0x8000 8763 #define BIDI_TYPE_LTR \ 8764 (BIDI_MASK_STRONG | BIDI_MASK_LETTER) 8770 #define BIDI_TYPE_RTL \ 8771 (BIDI_MASK_STRONG | BIDI_MASK_LETTER | BIDI_MASK_RTL) 8777 #define BIDI_TYPE_AL \ 8778 (BIDI_MASK_STRONG | BIDI_MASK_LETTER | BIDI_MASK_RTL | BIDI_MASK_ARABIC) 8784 #define BIDI_TYPE_LRE \ 8785 (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT) 8791 #define BIDI_TYPE_RLE \ 8792 (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_RTL) 8798 #define BIDI_TYPE_LRO \ 8799 (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_OVERRIDE) 8805 #define BIDI_TYPE_RLO \ 8806 (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_RTL | BIDI_MASK_OVERRIDE) 8812 #define BIDI_TYPE_PDF \ 8813 (BIDI_MASK_WEAK | BIDI_MASK_EXPLICIT) 8819 #define BIDI_TYPE_EN \ 8820 (BIDI_MASK_WEAK | BIDI_MASK_NUMBER) 8826 #define BIDI_TYPE_AN \ 8827 (BIDI_MASK_WEAK | BIDI_MASK_NUMBER | BIDI_MASK_ARABIC) 8833 #define BIDI_TYPE_ES \ 8834 (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_ES) 8840 #define BIDI_TYPE_ET \ 8841 (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_ET) 8847 #define BIDI_TYPE_CS \ 8848 (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_CS) 8854 #define BIDI_TYPE_NSM \ 8855 (BIDI_MASK_WEAK | BIDI_MASK_NSM) 8861 #define BIDI_TYPE_BN \ 8862 (BIDI_MASK_WEAK | BIDI_MASK_SPACE | BIDI_MASK_BN) 8868 #define BIDI_TYPE_BS \ 8869 (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_SEPARATOR | BIDI_MASK_BS) 8875 #define BIDI_TYPE_SS \ 8876 (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_SEPARATOR | BIDI_MASK_SS) 8882 #define BIDI_TYPE_WS \ 8883 (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_WS) 8889 #define BIDI_TYPE_ON \ 8896 #define BIDI_TYPE_LRI \ 8897 (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE) 8903 #define BIDI_TYPE_RLI \ 8904 (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE | BIDI_MASK_RTL) 8910 #define BIDI_TYPE_FSI \ 8911 (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE | BIDI_MASK_FIRST) 8917 #define BIDI_TYPE_PDI \ 8918 (BIDI_MASK_NEUTRAL | BIDI_MASK_WEAK | BIDI_MASK_ISOLATE) 8920 #define BIDI_TYPE_SENTINEL (BIDI_MASK_SENTINEL) 8925 #define BIDI_TYPE_WLTR (BIDI_MASK_WEAK) 8927 #define BIDI_TYPE_WRTL (BIDI_MASK_WEAK | BIDI_MASK_RTL) 8930 #define BIDI_TYPE_SOT (BIDI_MASK_SENTINEL) 8932 #define BIDI_TYPE_EOT (BIDI_MASK_SENTINEL | BIDI_MASK_RTL) 8934 #define BIDI_TYPE_PRIVATE (BIDI_MASK_PRIVATE) 8937 #define BIDI_IS_PRIVATE(p) ((p) & BIDI_MASK_PRIVATE) 8940 #define BIDI_IS_RTL(p) ((p) & BIDI_MASK_RTL) 8943 #define BIDI_IS_ARABIC(p) ((p) & BIDI_MASK_ARABIC) 8946 #define BIDI_LEVEL_IS_RTL(lev) ((lev) & 1) 8950 #define BIDI_LEVEL_TO_DIR(lev) \ 8951 (BIDI_LEVEL_IS_RTL(lev) ? BIDI_TYPE_RTL : BIDI_TYPE_LTR) 8955 #define BIDI_DIR_TO_LEVEL(dir) \ 8956 ((BidiLevel) (BIDI_IS_RTL(dir) ? 1 : 0)) 8959 #define BIDI_IS_STRONG(p) ((p) & BIDI_MASK_STRONG) 8961 #define BIDI_IS_WEAK(p) ((p) & BIDI_MASK_WEAK) 8963 #define BIDI_IS_NEUTRAL(p) ((p) & BIDI_MASK_NEUTRAL) 8965 #define BIDI_IS_SENTINEL(p) ((p) & BIDI_MASK_SENTINEL) 8968 #define BIDI_IS_LETTER(p) (((p) & BIDI_TYPE_MASK) == BIDI_MASK_LETTER) 8971 #define BIDI_IS_NUMBER(p) (((p) & BIDI_TYPE_MASK) == BIDI_MASK_NUMBER) 8974 #define BIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR(p) \ 8975 (((p) & BIDI_TYPE_MASK) == BIDI_MASK_NUMSEPTER) 8978 #define BIDI_IS_SPACE(p) (((p) & BIDI_TYPE_MASK) == BIDI_MASK_SPACE) 8980 #define BIDI_IS_EXPLICIT(p) (((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) 8983 #define BIDI_IS_SEPARATOR(p) ((p) & BIDI_MASK_SEPARATOR) 8986 #define BIDI_IS_OVERRIDE(p) ((p) & BIDI_MASK_OVERRIDE) 8989 #define BIDI_IS_ISOLATE(p) (((p) & BIDI_TYPE_MASK) == BIDI_MASK_ISOLATE) 8992 #define BIDI_IS_LTR_LETTER(p) \ 8993 ((p) & (BIDI_MASK_LETTER | BIDI_MASK_RTL) == BIDI_MASK_LETTER) 8996 #define BIDI_IS_RTL_LETTER(p) \ 8997 ((p) & (BIDI_MASK_LETTER | BIDI_MASK_RTL) \ 8998 == (BIDI_MASK_LETTER | BIDI_MASK_RTL)) 9001 #define BIDI_IS_ES_OR_CS(p) \ 9002 (((p) & BIDI_MISC_MASK) == BIDI_MASK_ES || \ 9003 ((p) & BIDI_MISC_MASK) == BIDI_MASK_CS) 9006 #define BIDI_NUMBER_TO_RTL(p) \ 9007 (BIDI_IS_NUMBER(p) ? BIDI_TYPE_RTL : (p)) 9010 #define BIDI_IS_EXPLICIT_OR_BN(p) \ 9011 ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \ 9012 (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN)) 9015 #define BIDI_IS_EXPLICIT_OR_BN_OR_WS(p) \ 9016 ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \ 9017 (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN) || \ 9018 (((p) & BIDI_MISC_MASK) == BIDI_MASK_WS)) 9021 #define BIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS(p) \ 9022 ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \ 9023 ((p) & BIDI_MASK_SEPARATOR) || \ 9024 (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN) || \ 9025 (((p) & BIDI_MISC_MASK) == BIDI_MASK_WS)) 9028 #define BIDI_IS_EXPLICIT_OR_BN_OR_NSM(p) \ 9029 ((((p) & BIDI_TYPE_MASK) == BIDI_MASK_EXPLICIT) || \ 9030 (((p) & BIDI_TYPE_MASK) == BIDI_MASK_NSM) || \ 9031 (((p) & BIDI_MISC_MASK) == BIDI_MASK_BN)) 9035 #define BIDI_EXPLICIT_TO_OVERRIDE_DIR(p) \ 9036 (BIDI_IS_OVERRIDE(p) ? BIDI_LEVEL_TO_DIR(BIDI_DIR_TO_LEVEL(p)) \ 9040 #define BIDI_CHANGE_NUMBER_TO_RTL(p) \ 9041 (BIDI_IS_NUMBER(p) ? BIDI_TYPE_RTL : (p)) 9043 #define BIDI_PGDIR_LTR BIDI_TYPE_LTR 9044 #define BIDI_PGDIR_RTL BIDI_TYPE_RTL 9045 #define BIDI_PGDIR_WLTR BIDI_TYPE_WLTR 9046 #define BIDI_PGDIR_WRTL BIDI_TYPE_WRTL 9047 #define BIDI_PGDIR_ON BIDI_TYPE_ON 9053 #define BIDI_MASK_JOINS_RIGHT 0x01 9054 #define BIDI_MASK_JOINS_LEFT 0x02 9055 #define BIDI_MASK_ARAB_SHAPES 0x04 9056 #define BIDI_MASK_TRANSPARENT 0x08 9057 #define BIDI_MASK_IGNORED 0x10 9058 #define BIDI_MASK_LIGATURED 0x20 9065 #define BIDI_JOINING_TYPE_U_VAL ( 0 ) 9068 #define BIDI_JOINING_TYPE_R_VAL \ 9069 ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_ARAB_SHAPES ) 9072 #define BIDI_JOINING_TYPE_D_VAL \ 9073 ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT \ 9074 | BIDI_MASK_ARAB_SHAPES ) 9077 #define BIDI_JOINING_TYPE_C_VAL \ 9078 ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) 9081 #define BIDI_JOINING_TYPE_L_VAL \ 9082 ( BIDI_MASK_JOINS_LEFT | BIDI_MASK_ARAB_SHAPES ) 9085 #define BIDI_JOINING_TYPE_T_VAL \ 9086 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_ARAB_SHAPES ) 9089 #define BIDI_JOINING_TYPE_G_VAL ( BIDI_MASK_IGNORED ) 9098 #define BIDI_IS_JOINING_TYPE_U(p) \ 9100 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9101 | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) ) ) 9104 #define BIDI_IS_JOINING_TYPE_R(p) \ 9105 ( BIDI_MASK_JOINS_RIGHT == ( (p) & \ 9106 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9107 | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) ) ) 9110 #define BIDI_IS_JOINING_TYPE_D(p) \ 9111 ( ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT \ 9112 | BIDI_MASK_ARAB_SHAPES ) == ( (p) & \ 9113 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9114 | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT \ 9115 | BIDI_MASK_ARAB_SHAPES ) ) ) 9118 #define BIDI_IS_JOINING_TYPE_C(p) \ 9119 ( ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) == ( (p) & \ 9120 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9121 | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT \ 9122 | BIDI_MASK_ARAB_SHAPES ) ) ) 9125 #define BIDI_IS_JOINING_TYPE_L(p) \ 9126 ( BIDI_MASK_JOINS_LEFT == ( (p) & \ 9127 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9128 | BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT ) ) ) 9131 #define BIDI_IS_JOINING_TYPE_T(p) \ 9132 ( BIDI_MASK_TRANSPARENT == ( (p) & \ 9133 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED ) ) ) 9136 #define BIDI_IS_JOINING_TYPE_G(p) \ 9137 ( BIDI_MASK_IGNORED == ( (p) & \ 9138 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED ) ) ) 9143 #define BIDI_IS_JOINING_TYPE_RC(p) \ 9144 ( BIDI_MASK_JOINS_RIGHT == ( (p) & \ 9145 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9146 | BIDI_MASK_JOINS_RIGHT ) ) ) 9149 #define BIDI_IS_JOINING_TYPE_LC(p) \ 9150 ( BIDI_MASK_JOINS_LEFT == ( (p) & \ 9151 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9152 | BIDI_MASK_JOINS_LEFT ) ) ) 9160 #define BIDI_JOINS_RIGHT(p) ((p) & BIDI_MASK_JOINS_RIGHT) 9163 #define BIDI_JOINS_LEFT(p) ((p) & BIDI_MASK_JOINS_LEFT) 9166 #define BIDI_ARAB_SHAPES(p) ((p) & BIDI_MASK_ARAB_SHAPES) 9169 #define BIDI_IS_JOIN_SKIPPED(p) \ 9170 ((p) & (BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED)) 9173 #define BIDI_IS_JOIN_BASE_SHAPES(p) \ 9174 ( BIDI_MASK_ARAB_SHAPES == ( (p) & \ 9175 ( BIDI_MASK_TRANSPARENT | BIDI_MASK_IGNORED \ 9176 | BIDI_MASK_ARAB_SHAPES ) ) ) 9178 #define BIDI_JOINS_PRECEDING_MASK(level) \ 9179 (BIDI_LEVEL_IS_RTL (level) ? BIDI_MASK_JOINS_RIGHT \ 9180 : BIDI_MASK_JOINS_LEFT) 9182 #define BIDI_JOINS_FOLLOWING_MASK(level) \ 9183 (BIDI_LEVEL_IS_RTL (level) ? BIDI_MASK_JOINS_LEFT \ 9184 : BIDI_MASK_JOINS_RIGHT) 9186 #define BIDI_JOIN_SHAPE(p) \ 9187 ((p) & ( BIDI_MASK_JOINS_RIGHT | BIDI_MASK_JOINS_LEFT )) 9191 #ifdef _MGCHARSET_UNICODE 9320 const BidiType *bidi_types,
int len_ucs,
9321 BidiBracketType *bracket_types);
9392 BidiJoiningType *joining_types);
9462 const BidiType *bidi_types,
9463 const BidiBracketType* bracket_types,
int len,
9464 ParagraphDir *paragraph_dir, BidiLevel *embedding_levels);
9502 const Uchar32* ucs,
int nr_ucs,
9503 ParagraphDir *paragraph_dir, BidiLevel *embedding_levels);
9514 typedef void (*CB_REVERSE_ARRAY) (
void* extra,
int len,
int pos);
9576 const BidiType *bidi_types,
int len,
int off,
9577 ParagraphDir paragraph_dir, BidiLevel *embedding_levels,
9578 Uchar32 *visual_str,
int *indices_map,
9579 void* extra, CB_REVERSE_ARRAY cb_reverse_extra);
9604 int len, Uchar32* ucs);
9640 const BidiLevel *embedding_levels,
int len,
9641 BidiArabicProp *ar_props);
9681 const BidiLevel *embedding_levels,
int len,
9682 BidiArabicProp *ar_props, Uchar32* ucs);
9717 const BidiLevel *embedding_levels,
int len,
9718 BidiArabicProp *ar_props, Uchar32* ucs);
9738 #define CTR_NONE 0x00 9740 #define CTR_CASE_MASK 0x0F 9748 #define CTR_CAPITALIZE 0x01 9755 #define CTR_UPPERCASE 0x02 9762 #define CTR_LOWERCASE 0x03 9772 #define CTR_FULL_WIDTH 0x10 9783 #define CTR_FULL_SIZE_KANA 0x20 9802 #define WBR_NORMAL 0x00 9809 #define WBR_BREAK_ALL 0x01 9816 #define WBR_KEEP_ALL 0x02 9835 #define LBP_NORMAL 0x00 9843 #define LBP_LOOSE 0x01 9850 #define LBP_STRICT 0x02 9862 #define LBP_ANYWHERE 0x03 9882 #define BOV_UNKNOWN 0x0000 9886 #define BOV_WHITESPACE 0x8000 9890 #define BOV_EXPANDABLE_SPACE 0x0800 9895 #define BOV_ZERO_WIDTH 0x0080 9897 #define BOV_GB_MASK 0x7000 9901 #define BOV_GB_CHAR_BREAK 0x1000 9906 #define BOV_GB_CURSOR_POS 0x2000 9911 #define BOV_GB_BACKSPACE_DEL_CH 0x4000 9913 #define BOV_WB_MASK 0x0700 9917 #define BOV_WB_WORD_BOUNDARY 0x0100 9921 #define BOV_WB_WORD_START 0x0200 9925 #define BOV_WB_WORD_END 0x0400 9927 #define BOV_SB_MASK 0x0070 9931 #define BOV_SB_SENTENCE_BOUNDARY 0x0010 9935 #define BOV_SB_SENTENCE_START 0x0020 9939 #define BOV_SB_SENTENCE_END 0x0040 9941 #define BOV_LB_MASK 0x000F 9942 #define BOV_LB_BREAK_FLAG 0x0004 9943 #define BOV_LB_MANDATORY_FLAG 0x0008 9947 #define BOV_LB_ALLOWED (BOV_LB_BREAK_FLAG | 0x0001) 9951 #define BOV_LB_MANDATORY (BOV_LB_BREAK_FLAG | BOV_LB_MANDATORY_FLAG | 0x0002) 9955 #define BOV_LB_NOTALLOWED 0x0003 10025 Uchar32* ucs,
int nr_ucs, BreakOppo** break_oppos);
10027 MG_EXPORT
void GUIAPI UStrTailorBreaks(ScriptType writing_system,
10028 const Uchar32* ucs,
int nr_ucs, BreakOppo* break_oppos);
10149 Uchar32 *result,
int result_len);
10247 iso15924[2], iso15924[1], iso15924[0]));
10250 typedef enum _UVerticalOrient {
10258 GLYPH_RUN_DIR_LTR = 0,
10265 GLYPH_GRAVITY_SOUTH = 0,
10266 GLYPH_GRAVITY_EAST,
10267 GLYPH_GRAVITY_NORTH,
10268 GLYPH_GRAVITY_WEST,
10269 GLYPH_GRAVITY_AUTO,
10273 GLYPH_GRAVITY_POLICY_NATURAL,
10274 GLYPH_GRAVITY_POLICY_STRONG,
10275 GLYPH_GRAVITY_POLICY_LINE,
10276 GLYPH_GRAVITY_POLICY_MIXED,
10277 } GlyphGravityPolicy;
10302 MG_EXPORT GlyphGravity GUIAPI ScriptGetGlyphGravity(ScriptType script,
10303 BOOL vertical, GlyphGravity base_gravity, GlyphGravityPolicy policy);
10333 GlyphGravity ScriptGetGlyphGravityForWide (ScriptType script,
10335 GlyphGravity base_gravity, GlyphGravityPolicy policy);
10395 const char* spText,
int len,
SIZE* pSize);
10418 const char* spText,
int len,
SIZE* pSize);
10426 #define GetTextCharacterExtra(hdc) GetDCAttr (hdc, DC_ATTR_CHAR_EXTRA) 10434 #define GetTextWordExtra(hdc) GetDCAttr (hdc, DC_ATTR_WORD_EXTRA) 10442 #define GetTextAboveLineExtra(hdc) GetDCAttr (hdc, DC_ATTR_ALINE_EXTRA) 10450 #define GetTextBellowLineExtra(hdc) GetDCAttr (hdc, DC_ATTR_BLINE_EXTRA) 10459 #define SetTextCharacterExtra(hdc, extra) \ 10460 SetDCAttr (hdc, DC_ATTR_CHAR_EXTRA, (DWORD) extra) 10469 #define SetTextWordExtra(hdc, extra) \ 10470 SetDCAttr (hdc, DC_ATTR_WORD_EXTRA, (DWORD) extra) 10478 #define SetTextAboveLineExtra(hdc, extra) \ 10479 SetDCAttr (hdc, DC_ATTR_ALINE_EXTRA, (DWORD) extra) 10487 #define SetTextBellowLineExtra(hdc, extra) \ 10488 SetDCAttr (hdc, DC_ATTR_BLINE_EXTRA, (DWORD) extra) 10490 #define TA_LEFT 0x0000 10491 #define TA_RIGHT 0x0001 10492 #define TA_CENTER 0x0002 10493 #define TA_X_MASK 0x000F 10495 #define TA_TOP 0x0000 10496 #define TA_BASELINE 0x0010 10497 #define TA_BOTTOM 0x0020 10498 #define TA_Y_MASK 0x00F0 10500 #define TA_NOUPDATECP 0x0000 10501 #define TA_UPDATECP 0x0100 10502 #define TA_CP_MASK 0x0F00 10555 #define GetTextAlign(hdc) GetDCAttr (hdc, DC_ATTR_TEXT_ALIGN) 10613 #define SetTextAlign(hdc, ta_flags) \ 10614 SetDCAttr (hdc, DC_ATTR_TEXT_ALIGN, (DWORD)ta_flags) 10616 #define BIDI_FLAG_LTR 0x00 10617 #define BIDI_FLAG_RTL 0x10 10619 #define GetBIDIFlags(hdc) \ 10620 GetDCAttr (hdc, DC_ATTR_BIDI_FLAGS) 10622 #define SetBIDIFlags(hdc, bidi_flags) \ 10623 SetDCAttr (hdc, DC_ATTR_BIDI_FLAGS, (DWORD)bidi_flags) 10644 const char* spText,
int len);
10669 const char *mtext,
int len,
int max_extent);
10693 const char* spText,
int len);
10722 const char* spText,
int nCount,
10723 int nTabPositions,
int *pTabPositions,
int nTabOrigin);
10744 #define TextOut(hdc, x, y, text) TextOutLen (hdc, x, y, text, -1) 10754 #define TabbedTextOut(hdc, x, y, text) TabbedTextOutLen (hdc, x, y, text, -1) 10756 #define DT_TOP 0x00000000 10757 #define DT_LEFT 0x00000000 10758 #define DT_CENTER 0x00000001 10759 #define DT_RIGHT 0x00000002 10760 #define DT_VCENTER 0x00000004 10761 #define DT_BOTTOM 0x00000008 10762 #define DT_WORDBREAK 0x00000010 10763 #define DT_SINGLELINE 0x00000020 10764 #define DT_EXPANDTABS 0x00000040 10765 #define DT_TABSTOP 0x00000080 10766 #define DT_NOCLIP 0x00000100 10767 #define DT_EXTERNALLPADING 0x00000200 10768 #define DT_CALCRECT 0x00000400 10769 #define DT_NOPREFIX 0x00000800 10770 #define DT_INTERNAL 0x00001000 10771 #define DT_CHARBREAK 0x00002000 10865 MG_EXPORT
int GUIAPI
DrawTextEx2 (
HDC hdc,
const char* pText,
int nCount,
10877 #define DrawText(hdc, text, n, rc, format) \ 10878 DrawTextEx2 (hdc, text, n, rc, 0, format, NULL) 10888 #define DrawTextEx(hdc, text, n, rc, indent, format) \ 10889 DrawTextEx2 (hdc, text, n, rc, indent, format, NULL) 10901 #define MYBMP_TYPE_NORMAL 0x00000000 10902 #define MYBMP_TYPE_RLE4 0x00000001 10903 #define MYBMP_TYPE_RLE8 0x00000002 10904 #define MYBMP_TYPE_RGB 0x00000003 10905 #define MYBMP_TYPE_BGR 0x00000004 10906 #define MYBMP_TYPE_RGBA 0x00000005 10907 #define MYBMP_TYPE_MASK 0x0000000F 10909 #define MYBMP_FLOW_DOWN 0x00000010 10910 #define MYBMP_FLOW_UP 0x00000020 10911 #define MYBMP_FLOW_MASK 0x000000F0 10913 #define MYBMP_TRANSPARENT 0x00000100 10914 #define MYBMP_ALPHACHANNEL 0x00000200 10915 #define MYBMP_ALPHA 0x00000400 10917 #define MYBMP_RGBSIZE_3 0x00001000 10918 #define MYBMP_RGBSIZE_4 0x00002000 10920 #define MYBMP_LOAD_GRAYSCALE 0x00010000 10921 #define MYBMP_LOAD_ALLOCATE_ONE 0x00020000 10922 #define MYBMP_LOAD_NONE 0x00000000 10963 Uint8 reserved [2];
10980 #define BMP_TYPE_NORMAL 0x00 10981 #define BMP_TYPE_RLE 0x01 10982 #define BMP_TYPE_ALPHA 0x02 10983 #define BMP_TYPE_ALPHACHANNEL 0x04 10984 #define BMP_TYPE_COLORKEY 0x10 10985 #define BMP_TYPE_ALPHA_MASK 0x20 10986 #define BMP_TYPE_REPLACEKEY 0x40 11118 void (*cleanup) (
void* init_info),
11180 #define MLS_BLENDMODE_NONE 0x00 11181 #define MLS_BLENDMODE_COLORKEY 0x01 11182 #define MLS_BLENDMODE_ALPHA 0x02 11184 #define MLS_INFOMASK_OFFSET 0x01 11185 #define MLS_INFOMASK_BLEND 0x02 11186 #define MLS_INFOMASK_ZORDER 0x04 11187 #define MLS_INFOMASK_ALL 0x07 11188 #define MLS_INFOMASK_ENABLE 0x08 11190 MG_EXPORT
BOOL GUIAPI mlsSetSlaveScreenInfo (
HDC dc_mls,
DWORD mask,
int offset_x,
int offset_y,
11191 DWORD blend_flags,
gal_pixel color_key,
int alpha,
int z_order);
11193 MG_EXPORT
BOOL GUIAPI mlsGetSlaveScreenInfo (
HDC dc_mls,
DWORD mask,
int* offset_x,
int* offset_y,
11194 DWORD blend_flags,
gal_pixel* color_key,
int* alpha,
int* z_order);
11210 #define ERR_BMP_OK 0 11211 #define ERR_BMP_IMAGE_TYPE -1 11212 #define ERR_BMP_UNKNOWN_TYPE -2 11213 #define ERR_BMP_CANT_READ -3 11214 #define ERR_BMP_CANT_SAVE -4 11215 #define ERR_BMP_NOT_SUPPORTED -5 11216 #define ERR_BMP_MEM -6 11217 #define ERR_BMP_LOAD -7 11218 #define ERR_BMP_FILEIO -8 11219 #define ERR_BMP_OTHER -9 11220 #define ERR_BMP_ERROR_SOURCE -10 11288 MG_RWops* area,
const char* ext) {
11300 const char* spFileName);
11308 #define LoadBitmap LoadBitmapFromFile 11318 const void* mem,
size_t size,
const char* ext);
11476 const char* file_name);
11484 #define LoadMyBitmap LoadMyBitmapFromFile 11502 const void* mem,
size_t size,
const char* ext);
11517 #ifdef _MGMISC_SAVEBITMAP 11536 const char* spFileName);
11554 const char* spFileName);
11555 #define SaveBitmap SaveBitmapToFile 11580 BYTE* bits, PBITMAP bmp);
11646 typedef struct GAL_PixelFormat {
11649 Uint8 BitsPerPixel;
11650 Uint8 BytesPerPixel;
11652 Uint8 DitheredPalette;
11676 #define _FILL_MYBITMAP 11678 #ifndef MYBITMAP_CONTXT 11679 typedef struct _MYBITMAP_CONTXT{
11682 GAL_PixelFormat* AlphaPixelFormat;
11687 typedef BYTE* (* CB_DRAW_PIXEL) (
HDC hdc, MYBITMAP_CONTXT* mybmp,
Uint32 pixel,
BYTE* dest);
11705 const MYBITMAP* my_bmp,
const RGB* pal,
int frame);
11733 MG_EXPORT
void GUIAPI Expand16CBitmapEx (
HDC hdc,
BYTE* bits,
Uint32 pitch,
11763 Expand16CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
11764 w, h, flags, pal,
FALSE, 0xFF);
11767 MG_EXPORT
void GUIAPI Expand256CBitmapEx (
HDC hdc,
BYTE* bits,
Uint32 pitch,
11771 CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
11799 CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp)
11801 Expand256CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
11802 w, h, flags, pal,
FALSE, 0xFF, cb_draw, mybmp);
11831 CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
11848 CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp,
11851 #ifdef _FILL_MYBITMAP 11852 MG_EXPORT
int GUIAPI FillBoxWithMyBitmap (
HDC hdc,
int x,
int y,
MYBITMAP* mybmp,
RGB* pal);
11854 MG_EXPORT
void GUIAPI ExpandPartMonoBitmap (
HDC hdc,
BYTE* bits,
Uint32 pitch,
11857 int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
11859 MG_EXPORT
void GUIAPI ExpandPart16CBitmapEx (
HDC hdc,
BYTE* bits,
Uint32 pitch,
11863 int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp);
11865 static inline void GUIAPI ExpandPart16CBitmap (
HDC hdc,
BYTE* bits,
Uint32 pitch,
11868 int stepx, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT* mybmp)
11870 ExpandPart16CBitmapEx (hdc, bits, pitch, my_bits, my_pitch,
11871 w, h, flags, pal,
FALSE, 0xFF, stepx, cb_draw, mybmp);
11876 #define CompileRGBBitmap CompileRGBABitmap 11924 const char* spFileName);
11943 const void* mem,
size_t size,
const char* ext);
11996 int w,
int h,
const char* spFileName);
12017 int w,
int h,
const void* mem,
size_t size,
const char* ext);
12019 #ifdef _MGHAVE_FIXED_MATH 12037 int lx,
int ty,
int angle);
12050 int lx,
int ty,
int angle);
12061 int lx,
int ty,
int angle);
12072 int lx,
int ty,
int angle,
int w,
int h);
12086 int lx,
int ty,
int angle,
int w,
int h);
12100 int lx,
int ty,
int angle,
int w,
int h);
12114 int lx,
int ty,
int cx,
int cy,
int angle);
12154 #ifdef _MGFONT_BMPF 12174 const BITMAP* glyph_bmp,
const char* start_mchar,
int nr_glyphs,
12193 const char* start_mchar,
int nr_glyphs,
int glyph_width);
12277 #define INV_ACHAR_VALUE 0xFFFFFFFF 12282 #define INV_GLYPH_VALUE 0xFFFFFFFF 12298 int mchar_len,
const char* pre_mchar,
int pre_len);
12300 #ifdef _MGCHARSET_UNICODE 12320 int mchar_len, Uchar32* uc);
12386 int mchar_len, ACHARSHAPETYPE shape_type);
12410 Achar32* mirrored);
12438 typedef struct _ACHARMAPINFO {
12472 const char* text,
int text_len, Achar32** achars,
12501 const char* text,
int text_len,
int start_index,
int end_index,
12502 int** ranges,
int* nr_ranges);
12529 const char* text,
int text_len, Achar32** achars,
12566 Achar32* achars,
int nr_achars,
int pel,
12567 void* extra, CB_REVERSE_ARRAY cb_reverse_extra);
12596 Achar32* achars,
int nr_achars,
ACHARMAPINFO* achars_map);
12626 MG_EXPORT
void GUIAPI BIDIGetLogicalEmbedLevelsEx (
LOGFONT* log_font,
12627 Achar32* achars,
int nr_achars,
int pel,
Uint8** embedding_levels);
12629 static inline void BIDIGetLogicalEmbeddLevels (
LOGFONT* log_font,
12630 Achar32* achars,
int nr_achars,
Uint8** embedding_levels)
12632 BIDIGetLogicalEmbedLevelsEx (log_font, achars, nr_achars, -1,
12667 MG_EXPORT
void GUIAPI BIDIGetVisualEmbedLevelsEx (
LOGFONT* log_font,
12668 Achar32* achars,
int nr_achars,
int pel,
Uint8** embedding_levels);
12670 static inline void BIDIGetVisualEmbeddLevels (
LOGFONT* log_font,
12671 Achar32* achars,
int nr_achars,
Uint8** embedding_levels)
12673 BIDIGetVisualEmbedLevelsEx (log_font, achars, nr_achars, -1,
12699 MG_EXPORT
int GUIAPI DrawACharString (
HDC hdc,
int x,
int y, Achar32* achars,
12700 int nr_achars,
int* adv_x,
int* adv_y);
12739 int nr_achars,
int max_extent,
SIZE* size);
12755 int mchar_len,
const char* pre_mchar,
int pre_len);
12787 MG_EXPORT
int GUIAPI
DrawGlyph (
HDC hdc,
int x,
int y, Glyph32 glyph_value,
12788 int* adv_x,
int* adv_y);
12809 MG_EXPORT
int GUIAPI DrawGlyphString (
HDC hdc, Glyph32* glyphs,
int nr_glyphs,
12851 int nr_glyphs,
int max_extent,
SIZE* size);
12853 #define GLYPH_INFO_METRICS 0x01 12854 #define GLYPH_INFO_BMP 0x02 12857 #define GLYPHBMP_TYPE_MONO 0x00 12859 #define GLYPHBMP_TYPE_GREY 0x01 12861 #define GLYPHBMP_TYPE_GREY4b 0x02 12863 #define GLYPHBMP_TYPE_SUBPIXEL 0x03 12865 #define GLYPHBMP_TYPE_PRERENDER 0x04 12871 typedef struct _GLYPHINFO {
12881 int bbox_x, bbox_y, bbox_w, bbox_h;
12883 int advance_x, advance_y;
12902 const unsigned char* bits;
12931 #ifdef _MGCHARSET_UNICODE 12950 #define WSR_NORMAL 0x00 12960 #define WSR_PRE 0x01 12968 #define WSR_NOWRAP 0x02 12976 #define WSR_PRE_WRAP 0x03 12992 #define WSR_BREAK_SPACES 0x04 13001 #define WSR_PRE_LINE 0x05 13043 const char* mstr,
int mstr_len,
Uint8 wsr,
13044 Uchar32** uchars,
int* nr_uchars);
13083 Uchar32* ucs,
int n);
13096 #define UCHAR2ACHAR(uc) ((uc) | 0x80000000) 13143 Achar32* acs,
int n);
13161 #define GRF_WRITING_MODE_MASK 0xF0000000 13162 #define GRF_WRITING_MODE_VERTICAL_FLAG 0x20000000 13167 #define GRF_WRITING_MODE_HORIZONTAL_TB 0x00000000 13173 #define GRF_WRITING_MODE_HORIZONTAL_BT 0x10000000 13179 #define GRF_WRITING_MODE_VERTICAL_RL 0x20000000 13185 #define GRF_WRITING_MODE_VERTICAL_LR 0x30000000 13187 #define GRF_TEXT_ORIENTATION_MASK 0x0F000000 13192 #define GRF_TEXT_ORIENTATION_UPRIGHT 0x00000000 13197 #define GRF_TEXT_ORIENTATION_SIDEWAYS 0x01000000 13202 #define GRF_TEXT_ORIENTATION_UPSIDE_DOWN 0x02000000 13207 #define GRF_TEXT_ORIENTATION_SIDEWAYS_LEFT 0x03000000 13212 #define GRF_TEXT_ORIENTATION_AUTO 0x04000000 13220 #define GRF_TEXT_ORIENTATION_MIXED 0x05000000 13222 #define GRF_TEXT_ORIENTATION_LINE 0x06000000 13224 #define GRF_LINE_EXTENT_MASK 0x00C00000 13230 #define GRF_LINE_EXTENT_FIXED 0x00000000 13236 #define GRF_LINE_EXTENT_VARIABLE 0x00400000 13238 #define GRF_INDENT_MASK 0x00300000 13242 #define GRF_INDENT_NONE 0x00000000 13246 #define GRF_INDENT_FIRST_LINE 0x00100000 13250 #define GRF_INDENT_HANGING 0x00200000 13252 #define GRF_OVERFLOW_WRAP_MASK 0x000C0000 13256 #define GRF_OVERFLOW_WRAP_NORMAL 0x00000000 13260 #define GRF_OVERFLOW_WRAP_BREAK_WORD 0x00040000 13266 #define GRF_OVERFLOW_WRAP_ANYWHERE 0x00080000 13268 #define GRF_OVERFLOW_ELLIPSIZE_MASK 0x00030000 13272 #define GRF_OVERFLOW_ELLIPSIZE_NONE 0x00000000 13276 #define GRF_OVERFLOW_ELLIPSIZE_START 0x00010000 13280 #define GRF_OVERFLOW_ELLIPSIZE_MIDDLE 0x00020000 13284 #define GRF_OVERFLOW_ELLIPSIZE_END 0x00030000 13286 #define GRF_ALIGN_MASK 0x0000F000 13290 #define GRF_ALIGN_START 0x00000000 13294 #define GRF_ALIGN_END 0x00001000 13299 #define GRF_ALIGN_LEFT 0x00002000 13304 #define GRF_ALIGN_RIGHT 0x00003000 13308 #define GRF_ALIGN_CENTER 0x00004000 13316 #define GRF_ALIGN_JUSTIFY 0x00005000 13318 #define GRF_TEXT_JUSTIFY_MASK 0x00000F00 13322 #define GRF_TEXT_JUSTIFY_NONE 0x00000000 13328 #define GRF_TEXT_JUSTIFY_AUTO 0x00000100 13332 #define GRF_TEXT_JUSTIFY_INTER_WORD 0x00000200 13337 #define GRF_TEXT_JUSTIFY_INTER_CHAR 0x00000300 13339 #define GRF_HANGING_PUNC_MASK 0x000000F0 13343 #define GRF_HANGING_PUNC_NONE 0x00000000 13347 #define GRF_HANGING_PUNC_FORCE_END 0x00000010 13352 #define GRF_HANGING_PUNC_ALLOW_END 0x00000020 13356 #define GRF_HANGING_PUNC_OPEN 0x00000040 13360 #define GRF_HANGING_PUNC_CLOSE 0x00000080 13362 #define GRF_SPACES_MASK 0x0000000F 13366 #define GRF_SPACES_KEEP 0x00000000 13370 #define GRF_SPACES_REMOVE_START 0x00000001 13374 #define GRF_SPACES_REMOVE_END 0x00000002 13378 #define GRF_SPACES_HANGE_END 0x00000004 13383 GLYPH_ORIENT_UPRIGHT = GLYPH_GRAVITY_SOUTH,
13384 GLYPH_ORIENT_SIDEWAYS = GLYPH_GRAVITY_EAST,
13385 GLYPH_ORIENT_UPSIDE_DOWN = GLYPH_GRAVITY_NORTH,
13386 GLYPH_ORIENT_SIDEWAYS_LEFT = GLYPH_GRAVITY_WEST,
13390 GLYPH_HANGED_NONE = 0,
13391 GLYPH_HANGED_START,
13570 const Achar32* uchars,
int nr_uchars,
const BreakOppo* break_oppos,
13571 Uint32 render_flags,
int x,
int y,
13572 int letter_spacing,
int word_spacing,
int tab_size,
int max_extent,
13603 MG_EXPORT
int GUIAPI DrawGlyphStringEx (
HDC hdc,
13605 const Glyph32* glyphs,
const GLYPHPOS* glyph_pos,
13655 const Uchar32* ucs,
int nr_ucs,
13656 LanguageCode lang_code, ParagraphDir base_dir,
13658 BreakOppo* break_oppos);
13678 int start_index,
int length,
const char* logfont_name);
13686 const TEXTRUNS* truns,
int index);
13706 int start_index,
int length,
RGBCOLOR color);
13714 const TEXTRUNS* truns,
int index);
13737 int start_index,
int length,
RGBCOLOR color);
13745 const TEXTRUNS* truns,
int index);
13800 #ifdef _MGCOMPLEX_SCRIPTS 13887 const BreakOppo* break_oppos,
BOOL persist_lines,
13888 int max_line_extent,
int indent,
13889 int letter_spacing,
int word_spacing,
int tab_size,
13890 int* tabs,
int nr_tabs);
13912 typedef struct _RENDERDATA {
13969 Glyph32 glyph_value,
const GLYPHPOS* glyph_pos,
13970 const RENDERDATA* render_data);
14069 int* x,
int* y,
int line_height,
RECT* line_rc);
14107 int max_line_extent,
int max_height,
int line_height,
14108 int x,
int y,
RECT* bounding);
14139 MG_EXPORT
BOOL DrawShapedGlyph(
HDC hdc,
14140 Glyph32 glyph_value,
const GLYPHPOS* glyph_pos,
14141 const RENDERDATA* render_data);
14177 #ifdef _MGDEVEL_MODE 14178 typedef struct _TextRun TEXTRUN;
14180 MG_EXPORT TEXTRUN* GetNextTextRunInfo(
TEXTRUNS* runinfo,
14182 const char** fontname,
int* start_index,
int* length,
14183 LanguageCode* lang_code, ScriptType* script,
14184 BidiLevel* embedding_level,
Uint8* flags);
14188 int* max_extent,
int* nr_chars,
int* nr_glyphs,
14189 int** log_widths,
int* width,
int* height,
14190 BOOL* is_ellipsized,
BOOL* is_wrapped);
14203 typedef struct _COMP_CTXT {
14208 void* user_comp_ctxt;
14224 typedef struct _SPAN_CTXT {
14225 GAL_PixelFormat* dst_format;
14226 GAL_PixelFormat* src_format;
14227 void * user_context;
14234 typedef struct _COMPOSITE_CTXT {
14237 const int *far_bkmode;
14238 const int *far_step;
14251 typedef void (*CB_COMP_SETPIXEL) (COMP_CTXT* comp_ctxt);
14262 typedef void (*CB_COMP_SETHLINE) (COMP_CTXT* comp_ctxt,
int w);
14273 typedef void (*CB_COMP_PUTHLINE) (COMP_CTXT* comp_ctxt,
gal_uint8* src,
int bkmode,
int w);
14296 MG_EXPORT
int GUIAPI SetUserCompositionOps (
HDC hdc,
14297 CB_COMP_SETPIXEL comp_setpixel,
14298 CB_COMP_SETHLINE comp_sethline,
14299 CB_COMP_PUTHLINE comp_puthline,
14300 void* user_comp_ctxt);
14401 uint32_t name, uint32_t drm_format, off_t offset,
14402 uint32_t width, uint32_t height, uint32_t pitch);
14404 static inline HDC drmCreateDCFromName (
GHANDLE video,
14405 uint32_t name, uint32_t drm_format,
14406 uint32_t width, uint32_t height, uint32_t pitch)
14409 name, drm_format, 0, width, height, pitch);
14428 int prime_fd,
size_t size, uint32_t drm_format, off_t offset,
14429 uint32_t width, uint32_t height, uint32_t pitch);
14431 static inline HDC drmCreateDCFromPrimeFd (
GHANDLE video,
14432 int prime_fd,
size_t size, uint32_t drm_format,
14433 uint32_t width, uint32_t height, uint32_t pitch)
14436 prime_fd, size, drm_format, 0, width, height, pitch);
14455 uint32_t handle,
size_t size, uint32_t drm_format, off_t offset,
14456 uint32_t width, uint32_t height, uint32_t pitch);
14458 static inline HDC drmCreateDCFromHandle (
GHANDLE video,
14459 uint32_t handle,
size_t size, uint32_t drm_format,
14460 uint32_t width, uint32_t height, uint32_t pitch)
14463 handle, size, drm_format, 0, width, height, pitch);
14472 #ifdef _MGGAL_HI3560 14475 #define SCREEN_ATTR_ALPHA_CHANNEL 0x01 // alpha channel 14476 #define SCREEN_ATTR_COLORKEY 0x02 // colorkey 14477 #define SCREEN_ATTR_COLORSPACE 0x03 // colorspace 14478 #define SCREEN_ATTR_ALPHA 0x04 14479 #define SCREEN_NO_EXIST -99 // screen don't exist 14482 MG_EXPORT
int hi3560GetVideoFD (
void);
14483 MG_EXPORT
void* hi3560GetFBAddress (
void);
14484 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)
Determine 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 a DC to screen. ...
MG_EXPORT LanguageCode GUIAPI LanguageCodeFromISO639s1(Uint16 iso639_1)
Get MiniGUI language code from an encoded ISO639-1 language code.
static HDC GUIAPI GetClientDC(HWND hWnd)
Get a client DC of a window.
MG_EXPORT int GUIAPI GetSysFontHeight(int font_id)
Get the height of a single-byte character of a system font.
MG_EXPORT BOOL GUIAPI IsMemDC(HDC hdc)
Check whether a given DC is a memory DC.
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)
Retrieve mapping parameters of a device context.
MG_EXPORT void GUIAPI UnloadMyBitmap(PMYBITMAP my_bmp)
Unloads a bitmap.
MG_EXPORT HDC GUIAPI GetEffectiveCDC(HWND hwnd)
Get the effective client DC of a window.
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)
Determine 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)
Get the alpha component from a RGBA quadruple value rgba.
MG_EXPORT BOOL GUIAPI DestroyLayout(LAYOUT *layout)
Destroy the specified layout information structure.
#define GetBValue(rgba)
Get the blue component from a RGBA quadruple value rgba.
MG_EXPORT const char *GUIAPI CheckBitmapType(MG_RWops *fp)
Check 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)
Get the raster operation of a DC.
static 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)
Set the alpha value for the entire surface of a DC, as opposed to using the alpha component of each p...
MG_EXPORT BOOL GUIAPI SyncUpdateSurface(HWND hwnd)
Synchronize the update rectangles of the backing surface of a window to screen.
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)
Determine 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 HDC drmCreateDCFromNameEx(GHANDLE video, uint32_t name, uint32_t drm_format, off_t offset, uint32_t width, uint32_t height, uint32_t pitch)
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)
Set 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 DC for a main window.
MG_EXPORT GHANDLE GetVideoHandle(HDC hdc)
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)
Set a DC with colorful 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)
Set palette entries of a DC.
MG_EXPORT Uint32 GUIAPI GetDCAttr(HDC hdc, int attr)
Get 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 HDC GUIAPI GetDCEx(HWND hWnd, BOOL bClient)
Get a window or client DC of a window.
MG_EXPORT BOOL GUIAPI IsEmptyClipRgn(const CLIPRGN *pRgn)
Determine 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)
Get 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 Uint32 GUIAPI GetGDCapability(HDC hdc, int iItem)
Returns a capability of 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.
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 BOOL GUIAPI IsScreenDC(HDC hdc)
Check whether a given DC is a screen DC.
MG_EXPORT int GUIAPI GetPaletteEntries(HPALETTE hpal, int start, int len, GAL_Color *cmap)
Get 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)
Set palette entries of a logical palette.
MG_EXPORT HICON GUIAPI LoadBitmapIconFromMem(HDC hdc, const void *mem, size_t size, const char *ext)
Load an icon from memory.
MG_EXPORT HDC GUIAPI GetSecondaryDC(HWND hwnd)
Retrieve and return 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)
Load 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)
Set 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)
Get 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)
Set 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)
Set 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)
Get 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)
Retrieve information of multi-byte words in a string.
MG_EXPORT int GUIAPI GetTextMCharInfo(PLOGFONT log_font, const char *mstr, int len, int *pos_chars)
Retrieve 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)
Get 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)
Set the visible region of a DC to be a rectangle.
MG_EXPORT Uchar32 UCharToUpper(Uchar32 uc)
MG_EXPORT int GUIAPI GetMaxFontWidth(HDC hdc)
Retrieve the maximal character width of the current logical font in a DC.
static int LoadBitmapEx(HDC hdc, PBITMAP pBitmap, MG_RWops *area, const char *ext)
Load 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)
Retrieve the height of the current logical font in a DC.
MG_EXPORT const char *GUIAPI GetSysCharset(BOOL wchar)
Get 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 int GUIAPI LoadMyBitmapFromMem(PMYBITMAP my_bmp, RGB *pal, const void *mem, size_t size, const char *ext)
Load a MYBITMAP object from memory.
MG_EXPORT BOOL GUIAPI GetIconSize(HICON hicon, int *w, int *h)
Get 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 BOOL GUIAPI IsWindowDC(HDC hdc)
Check whether a given DC is a window DC.
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)
Get logical font information of a DC.
static void GUIAPI ReleaseSecondaryDC(HWND hwnd, HDC hdc)
Release the DC returned by 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)
Set 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)
Set 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)
Get 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)
Load 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)
Check 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)
Retrieve 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)
Get 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)
Retrieve the length of the first multi-byte character in a string.
GHANDLE HWND
Handle to main window or control.
MG_EXPORT int GUIAPI LoadBitmapFromMem(HDC hdc, PBITMAP pBitmap, const void *mem, size_t size, const char *ext)
Load a device-dependent bitmap from memory.
MG_EXPORT BOOL GUIAPI PtInRegion(const PCLIPRGN region, int x, int y)
Determine whether a point is in a region.
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)
Set the pixel by a RGB triple at the specified position on a DC.
MG_EXPORT HDC GUIAPI GetDCInSecondarySurface(HWND hWnd, BOOL bClient)
Get a window or client DC by using the secondary surface if possible.
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)
Get 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 HICON GUIAPI LoadBitmapIconFromFile(HDC hdc, const char *file_name)
Load an icon from a bitmap file.
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)
Get 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 drmGetSurfaceInfo(GHANDLE video, HDC hdc, DrmSurfaceInfo *info)
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)
Get 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 HDC drmCreateDCFromHandleEx(GHANDLE video, uint32_t handle, size_t size, uint32_t drm_format, off_t offset, uint32_t width, uint32_t height, uint32_t pitch)
MG_EXPORT void GUIAPI GetGlyphBitmap(LOGFONT *log_font, const char *mchar, int mchar_len, GLYPHBITMAP *glyph_bitmap)
Get 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 quadruple 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 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)
Load 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)
Get 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)
Get 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)
Get 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 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.
MG_EXPORT int GUIAPI LoadBitmapEx2(HDC hdc, PBITMAP pBitmap, MG_RWops *area, const char *ext, CB_ALLOC_BITMAP_BUFF cb_alloc_buff, void *context)
Load a device-dependent bitmap from a general data source.
#define GetRValue(rgba)
Get the red component from a RGBA quadruple value rgba.
MG_EXPORT void GUIAPI FillCircle(HDC hdc, int sx, int sy, int r)
Fills a circle.
#define GetGValue(rgba)
Get the green component from a RGBA quadruple 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)
Get 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)
Get 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)
Get 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 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)
Retrieve 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)
Get the colors in RGBA quarter from a array of pixel values under a DC.
static HDC GUIAPI GetDC(HWND hWnd)
Get a window DC of a window.
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)
Set 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)
Set the pixel with a new pixel value at the specified position on a DC.
MG_EXPORT void GUIAPI GetBoundsRect(HDC hdc, RECT *pRect)
Retrieve 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)
Get 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)
Retrieve 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 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)
Get 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)
Load 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)
Get the nearest color compliant to a DC for a spefici color.
MG_EXPORT BOOL GUIAPI UCharCompose(Uchar32 a, Uchar32 b, Uchar32 *ch)
MG_EXPORT int GUIAPI StretchPaintImageFromMem(HDC hdc, int x, int y, int w, int h, const void *mem, size_t size, const char *ext)
Paints an image from memory on device directly.
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)
Get the system logical font through an font identifier.
MG_EXPORT RGBCOLOR GUIAPI GetBackgroundColorInTextRuns(const TEXTRUNS *truns, int index)
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)
Set pixel value in a BITMAP object.
static 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...
This file includes macro definitions and typedefs that commonly used by MiniGUI.
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)
Get the pixel value at the specified position on a DC in RGB triple.
MG_EXPORT BOOL GUIAPI IsRectEmpty(const RECT *prc)
Determine 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)
Determine 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)
Get 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.
static BOOL GUIAPI AreRegionsIntersected(const PCLIPRGN s1, const PCLIPRGN s2)
Determine whether two regions are intersected.
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.
DWORD32 RGBCOLOR
A type definition for a RGB color value.
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 HDC drmCreateDCFromPrimeFdEx(GHANDLE video, int prime_fd, size_t size, uint32_t drm_format, off_t offset, uint32_t width, uint32_t height, uint32_t pitch)
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)
Load 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.
static HDC GUIAPI GetSecondaryClientDC(HWND hwnd)
Get a client DC of a window by using the secondary surface if possible.
MG_EXPORT Uint32 GUIAPI SetDCAttr(HDC hdc, int attr, Uint32 value)
Set a specified attribute value of a DC.
static void Pixel2RGB(HDC hdc, gal_pixel pixel, Uint8 *r, Uint8 *g, Uint8 *b)
Get 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 PaintImageFromMem(HDC hdc, int x, int y, const void *mem, size_t size, const char *ext)
Paints an image from memory on device directly.
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)
Load 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)
Check whether a point is visible.
MG_EXPORT void GUIAPI Pixel2RGBs(HDC hdc, const gal_pixel *pixels, RGB *rgbs, int count)
Get 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)
Set the color key (transparent pixel) of a memory DC.
MG_EXPORT PLOGFONT GUIAPI GetCurFont(HDC hdc)
Get the pointer to the current logical font of a DC.
MG_EXPORT BOOL GUIAPI FloodFill(HDC hdc, int x, int y)
Fills an enclosed area starting at point (x,y).
struct _DrmSurfaceInfo DrmSurfaceInfo
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)
Check 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.
MG_EXPORT BOOL GUIAPI RectInRegion(const PCLIPRGN region, const RECT *rect)
Determine whether a rectangle is intersected with a region.
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.
BOOL(* CB_ALLOC_BITMAP_BUFF)(void *context, BITMAP *bmp)
The type of callback to allocate pixel buffer for BITMAP object.
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)
Get 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 int drmGetDeviceFD(GHANDLE video)
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)
Get 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.