mirror of
https://github.com/reactos/reactos.git
synced 2024-08-03 01:50:57 +00:00
[FONTS] Add substitutes for the System font, and remove a hack for the System font. Patch by Katayama Hirofumi MZ. CORE-9222
svn path=/trunk/; revision=75310
This commit is contained in:
parent
36532bafeb
commit
d88628173c
|
@ -18,6 +18,7 @@ MUI_SUBFONT LatinFonts[] =
|
||||||
{ L"Terminal", L"DejaVu Sans Mono" },
|
{ L"Terminal", L"DejaVu Sans Mono" },
|
||||||
{ L"Times New Roman", L"Liberation Serif" },
|
{ L"Times New Roman", L"Liberation Serif" },
|
||||||
{ L"Trebuchet MS", L"Open Sans" },
|
{ L"Trebuchet MS", L"Open Sans" },
|
||||||
|
{ L"System", L"FreeSans" },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -38,6 +39,7 @@ MUI_SUBFONT CyrillicFonts[] =
|
||||||
{ L"Terminal", L"DejaVu Sans Mono" },
|
{ L"Terminal", L"DejaVu Sans Mono" },
|
||||||
{ L"Times New Roman", L"Liberation Serif" },
|
{ L"Times New Roman", L"Liberation Serif" },
|
||||||
{ L"Trebuchet MS", L"Open Sans" },
|
{ L"Trebuchet MS", L"Open Sans" },
|
||||||
|
{ L"System", L"FreeSans" },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -58,6 +60,7 @@ MUI_SUBFONT GreekFonts[] =
|
||||||
{ L"Terminal", L"DejaVu Sans Mono" },
|
{ L"Terminal", L"DejaVu Sans Mono" },
|
||||||
{ L"Times New Roman", L"Liberation Serif" },
|
{ L"Times New Roman", L"Liberation Serif" },
|
||||||
{ L"Trebuchet MS", L"Open Sans" },
|
{ L"Trebuchet MS", L"Open Sans" },
|
||||||
|
{ L"System", L"FreeSans" },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -78,6 +81,7 @@ MUI_SUBFONT HebrewFonts[] =
|
||||||
{ L"Terminal", L"DejaVu Sans Mono" },
|
{ L"Terminal", L"DejaVu Sans Mono" },
|
||||||
{ L"Times New Roman", L"DejaVu Serif" },
|
{ L"Times New Roman", L"DejaVu Serif" },
|
||||||
{ L"Trebuchet MS", L"Open Sans" },
|
{ L"Trebuchet MS", L"Open Sans" },
|
||||||
|
{ L"System", L"FreeSans" },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -107,6 +111,7 @@ MUI_SUBFONT ChineseSimplifiedFonts[] =
|
||||||
{ L"SimSun", L"Droid Sans Fallback" },
|
{ L"SimSun", L"Droid Sans Fallback" },
|
||||||
{ L"NSimSun", L"Droid Sans Fallback" },
|
{ L"NSimSun", L"Droid Sans Fallback" },
|
||||||
{ L"MS Song", L"Droid Sans Fallback" },
|
{ L"MS Song", L"Droid Sans Fallback" },
|
||||||
|
{ L"System", L"Droid Sans Fallback" },
|
||||||
/* localized names */
|
/* localized names */
|
||||||
{ CSF_LocalName0, L"Droid Sans Fallback" },
|
{ CSF_LocalName0, L"Droid Sans Fallback" },
|
||||||
{ CSF_LocalName1, L"Droid Sans Fallback" },
|
{ CSF_LocalName1, L"Droid Sans Fallback" },
|
||||||
|
@ -141,6 +146,7 @@ MUI_SUBFONT ChineseTraditionalFonts[] =
|
||||||
{ L"PMingLiU", L"Droid Sans Fallback" },
|
{ L"PMingLiU", L"Droid Sans Fallback" },
|
||||||
{ L"DLCMingMedium", L"Droid Sans Fallback" },
|
{ L"DLCMingMedium", L"Droid Sans Fallback" },
|
||||||
{ L"DLCMingBold", L"Droid Sans Fallback" },
|
{ L"DLCMingBold", L"Droid Sans Fallback" },
|
||||||
|
{ L"System", L"Droid Sans Fallback" },
|
||||||
/* localized names */
|
/* localized names */
|
||||||
{ CTF_LocalName0, L"Droid Sans Fallback" },
|
{ CTF_LocalName0, L"Droid Sans Fallback" },
|
||||||
{ CTF_LocalName1, L"Droid Sans Fallback" },
|
{ CTF_LocalName1, L"Droid Sans Fallback" },
|
||||||
|
@ -174,6 +180,7 @@ MUI_SUBFONT JapaneseFonts[] =
|
||||||
{ L"MS PMincho", L"Droid Sans Fallback" },
|
{ L"MS PMincho", L"Droid Sans Fallback" },
|
||||||
{ L"MS Gothic", L"Droid Sans Fallback" },
|
{ L"MS Gothic", L"Droid Sans Fallback" },
|
||||||
{ L"MS PGothic", L"Droid Sans Fallback" },
|
{ L"MS PGothic", L"Droid Sans Fallback" },
|
||||||
|
{ L"System", L"Droid Sans Fallback" },
|
||||||
/* localized names */
|
/* localized names */
|
||||||
{ JF_LocalName0, L"Droid Sans Fallback" },
|
{ JF_LocalName0, L"Droid Sans Fallback" },
|
||||||
{ JF_LocalName1, L"Droid Sans Fallback" },
|
{ JF_LocalName1, L"Droid Sans Fallback" },
|
||||||
|
@ -211,6 +218,7 @@ MUI_SUBFONT KoreanFonts[] =
|
||||||
{ L"GungsuhChe", L"Droid Sans Fallback" },
|
{ L"GungsuhChe", L"Droid Sans Fallback" },
|
||||||
{ L"Gulim", L"Droid Sans Fallback" },
|
{ L"Gulim", L"Droid Sans Fallback" },
|
||||||
{ L"GulimChe", L"Droid Sans Fallback" },
|
{ L"GulimChe", L"Droid Sans Fallback" },
|
||||||
|
{ L"System", L"Droid Sans Fallback" },
|
||||||
/* localized names */
|
/* localized names */
|
||||||
{ KF_LocalName0, L"Droid Sans Fallback" },
|
{ KF_LocalName0, L"Droid Sans Fallback" },
|
||||||
{ KF_LocalName1, L"Droid Sans Fallback" },
|
{ KF_LocalName1, L"Droid Sans Fallback" },
|
||||||
|
@ -238,5 +246,6 @@ MUI_SUBFONT UnicodeFonts[] =
|
||||||
{ L"Terminal", L"DejaVu Sans Mono" },
|
{ L"Terminal", L"DejaVu Sans Mono" },
|
||||||
{ L"Times New Roman", L"DejaVu Serif" },
|
{ L"Times New Roman", L"DejaVu Serif" },
|
||||||
{ L"Trebuchet MS", L"Open Sans" },
|
{ L"Trebuchet MS", L"Open Sans" },
|
||||||
|
{ L"System", L"FreeSans" },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
|
@ -52,8 +52,6 @@ static const WORD gusEnglishUS = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
|
||||||
|
|
||||||
/* special font names */
|
/* special font names */
|
||||||
static const UNICODE_STRING MarlettW = RTL_CONSTANT_STRING(L"Marlett");
|
static const UNICODE_STRING MarlettW = RTL_CONSTANT_STRING(L"Marlett");
|
||||||
static const UNICODE_STRING SystemW = RTL_CONSTANT_STRING(L"System");
|
|
||||||
static const UNICODE_STRING FixedSysW = RTL_CONSTANT_STRING(L"FixedSys");
|
|
||||||
|
|
||||||
/* registry */
|
/* registry */
|
||||||
static UNICODE_STRING FontRegPath =
|
static UNICODE_STRING FontRegPath =
|
||||||
|
@ -3979,7 +3977,7 @@ GetFontPenalty(const LOGFONTW * LogFont,
|
||||||
ULONG Penalty = 0;
|
ULONG Penalty = 0;
|
||||||
BYTE Byte;
|
BYTE Byte;
|
||||||
LONG Long;
|
LONG Long;
|
||||||
BOOL fFixedSys = FALSE, fNeedScaling = FALSE;
|
BOOL fNeedScaling = FALSE;
|
||||||
const BYTE UserCharSet = CharSetFromLangID(gusLanguageID);
|
const BYTE UserCharSet = CharSetFromLangID(gusLanguageID);
|
||||||
const TEXTMETRICW * TM = &Otm->otmTextMetrics;
|
const TEXTMETRICW * TM = &Otm->otmTextMetrics;
|
||||||
WCHAR* ActualNameW;
|
WCHAR* ActualNameW;
|
||||||
|
@ -3993,62 +3991,38 @@ GetFontPenalty(const LOGFONTW * LogFont,
|
||||||
/* FIXME: SmallPenalty Penalty 1 */
|
/* FIXME: SmallPenalty Penalty 1 */
|
||||||
/* FIXME: FaceNameSubst Penalty 500 */
|
/* FIXME: FaceNameSubst Penalty 500 */
|
||||||
|
|
||||||
if (_wcsicmp(LogFont->lfFaceName, L"System") == 0)
|
Byte = LogFont->lfCharSet;
|
||||||
|
if (Byte == DEFAULT_CHARSET)
|
||||||
{
|
{
|
||||||
/* "System" font */
|
if (_wcsicmp(LogFont->lfFaceName, L"Marlett") == 0)
|
||||||
if (TM->tmCharSet != UserCharSet)
|
|
||||||
{
|
{
|
||||||
/* CharSet Penalty 65000 */
|
if (Byte == ANSI_CHARSET)
|
||||||
/* Requested charset does not match the candidate's. */
|
|
||||||
Penalty += 65000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (_wcsicmp(LogFont->lfFaceName, L"FixedSys") == 0)
|
|
||||||
{
|
|
||||||
/* "FixedSys" font */
|
|
||||||
if (TM->tmCharSet != UserCharSet)
|
|
||||||
{
|
|
||||||
/* CharSet Penalty 65000 */
|
|
||||||
/* Requested charset does not match the candidate's. */
|
|
||||||
Penalty += 65000;
|
|
||||||
}
|
|
||||||
fFixedSys = TRUE;
|
|
||||||
}
|
|
||||||
else /* Request is non-"System" font */
|
|
||||||
{
|
|
||||||
Byte = LogFont->lfCharSet;
|
|
||||||
if (Byte == DEFAULT_CHARSET)
|
|
||||||
{
|
|
||||||
if (_wcsicmp(LogFont->lfFaceName, L"Marlett") == 0)
|
|
||||||
{
|
{
|
||||||
if (Byte == ANSI_CHARSET)
|
DPRINT("Warning: FIXME: It's Marlett but ANSI_CHARSET.\n");
|
||||||
{
|
|
||||||
DPRINT("Warning: FIXME: It's Marlett but ANSI_CHARSET.\n");
|
|
||||||
}
|
|
||||||
/* We assume SYMBOL_CHARSET for "Marlett" font */
|
|
||||||
Byte = SYMBOL_CHARSET;
|
|
||||||
}
|
}
|
||||||
|
/* We assume SYMBOL_CHARSET for "Marlett" font */
|
||||||
|
Byte = SYMBOL_CHARSET;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Byte != TM->tmCharSet)
|
if (Byte != TM->tmCharSet)
|
||||||
|
{
|
||||||
|
if (Byte != DEFAULT_CHARSET && Byte != ANSI_CHARSET)
|
||||||
{
|
{
|
||||||
if (Byte != DEFAULT_CHARSET && Byte != ANSI_CHARSET)
|
/* CharSet Penalty 65000 */
|
||||||
|
/* Requested charset does not match the candidate's. */
|
||||||
|
Penalty += 65000;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (UserCharSet != TM->tmCharSet)
|
||||||
{
|
{
|
||||||
/* CharSet Penalty 65000 */
|
/* UNDOCUMENTED */
|
||||||
/* Requested charset does not match the candidate's. */
|
Penalty += 100;
|
||||||
Penalty += 65000;
|
if (ANSI_CHARSET != TM->tmCharSet)
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (UserCharSet != TM->tmCharSet)
|
|
||||||
{
|
{
|
||||||
/* UNDOCUMENTED */
|
/* UNDOCUMENTED */
|
||||||
Penalty += 100;
|
Penalty += 100;
|
||||||
if (ANSI_CHARSET != TM->tmCharSet)
|
|
||||||
{
|
|
||||||
/* UNDOCUMENTED */
|
|
||||||
Penalty += 100;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4083,11 +4057,6 @@ GetFontPenalty(const LOGFONTW * LogFont,
|
||||||
Byte = (LogFont->lfPitchAndFamily & 0x0F);
|
Byte = (LogFont->lfPitchAndFamily & 0x0F);
|
||||||
if (Byte == DEFAULT_PITCH)
|
if (Byte == DEFAULT_PITCH)
|
||||||
Byte = VARIABLE_PITCH;
|
Byte = VARIABLE_PITCH;
|
||||||
if (fFixedSys)
|
|
||||||
{
|
|
||||||
/* "FixedSys" font should be fixed-pitch */
|
|
||||||
Byte = FIXED_PITCH;
|
|
||||||
}
|
|
||||||
if (Byte == FIXED_PITCH)
|
if (Byte == FIXED_PITCH)
|
||||||
{
|
{
|
||||||
if (TM->tmPitchAndFamily & _TMPF_VARIABLE_PITCH)
|
if (TM->tmPitchAndFamily & _TMPF_VARIABLE_PITCH)
|
||||||
|
|
Loading…
Reference in a new issue