mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-24 09:14:09 +08:00
tune style for LOGFONT
This commit is contained in:
+75
-42
@@ -5459,24 +5459,26 @@ MG_EXPORT int GUIAPI SubtractRect (RECT* rc, const RECT* psrc1, const RECT* psrc
|
||||
|
||||
#define FONT_WEIGHT_NIL '\0'
|
||||
#define FONT_WEIGHT_ALL '*'
|
||||
#define FONT_WEIGHT_BLACK 'c'
|
||||
#define FONT_WEIGHT_BOLD 'b'
|
||||
#define FONT_WEIGHT_BOOK 'k'
|
||||
#define FONT_WEIGHT_DEMIBOLD 'd'
|
||||
#define FONT_WEIGHT_THIN 't'
|
||||
#define FONT_WEIGHT_EXTRA_LIGHT 'e'
|
||||
#define FONT_WEIGHT_LIGHT 'l'
|
||||
#define FONT_WEIGHT_MEDIUM 'm'
|
||||
#define FONT_WEIGHT_REGULAR 'r'
|
||||
#define FONT_WEIGHT_SUBPIXEL 's'
|
||||
#define FONT_WEIGHT_MEDIUM 'm'
|
||||
#define FONT_WEIGHT_DEMIBOLD 'd'
|
||||
#define FONT_WEIGHT_BOLD 'b'
|
||||
#define FONT_WEIGHT_EXTRA_BOLD 'x'
|
||||
#define FONT_WEIGHT_BLACK 'c'
|
||||
|
||||
#define FS_WEIGHT_MASK 0x000000FF
|
||||
#define FS_WEIGHT_BLACK 0x00000001
|
||||
#define FS_WEIGHT_BOLD 0x00000002
|
||||
#define FS_WEIGHT_BOOK 0x00000004
|
||||
#define FS_WEIGHT_DEMIBOLD 0x00000006 /* BOOK | BOLD */
|
||||
#define FS_WEIGHT_LIGHT 0x00000010
|
||||
#define FS_WEIGHT_MEDIUM 0x00000020
|
||||
#define FS_WEIGHT_SUBPIXEL 0x00000040
|
||||
#define FS_WEIGHT_THIN 0x00000010
|
||||
#define FS_WEIGHT_EXTRA_LIGHT 0x00000011
|
||||
#define FS_WEIGHT_LIGHT 0x00000012
|
||||
#define FS_WEIGHT_REGULAR 0x00000000
|
||||
#define FS_WEIGHT_MEDIUM 0x00000020
|
||||
#define FS_WEIGHT_DEMIBOLD 0x00000021
|
||||
#define FS_WEIGHT_EXTRA_BOLD 0x00000022
|
||||
#define FS_WEIGHT_BOLD 0x00000023
|
||||
#define FS_WEIGHT_BLACK 0x00000024
|
||||
|
||||
#define FONT_SLANT_NIL '\0'
|
||||
#define FONT_SLANT_ALL '*'
|
||||
@@ -5490,9 +5492,10 @@ MG_EXPORT int GUIAPI SubtractRect (RECT* rc, const RECT* psrc1, const RECT* psrc
|
||||
#define FS_SLANT_ROMAN 0x00000000
|
||||
|
||||
#define FONT_FLIP_NIL '\0'
|
||||
#define FONT_FLIP_HORZ 'H'
|
||||
#define FONT_FLIP_VERT 'V'
|
||||
#define FONT_FLIP_HORZVERT 'T'
|
||||
#define FONT_FLIP_HORZ 'h'
|
||||
#define FONT_FLIP_VERT 'v'
|
||||
#define FONT_FLIP_HORZVERT 't'
|
||||
#define FONT_FLIP_NONE 'n'
|
||||
|
||||
#define FS_FLIP_MASK 0x0000F000
|
||||
#define FS_FLIP_HORZ 0x00001000
|
||||
@@ -5500,20 +5503,68 @@ MG_EXPORT int GUIAPI SubtractRect (RECT* rc, const RECT* psrc1, const RECT* psrc
|
||||
#define FS_FLIP_HORZVERT 0x00003000 /* HORZ | VERT */
|
||||
|
||||
#define FONT_OTHER_NIL '\0'
|
||||
#define FONT_OTHER_AUTOSCALE 'S'
|
||||
#define FONT_OTHER_TTFNOCACHE 'N'
|
||||
#define FONT_OTHER_TTFKERN 'K'
|
||||
#define FONT_OTHER_TTFNOCACHEKERN 'R'
|
||||
#define FONT_OTHER_LCDPORTRAIT 'P'
|
||||
#define FONT_OTHER_LCDPORTRAITKERN 'Q'
|
||||
#define FONT_OTHER_AUTOSCALE 's'
|
||||
#define FONT_OTHER_TTFNOCACHE 'n'
|
||||
#define FONT_OTHER_TTFKERN 'k'
|
||||
#define FONT_OTHER_TTFNOCACHEKERN 'r'
|
||||
#define FONT_OTHER_LCDPORTRAIT 'p'
|
||||
#define FONT_OTHER_LCDPORTRAITKERN 'q'
|
||||
|
||||
#define FS_OTHER_MASK 0x00FF0000
|
||||
#define FS_OTHER_AUTOSCALE 0x00010000
|
||||
#define FS_OTHER_TTFNOCACHE 0x00020000
|
||||
#define FS_OTHER_TTFKERN 0x00040000
|
||||
#define FS_OTHER_TTFNOCACHEKERN 0x00060000 /* KERN | NOCACHE */
|
||||
#define FS_OTHER_LCDPORTRAIT 0x00100000
|
||||
#define FS_OTHER_LCDPORTRAITKERN 0x00140000
|
||||
#define FS_OTHER_TTFNOCACHEKERN 0x00060000 /* KERN | NOCACHE */
|
||||
#define FS_OTHER_LCDPORTRAITKERN 0x00140000 /* KERN | PORTRAIT */
|
||||
|
||||
#define FONT_DECORATE_NIL '\0'
|
||||
#define FONT_DECORATE_NONE 'n'
|
||||
#define FONT_DECORATE_UNDERLINE 'u'
|
||||
#define FONT_DECORATE_STRUCKOUT 's'
|
||||
#define FONT_DECORATE_BOTH 'b'
|
||||
|
||||
#define FS_DECORATE_MASK 0x0F000000
|
||||
#define FS_DECORATE_UNDERLINE 0x01000000
|
||||
#define FS_DECORATE_STRUCKOUT 0x02000000
|
||||
#define FS_DECORATE_BOTH 0x03000000
|
||||
|
||||
#define FONT_RENDER_NIL '\0'
|
||||
#define FONT_RENDER_MONO 'n'
|
||||
#define FONT_RENDER_GREY 'g'
|
||||
#define FONT_RENDER_SUBPIXEL 's'
|
||||
|
||||
#define FS_RENDER_MASK 0xF0000000
|
||||
#define FS_RENDER_MONO 0x00000000
|
||||
#define FS_RENDER_GREY 0x10000000
|
||||
#define FS_RENDER_SUBPIXEL 0x20000000
|
||||
|
||||
/* deprecated since v3.2.1, use FS_RENDER_XXX/FONT_RENDER_XXX instead */
|
||||
#define FONT_WEIGHT_SUBPIXEL 's'
|
||||
#define FONT_WEIGHT_BOOK 'k'
|
||||
|
||||
/* deprecated since v3.2.1, use FS_DECORATE_XXX/FONT_DECORATE_XXX instead */
|
||||
#define FONT_UNDERLINE_NIL '\0'
|
||||
#define FONT_UNDERLINE_ALL '*'
|
||||
#define FONT_UNDERLINE_LINE 'u'
|
||||
#define FONT_UNDERLINE_NONE 'n'
|
||||
#define FONT_STRUCKOUT_NIL '\0'
|
||||
#define FONT_STRUCKOUT_ALL '*'
|
||||
#define FONT_STRUCKOUT_LINE 's'
|
||||
#define FONT_STRUCKOUT_NONE 'n'
|
||||
|
||||
/*
|
||||
#define FS_WEIGHT_SUBPIXEL 0x00000000
|
||||
#define FS_WEIGHT_BOOK 0x00000000
|
||||
|
||||
#define FS_UNDERLINE_MASK 0x00000000
|
||||
#define FS_UNDERLINE_LINE 0x00000000
|
||||
#define FS_UNDERLINE_NONE 0x00000000
|
||||
|
||||
#define FS_STRUCKOUT_MASK 0x00000000
|
||||
#define FS_STRUCKOUT_LINE 0x00000000
|
||||
#define FS_STRUCKOUT_NONE 0x00000000
|
||||
*/
|
||||
|
||||
/*
|
||||
* Backward compatiblilty definitions.
|
||||
@@ -5550,24 +5601,6 @@ MG_EXPORT int GUIAPI SubtractRect (RECT* rc, const RECT* psrc1, const RECT* psrc
|
||||
#define FS_SPACING_CHARCELL 0x00000000
|
||||
*/
|
||||
|
||||
#define FONT_UNDERLINE_NIL '\0'
|
||||
#define FONT_UNDERLINE_ALL '*'
|
||||
#define FONT_UNDERLINE_LINE 'u'
|
||||
#define FONT_UNDERLINE_NONE 'n'
|
||||
|
||||
#define FS_UNDERLINE_MASK 0x00F00000
|
||||
#define FS_UNDERLINE_LINE 0x00100000
|
||||
#define FS_UNDERLINE_NONE 0x00000000
|
||||
|
||||
#define FONT_STRUCKOUT_NIL '\0'
|
||||
#define FONT_STRUCKOUT_ALL '*'
|
||||
#define FONT_STRUCKOUT_LINE 's'
|
||||
#define FONT_STRUCKOUT_NONE 'n'
|
||||
|
||||
#define FS_STRUCKOUT_MASK 0x0F000000
|
||||
#define FS_STRUCKOUT_LINE 0x01000000
|
||||
#define FS_STRUCKOUT_NONE 0x00000000
|
||||
|
||||
#define FONT_TYPE_NAME_LEN 3
|
||||
#define FONT_TYPE_NAME_BITMAP_RAW "rbf"
|
||||
#define FONT_TYPE_NAME_BITMAP_VAR "vbf"
|
||||
|
||||
+59
-8
@@ -131,38 +131,53 @@ DWORD fontConvertStyle (const char* style_part)
|
||||
{
|
||||
DWORD style = 0;
|
||||
|
||||
style &= ~FS_WEIGHT_MASK;
|
||||
switch (style_part [0]) {
|
||||
case FONT_WEIGHT_BLACK:
|
||||
style |= FS_WEIGHT_BLACK;
|
||||
break;
|
||||
case FONT_WEIGHT_EXTRA_BOLD:
|
||||
style |= FS_WEIGHT_EXTRA_BOLD;
|
||||
break;
|
||||
case FONT_WEIGHT_BOLD:
|
||||
style |= FS_WEIGHT_BOLD;
|
||||
break;
|
||||
/* deprecated since v3.2.1
|
||||
case FONT_WEIGHT_BOOK:
|
||||
style |= FS_WEIGHT_BOOK;
|
||||
break;
|
||||
*/
|
||||
case FONT_WEIGHT_DEMIBOLD:
|
||||
style |= FS_WEIGHT_DEMIBOLD;
|
||||
break;
|
||||
case FONT_WEIGHT_LIGHT:
|
||||
style |= FS_WEIGHT_LIGHT;
|
||||
break;
|
||||
case FONT_WEIGHT_MEDIUM:
|
||||
style |= FS_WEIGHT_MEDIUM;
|
||||
break;
|
||||
case FONT_WEIGHT_REGULAR:
|
||||
style |= FS_WEIGHT_REGULAR;
|
||||
break;
|
||||
case FONT_WEIGHT_SUBPIXEL:
|
||||
style |= FS_WEIGHT_SUBPIXEL;
|
||||
break;
|
||||
case FONT_WEIGHT_LIGHT:
|
||||
style |= FS_WEIGHT_LIGHT;
|
||||
break;
|
||||
case FONT_WEIGHT_EXTRA_LIGHT:
|
||||
style |= FS_WEIGHT_EXTRA_LIGHT;
|
||||
break;
|
||||
case FONT_WEIGHT_THIN:
|
||||
style |= FS_WEIGHT_THIN;
|
||||
break;
|
||||
/* deprecated since v3.2.1
|
||||
case FONT_WEIGHT_SUBPIXEL:
|
||||
style |= FS_WEIGHT_SUBPIXEL;
|
||||
break;
|
||||
case FONT_WEIGHT_ALL:
|
||||
style |= FS_WEIGHT_MASK;
|
||||
break;
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
return 0xFFFFFFFF;
|
||||
break;
|
||||
}
|
||||
|
||||
style &= ~FS_SLANT_MASK;
|
||||
switch (style_part [1]) {
|
||||
case FONT_SLANT_ITALIC:
|
||||
style |= FS_SLANT_ITALIC;
|
||||
@@ -180,6 +195,7 @@ DWORD fontConvertStyle (const char* style_part)
|
||||
return 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
style &= ~FS_FLIP_MASK;
|
||||
switch (style_part [2]) {
|
||||
case FONT_FLIP_HORZ:
|
||||
style |= FS_FLIP_HORZ;
|
||||
@@ -194,6 +210,7 @@ DWORD fontConvertStyle (const char* style_part)
|
||||
break;
|
||||
}
|
||||
|
||||
style &= ~FS_OTHER_MASK;
|
||||
switch (style_part [3]) {
|
||||
case FONT_OTHER_AUTOSCALE:
|
||||
style |= FS_OTHER_AUTOSCALE;
|
||||
@@ -217,6 +234,39 @@ DWORD fontConvertStyle (const char* style_part)
|
||||
break;
|
||||
}
|
||||
|
||||
style &= ~FS_DECORATE_MASK;
|
||||
switch (style_part [4]) {
|
||||
case FONT_DECORATE_NONE:
|
||||
break;
|
||||
case FONT_DECORATE_UNDERLINE:
|
||||
style |= FS_DECORATE_UNDERLINE;
|
||||
break;
|
||||
case FONT_DECORATE_STRUCKOUT:
|
||||
style |= FS_DECORATE_STRUCKOUT;
|
||||
break;
|
||||
case FONT_DECORATE_BOTH:
|
||||
style |= FS_DECORATE_BOTH;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
style &= ~FS_RENDER_MASK;
|
||||
switch (style_part [5]) {
|
||||
case FONT_RENDER_MONO:
|
||||
style |= FS_RENDER_MONO;
|
||||
break;
|
||||
case FONT_RENDER_GREY:
|
||||
style |= FS_RENDER_GREY;
|
||||
break;
|
||||
case FONT_RENDER_SUBPIXEL:
|
||||
style |= FS_RENDER_SUBPIXEL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* deprecated since v3.2.1
|
||||
switch (style_part [4]) {
|
||||
case FONT_UNDERLINE_LINE:
|
||||
style |= FS_UNDERLINE_LINE;
|
||||
@@ -244,6 +294,7 @@ DWORD fontConvertStyle (const char* style_part)
|
||||
default:
|
||||
return 0xFFFFFFFF;
|
||||
}
|
||||
*/
|
||||
|
||||
return style;
|
||||
}
|
||||
|
||||
@@ -55,8 +55,7 @@
|
||||
|
||||
#include "freetype2.h"
|
||||
|
||||
#define IS_SUBPIXEL(logfont) \
|
||||
(((logfont)->style & FS_WEIGHT_MASK) == FS_WEIGHT_SUBPIXEL)
|
||||
#define IS_SUBPIXEL(logfont) ((logfont)->style & FS_OTHER_SUBPIXEL)
|
||||
|
||||
#ifdef TTF_DBG
|
||||
static int bbox_nohit = 0;
|
||||
@@ -200,7 +199,7 @@ print_bitmap_grey (void* buffer, int width, int rows, int pitch)
|
||||
|
||||
static DWORD get_glyph_type (LOGFONT* logfont, DEVFONT* devfont)
|
||||
{
|
||||
if (logfont->style & FS_WEIGHT_SUBPIXEL)
|
||||
if (logfont->style & FS_OTHER_SUBPIXEL)
|
||||
return DEVFONTGLYPHTYPE_SUBPIXEL;
|
||||
else if (logfont->style & FS_WEIGHT_BOOK)
|
||||
return DEVFONTGLYPHTYPE_GREYBMP;
|
||||
|
||||
+1
-1
@@ -227,7 +227,7 @@ static PLOGFONT gdiCreateLogFont (const char* type, const char* family,
|
||||
|
||||
/* reset style of logfont */
|
||||
/* remove HORZVERT style if weight is subpixel */
|
||||
if (log_font->style & FS_WEIGHT_SUBPIXEL) {
|
||||
if ((log_font->style & FS_RENDER_MASK) == FS_RENDER_SUBPIXEL) {
|
||||
log_font->style &= ~FS_FLIP_HORZVERT;
|
||||
log_font->style &= ~FS_SLANT_ITALIC;
|
||||
}
|
||||
|
||||
+6
-3
@@ -482,9 +482,12 @@ static DEVFONT* new_instance (LOGFONT* logfont, DEVFONT* devfont,
|
||||
BOOL need_sbc_font)
|
||||
{
|
||||
if (QPFONT_INFO_P (devfont)->fm->flags & FLAG_MODE_SMOOTH) {
|
||||
logfont->style &= ~FS_WEIGHT_SUBPIXEL;
|
||||
logfont->style |= FS_WEIGHT_BOOK;
|
||||
logfont->style &= ~FS_WEIGHT_LIGHT;
|
||||
logfont->style &= ~FS_RENDER_MASK;
|
||||
logfont->style |= FS_RENDER_GREY;
|
||||
}
|
||||
else {
|
||||
logfont->style &= ~FS_RENDER_MASK;
|
||||
logfont->style |= FS_RENDER_MONO;
|
||||
}
|
||||
|
||||
return devfont;
|
||||
|
||||
+6
-3
@@ -471,9 +471,12 @@ static DEVFONT* new_instance (LOGFONT* logfont, DEVFONT* devfont,
|
||||
*set logfont to weight book;
|
||||
**/
|
||||
if (!((UPFV1_FILE_HEADER*)p_upf)->mono_bitmap) {
|
||||
logfont->style &= ~FS_WEIGHT_SUBPIXEL;
|
||||
logfont->style |= FS_WEIGHT_BOOK;
|
||||
logfont->style &= ~FS_WEIGHT_LIGHT;
|
||||
logfont->style &= ~FS_RENDER_MASK;
|
||||
logfont->style |= FS_RENDER_GREY;
|
||||
}
|
||||
else {
|
||||
logfont->style &= ~FS_RENDER_MASK;
|
||||
logfont->style |= FS_RENDER_MONO;
|
||||
}
|
||||
|
||||
return devfont;
|
||||
|
||||
Reference in New Issue
Block a user