Add System Font Name registry option
This commit is contained in:
parent
bec1e04dfa
commit
16fe9b0482
|
@ -473,7 +473,9 @@ void gdrv::choose_font()
|
|||
static const int fontSizes_WinMenu[3] = { 17, 21, 27 };
|
||||
|
||||
const char* system_font_filename = nullptr;
|
||||
fontCharset = DEFAULT_CHARSET;
|
||||
// Only System font requires non-default charset,
|
||||
// and custom charsets may break other fonts (like WinMenu).
|
||||
int systemFontCharset = DEFAULT_CHARSET;
|
||||
|
||||
switch (options::Options.Language)
|
||||
{
|
||||
|
@ -495,28 +497,28 @@ void gdrv::choose_font()
|
|||
break;
|
||||
case Languages::Greek:
|
||||
system_font_filename = "vgasysg.fon";
|
||||
fontCharset = GREEK_CHARSET;
|
||||
systemFontCharset = GREEK_CHARSET;
|
||||
break;
|
||||
case Languages::Russian:
|
||||
system_font_filename = "vgasysr.fon";
|
||||
fontCharset = RUSSIAN_CHARSET;
|
||||
systemFontCharset = RUSSIAN_CHARSET;
|
||||
break;
|
||||
case Languages::Turkish:
|
||||
system_font_filename = "vgasyst.fon";
|
||||
fontCharset = TURKISH_CHARSET;
|
||||
systemFontCharset = TURKISH_CHARSET;
|
||||
break;
|
||||
case Languages::Danish:
|
||||
case Languages::Dutch:
|
||||
case Languages::Norwegian:
|
||||
case Languages::Swedish:
|
||||
system_font_filename = "vgasys.fon";
|
||||
fontCharset = DEFAULT_CHARSET;
|
||||
systemFontCharset = DEFAULT_CHARSET;
|
||||
break;
|
||||
case Languages::Czech:
|
||||
case Languages::Hungarian:
|
||||
case Languages::Polish:
|
||||
system_font_filename = "vgasyse.fon";
|
||||
fontCharset = EASTEUROPE_CHARSET;
|
||||
systemFontCharset = EASTEUROPE_CHARSET;
|
||||
break;
|
||||
default:
|
||||
system_font_filename = "vgasys.fon";
|
||||
|
@ -539,6 +541,7 @@ void gdrv::choose_font()
|
|||
{
|
||||
fontFamily = "System";
|
||||
fontSizes = fontSizes_System;
|
||||
fontCharset = systemFontCharset;
|
||||
|
||||
std::string windir(MAX_PATH, '\0');
|
||||
DWORD result = GetEnvironmentVariableA("WINDIR", &windir[0], MAX_PATH);
|
||||
|
|
|
@ -140,6 +140,7 @@ void options::ReadOptions()
|
|||
Options.TargetUps = max(60, Options.TargetUps);
|
||||
Options.TargetUps = min(Options.TargetUps, 360);
|
||||
Options.SystemFont = get_int(nullptr, "System Font", false);
|
||||
get_string(nullptr, "System Font Name", Options.SystemFontName, "", LF_FACESIZE);
|
||||
|
||||
auto defaultLanguage = Languages::English;
|
||||
auto language = static_cast<Languages>(get_int(nullptr, "Language", static_cast<int>(defaultLanguage)));
|
||||
|
@ -239,6 +240,7 @@ void options::uninit()
|
|||
set_int(nullptr, "Uniform scaling", Options.UniformScaling);
|
||||
set_int(nullptr, "Alternative Render", Options.AlternativeRender);
|
||||
set_int(nullptr, "System Font", Options.SystemFont);
|
||||
set_string(nullptr, "System Font Name", Options.SystemFontName);
|
||||
set_int(nullptr, "Language", static_cast<int>(Options.Language));
|
||||
set_int(nullptr, "Target UPS", Options.TargetUps);
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ struct optionsStruct
|
|||
bool AlternativeRender;
|
||||
int TargetUps;
|
||||
bool SystemFont;
|
||||
char SystemFontName[LF_FACESIZE];
|
||||
Languages Language;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue