Logical font operations
[GDI functions]

Data Structures

Defines

Typedefs

Enumerations

Functions


Detailed Description

MiniGUI uses logical font to render text in a DC. You can create a logical font by using CreateLogFont and select it into a DC by using SelectFont, then you can use this logical font to render text by using TextOutLen or DrawTextEx.


Define Documentation

#define FONT_CHARSET_EUCTW   "EUC-TW"

EUC encoding of CNS11643 charset, not supported.

Definition at line 5608 of file gdi.h.

#define FONT_CHARSET_GB18030_0   "GB18030-0"

EUC encoding of GB18030 charset.

Definition at line 5601 of file gdi.h.

#define FONT_CHARSET_GB1988_0   "GB1988-0"

EUC encoding of GB1988 charset, treat as ISO8859-1.

Definition at line 5588 of file gdi.h.

#define FONT_CHARSET_GB2312_0   "GB2312-0"

EUC encoding of GB2312 charset.

Definition at line 5594 of file gdi.h.

#define FONT_CHARSET_ISO_10646_1   "ISO-10646-1"

UCS-2 encoding of UNICODE.

Definition at line 5653 of file gdi.h.

#define FONT_CHARSET_JISX0201_0   "JISX0201-0"

EUC encoding of JISX0201 charset.

Definition at line 5628 of file gdi.h.

#define FONT_CHARSET_JISX0201_1   "JISX0201-1"

Shift-JIS encoding of JISX0201 charset.

Definition at line 5641 of file gdi.h.

#define FONT_CHARSET_JISX0208_0   "JISX0208-0"

EUC encoding of JISX0208 charset.

Definition at line 5634 of file gdi.h.

#define FONT_CHARSET_JISX0208_1   "JISX0208-1"

Shift-JIS encoding of JISX0208 charset.

Definition at line 5647 of file gdi.h.

#define FONT_CHARSET_KSC5601_0   "KSC5601-0"

EUC encoding of KSC5601 charset.

Definition at line 5621 of file gdi.h.

#define FONT_CHARSET_KSC5636_0   "KSC5636-0"

EUC encoding of KSC5636 charset, treat as ISO8859-1.

Definition at line 5615 of file gdi.h.

#define FONT_CHARSET_UTF16BE   "UTF-16BE"

UTF-16 encoding (Big-Endian) of UNICODE.

Definition at line 5671 of file gdi.h.

#define FONT_CHARSET_UTF16LE   "UTF-16LE"

UTF-16 encoding (Little-Endian) of UNICODE.

Definition at line 5665 of file gdi.h.

#define FONT_CHARSET_UTF8   "UTF-8"

UTF-8 encoding of UNICODE.

Definition at line 5659 of file gdi.h.

#define INV_LOGFONT   0

Invalid logfont.

Definition at line 5824 of file gdi.h.


Typedef Documentation

typedef const LOGFONT * CPLOGFONT

Data type of pointer to a const LOGFONT.

Definition at line 5715 of file gdi.h.

typedef struct _FONTMETRICS FONTMETRICS

The font metrics structure.

typedef struct _GLYPHBITMAP GLYPHBITMAP

The glyph bitmap structure.

typedef struct _LOGFONT LOGFONT

The logical font structure.

typedef LOGFONT * PLOGFONT

Data type of pointer to a LOGFONT.

Definition at line 5710 of file gdi.h.

typedef struct _WORDINFO WORDINFO

Date type of _WORDINFO.

Definition at line 5722 of file gdi.h.


Enumeration Type Documentation

List of values to identify various types of LCD filters, Note a freetype2 specific definition.

Enumerator:
MG_SMOOTH_NONE 

equal to FT_LCD_FILTER_NONE

MG_SMOOTH_DEFAULT 

equal to FT_LCD_FILTER_DEFAULT

MG_SMOOTH_LIGHT 

equal to FT_LCD_FILTER_LIGHT

MG_SMOOTH_LEGACY 

equal to FT_LCD_FILTER_LEGACY

MG_SMOOTH_MAX 

equal to FT_LCD_FILTER_MAX

Definition at line 6161 of file gdi.h.


Function Documentation

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.

This function creates a logical font.

Parameters:
type The type of the logical font, can be one of the values:

  • FONT_TYPE_NAME_BITMAP_RAW
    Creates a logical font by using raw bitmap device font, i.e. mono-space bitmap font.
  • FONT_TYPE_NAME_BITMAP_VAR
    Creates a logical font by using var-width bitmap device font.
  • FONT_TYPE_NAME_BITMAP_QPF
    Creates a logical font by using qpf device font.
  • FONT_TYPE_NAME_BITMAP_BMP
    Creates a logical font by using bitmap font.
  • FONT_TYPE_NAME_SCALE_TTF
    Creates a logical font by using scalable TrueType device font.
  • FONT_TYPE_NAME_SCALE_T1F
    Creates a logical font by using scalable Adobe Type1 device font.
  • FONT_TYPE_NAME_ALL
    Creates a logical font by using any type device font.
family The family of the logical font, such as "Courier", "Helvetica", and so on.
charset The charset of the logical font. You can specify a sigle-byte charset like "ISO8859-1", or a multi-byte charset like "GB2312-0".
weight The weight of the logical font, can be one of the values:

  • FONT_WEIGHT_ALL
    Any one.
  • FONT_WEIGHT_REGULAR
    Regular font.
  • FONT_WEIGHT_BOLD
    Bold font.
  • FONT_WEIGHT_BOOK
    Anti-aliase font.
  • FONT_WEIGHT_LIGHT
    Draw the glyph border with the background color.
slant The slant of the logical font, can be one of the values:

  • FONT_SLANT_ALL
    Any one.
  • FONT_SLANT_ROMAN
    Regular font.
  • FONT_SLANT_ITALIC
    Italic font.
flip Does flip the glyph of the font, can be one of the following values:

  • FONT_FLIP_NIL
    Do not flip the glyph.
  • FONT_FLIP_HORZ
    Flip the glyph horizontally .
  • FONT_FLIP_VERT
    Flip the glyph vertically.
  • FONT_FLIP_HORZVERT
    Flip the glyph horizontally and vertically.
other Other rendering features, can be one of the following values:

  • FONT_OTHER_NIL
    Not specified.
  • FONT_OTHER_AUTOSCALE
    Auto scale the bitmap glyph to match the desired font size.
  • FONT_OTHER_TTFNOCACHE
    Do not use cache when using TrueType font.
  • FONT_OTHER_TTFKERN
    Kern the glyph when using TrueType font.
  • FONT_OTHER_TTFNOCACHEKERN
    When using TrueType font, kern the glyph and do not use cache.
  • FONT_OTHER_LCDPORTRAIT
    When using TrueType font and sub-pixels smoothing strategy, set lcd portrait and do not use kern the glyph.
  • FONT_OTHER_LCDPORTRAITKERN
    When using TrueType font and sub-pixels smoothing strategy, set lcd portrait and use kern the glyph.
underline The underline of the logical font, can be one of the values:

  • FONT_UNDERLINE_ALL
    Any one.
  • FONT_UNDERLINE_LINE
    With underline.
  • FONT_UNDERLINE_NONE
    Without underline.
struckout The struckout line of the logical font, can be one of the values:

  • FONT_STRUCKOUT_ALL
    Any one.
  • FONT_STRUCKOUT_LINE
    With struckout line.
  • FONT_STRUCKOUT_NONE
    Without struckout line.
size The size, i.e. the height, of the logical font. Note that the size of the created logical font may be different from the size expected.
rotation The rotation of the logical font, it is in units of tenth degrees. Note that you can specify rotation only for TrueType and Adobe Type1 fonts.
Returns:
The pointer to the logical font created, NULL on error.
See also:
CreateLogFontIndirect, CreateLogFontByName, SelectFont

Example:

    static LOGFONT  *logfont, *logfontgb12, *logfontbig24;

            logfont = CreateLogFont (NULL, "SansSerif", "ISO8859-1", 
                        FONT_WEIGHT_REGULAR, FONT_SLANT_ITALIC, FONT_SETWIDTH_NORMAL,
                        FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_LINE, 
                        16, 0);
            logfontgb12 = CreateLogFont (NULL, "song", "GB2312", 
                        FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,
                        FONT_SPACING_CHARCELL, FONT_UNDERLINE_LINE, FONT_STRUCKOUT_LINE, 
                        12, 0);
            logfontbig24 = CreateLogFont (NULL, "ming", "BIG5", 
                        FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,
                        FONT_SPACING_CHARCELL, FONT_UNDERLINE_LINE, FONT_STRUCKOUT_NONE, 
                        24, 0);
PLOGFONT GUIAPI CreateLogFontByName ( const char *  font_name  ) 

Creates a logical font by a font name.

This function creates a logical font by a font name specified by font_name.

Parameters:
font_name The name of the font.
Returns:
The pointer to the logical font created, NULL on error.
See also:
CreateLogFont, SelectFont
PLOGFONT GUIAPI CreateLogFontIndirect ( LOGFONT logfont  ) 

Creates a logical font indirectly from a LOGFONT structure.

This function creates a logical font from information in a LOGFONT object.

Parameters:
logfont The pointer to the reference logical font structure.
Returns:
The pointer to the logical font created, NULL on error.
See also:
CreateLogFont, SelectFont
void GUIAPI DestroyDynamicDevFont ( DEVFONT **  devfont  ) 

Destroy device font loaded dynamically from font file.

Parameters:
devfont The double pointer to DEVFONT structure. Note that the pointer must be the double pointer to device font loaded by LoadDevFontFromFile.
See also:
LoadDevFontFromFile
void GUIAPI DestroyLogFont ( PLOGFONT  log_font  ) 

Destroys a logical font.

This function destroys the specified logical font log_font.

Parameters:
log_font The logical font will be destroied.
See also:
CreateLogFont, CreateLogFontIndirect
BOOL ft2SetLcdFilter ( LOGFONT logfont,
mg_FT_LcdFilter  filter 
)

Set freetype2 smooth mode.

This function can be used to set freetype2 library handle font smooth mode.

Parameters:
logfont The logical font.
filter The handle font smooth mode, it must be a value of mg_FT_LcdFilter.
Returns:
TRUE on success, otherwise FALSE.
See also:
mg_FT_LcdFilter
PLOGFONT GUIAPI GetCurFont ( HDC  hdc  ) 

Gets the pointer to the current logical font of a DC.

This function returns the pointer to the current logical font selected to the DC hdc.

Parameters:
hdc The device context.
Returns:
The pointer to the current logical font.
See also:
GetLogFontInfo, SelectFont
void GUIAPI GetFontMetrics ( LOGFONT log_font,
FONTMETRICS font_metrics 
)

Gets metrics information of a logical font.

This function returns the font metrics information of the specified logical font log_font.

Parameters:
log_font The pointer to the logical font.
font_metrics The buffer receives the metrics information.
Returns:
None.
See also:
GetGlyphBitmap, FONTMETRICS
void GUIAPI GetGlyphBitmap ( LOGFONT log_font,
const char *  mchar,
int  mchar_len,
GLYPHBITMAP glyph_bitmap 
)

Gets the glyph bitmap information when uses a logical font to output a character.

This function gets the glyph bitmap of one multi-byte character (specified by mchar and mchar_len) and returns the bitmap information through font_bitmap when using log_font to render the character.

Parameters:
log_font The logical font used to render the character.
mchar The pointer to the multi-byte character.
mchar_len The length of the multi-byte character.
glyph_bitmap The buffer receives the glyph bitmap information.
Returns:
None.

Example:

      GLYPHBITMAP glyph_bitmap = {0};

      GetGlyphBitmap (log_font, "A", 1, &glyph_bitmap);
See also:
GetFontMetrics, GLYPHBITMAP
void GUIAPI GetLogFontInfo ( HDC  hdc,
LOGFONT log_font 
)

Gets logical font information of a DC.

This function gets the logical font information of the specified DC hdc, and copies to the LOGFONT structure pointed to by log_font.

Parameters:
hdc The device context.
log_font The pointer to the LOGFONT structure to save the logical font info.
See also:
GetCurFont
const DEVFONT *GUIAPI GetNextDevFont ( const DEVFONT dev_font  ) 

Get next devfont information.

This function can be used to enumerate all device fonts loaded by MiniGUI.

Parameters:
dev_font The pointer to the current device font, can be NULL to get the first device font.
Returns:
The next device font.
DEVFONT *GUIAPI LoadDevFontFromFile ( const char *  devfont_name,
const char *  file_name 
)

Load device font from font file.

This function can be used to load device font from font file.Now,it support free type font file and qpf font file.

Parameters:
devfont_name The device font name.
file_name The font file name.
Returns:
the pointer to the new device font on success, NULL on error.
See also:
GetNextDevFont, DestroyDynamicDevFont
PLOGFONT GUIAPI SelectFont ( HDC  hdc,
PLOGFONT  log_font 
)

Selects a logical font into a DC.

This function selects the specified logical font log_font into the device context hdc.

Parameters:
hdc The device context.
log_font The pointer to the logical font to be selected into the DC.
Returns:
The old logical font of the DC.
See also:
GetCurFont

Example:

void OnModeDrawText (HDC hdc)
{
    RECT rc1, rc2, rc3, rc4;
    const char* szBuff1 = "This is a good day. \n"
            "This text is drawn by calling DrawText.";
    const char* szBuff2 = "This is a good day. \n"
            "This text is drawn by calling DrawText.";
    const char* szBuff3 = "Single line text, center.";
    const char* szBuff4 = 
            "This text is drawn by calling DrawText.";

    rc1.left = 1; rc1.top  = 1; rc1.right = 401; rc1.bottom = 101;
    rc2.left = 0; rc2.top  = 110; rc2.right = 401; rc2.bottom = 351;
    rc3.left = 0; rc3.top  = 361; rc3.right = 401; rc3.bottom = 451;
    rc4.left = 0; rc4.top  = 461; rc4.right = 401; rc4.bottom = 551;

    SetBkColor (hdc, COLOR_lightwhite);

    Rectangle (hdc, rc1.left, rc1.top, rc1.right, rc1.bottom);
    Rectangle (hdc, rc2.left, rc2.top, rc2.right, rc2.bottom);
    Rectangle (hdc, rc3.left, rc3.top, rc3.right, rc3.bottom);
    Rectangle (hdc, rc4.left, rc4.top, rc4.right, rc4.bottom);

    InflateRect (&rc1, -1, -1);
    InflateRect (&rc2, -1, -1);
    InflateRect (&rc3, -1, -1);
    InflateRect (&rc4, -1, -1);

    SelectFont (hdc, logfontgb12);
    DrawText (hdc, szBuff1, -1, &rc1, DT_NOCLIP | DT_CENTER | DT_WORDBREAK);

    SelectFont (hdc, logfontgb16);
    DrawText (hdc, szBuff2, -1, &rc2, DT_NOCLIP | DT_RIGHT | DT_WORDBREAK);

    SelectFont (hdc, logfontgb24);
    DrawText (hdc, szBuff3, -1, &rc3, DT_NOCLIP | DT_SINGLELINE | DT_CENTER | DT_VCENTER);

    SelectFont (hdc, logfontgb16);
    DrawTextEx (hdc, szBuff4, -1, &rc4, 32, DT_NOCLIP | DT_LEFT | DT_WORDBREAK);
}
Generated on Thu Apr 7 15:58:38 2011 for MiniGUI V3.0.12 API Reference by  doxygen 1.6.3