feat: Add font tab

This commit is contained in:
2024-06-06 15:55:50 +01:00
parent 9bb6266be0
commit d962361e36
5 changed files with 146 additions and 11 deletions

View File

@@ -98,6 +98,7 @@ bool GetFontAAState(FontSize size, bool check_blitter)
return _fcsettings.global_aa || GetFontCacheSubSetting(size)->aa; return _fcsettings.global_aa || GetFontCacheSubSetting(size)->aa;
} }
void SetFont(FontSize fontsize, const std::string &font, uint size, bool aa) void SetFont(FontSize fontsize, const std::string &font, uint size, bool aa)
{ {
FontCacheSubSetting *setting = GetFontCacheSubSetting(fontsize); FontCacheSubSetting *setting = GetFontCacheSubSetting(fontsize);
@@ -141,6 +142,12 @@ void SetFont(FontSize fontsize, const std::string &font, uint size, bool aa)
if (_save_config) SaveToConfig(); if (_save_config) SaveToConfig();
} }
void ResizeFont(FontSize fontsize, uint size)
{
FontCacheSubSetting *setting = GetFontCacheSubSetting(fontsize);
SetFont(fontsize, setting->font, size, setting->aa);
}
#ifdef WITH_FREETYPE #ifdef WITH_FREETYPE
extern void LoadFreeTypeFont(FontSize fs); extern void LoadFreeTypeFont(FontSize fs);
extern void UninitFreeType(); extern void UninitFreeType();
@@ -150,6 +157,7 @@ extern void LoadWin32Font(FontSize fs);
extern void LoadCoreTextFont(FontSize fs); extern void LoadCoreTextFont(FontSize fs);
#endif #endif
#if defined(WITH_FREETYPE) || defined(_WIN32) || defined(WITH_COCOA) #if defined(WITH_FREETYPE) || defined(_WIN32) || defined(WITH_COCOA)
/** /**
* Get name of default font file for a given font size. * Get name of default font file for a given font size.

View File

@@ -228,6 +228,7 @@ inline FontCacheSubSetting *GetFontCacheSubSetting(FontSize fs)
std::string GetFontCacheFontName(FontSize fs); std::string GetFontCacheFontName(FontSize fs);
void InitFontCache(bool monospace); void InitFontCache(bool monospace);
void UninitFontCache(); void UninitFontCache();
void ResizeFont(FontSize font_size, uint32_t size);
bool HasAntialiasedFonts(); bool HasAntialiasedFonts();
bool GetFontAAState(FontSize size, bool check_blitter = true); bool GetFontAAState(FontSize size, bool check_blitter = true);

View File

@@ -947,6 +947,8 @@ STR_GAME_OPTIONS_TAB_GENERAL :General
STR_GAME_OPTIONS_TAB_GENERAL_TT :{BLACK}Choose general settings STR_GAME_OPTIONS_TAB_GENERAL_TT :{BLACK}Choose general settings
STR_GAME_OPTIONS_TAB_INTERFACE :Interface STR_GAME_OPTIONS_TAB_INTERFACE :Interface
STR_GAME_OPTIONS_TAB_INTERFACE_TT :{BLACK}Choose interface settings STR_GAME_OPTIONS_TAB_INTERFACE_TT :{BLACK}Choose interface settings
STR_GAME_OPTIONS_TAB_FONTS :Fonts
STR_GAME_OPTIONS_TAB_FONTS_TT :{BLACK}Choose font settings
STR_GAME_OPTIONS_TAB_GRAPHICS :Graphics STR_GAME_OPTIONS_TAB_GRAPHICS :Graphics
STR_GAME_OPTIONS_TAB_GRAPHICS_TT :{BLACK}Choose graphics settings STR_GAME_OPTIONS_TAB_GRAPHICS_TT :{BLACK}Choose graphics settings
STR_GAME_OPTIONS_TAB_SOUND :Sound STR_GAME_OPTIONS_TAB_SOUND :Sound
@@ -1073,6 +1075,11 @@ STR_GAME_OPTIONS_PARTICIPATE_SURVEY_LINK_TOOLTIP :{BLACK}This ope
STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW :{BLACK}Preview survey result STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW :{BLACK}Preview survey result
STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW_TOOLTIP :{BLACK}Show the survey result of the current running game STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW_TOOLTIP :{BLACK}Show the survey result of the current running game
STR_GAME_OPTIONS_FONT_MONO :{BLACK}Mono font
STR_GAME_OPTIONS_FONT_SMALL :{BLACK}Small font
STR_GAME_OPTIONS_FONT_NORMAL :{BLACK}Normal font
STR_GAME_OPTIONS_FONT_LARGE :{BLACK}Large font
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graphics STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graphics
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Display refresh rate STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Display refresh rate

View File

@@ -11,6 +11,7 @@
#include "currency.h" #include "currency.h"
#include "error.h" #include "error.h"
#include "settings_gui.h" #include "settings_gui.h"
#include "string_type.h"
#include "textbuf_gui.h" #include "textbuf_gui.h"
#include "command_func.h" #include "command_func.h"
#include "network/network.h" #include "network/network.h"
@@ -95,8 +96,6 @@ static uint GetCurrentResolutionIndex()
static void ShowCustCurrency(); static void ShowCustCurrency();
static void ReconstructUserInterface();
/** Window for displaying the textfile of a BaseSet. */ /** Window for displaying the textfile of a BaseSet. */
template <class TBaseSet> template <class TBaseSet>
struct BaseSetTextfileWindow : public TextfileWindow { struct BaseSetTextfileWindow : public TextfileWindow {
@@ -360,10 +359,12 @@ std::unique_ptr<NWidgetBase> MakeNWidgetSocialPlugins()
} }
struct GameOptionsWindow : Window { struct GameOptionsWindow : Window {
int query_widget;
GameSettings *opt; GameSettings *opt;
bool reload; bool reload;
int gui_scale; int gui_scale;
int button_ratio; int button_ratio;
uint32_t font_sizes[FS_END];
static inline WidgetID active_tab = WID_GO_TAB_GENERAL; static inline WidgetID active_tab = WID_GO_TAB_GENERAL;
GameOptionsWindow(WindowDesc *desc) : Window(desc) GameOptionsWindow(WindowDesc *desc) : Window(desc)
@@ -372,6 +373,10 @@ struct GameOptionsWindow : Window {
this->reload = false; this->reload = false;
this->gui_scale = _gui_scale; this->gui_scale = _gui_scale;
this->button_ratio = _button_ratio; this->button_ratio = _button_ratio;
for (FontSize fs = FS_BEGIN; fs < FS_END; fs++){
FontCacheSubSetting *fc = GetFontCacheSubSetting(fs);
font_sizes[fs] = fc->size;
}
AddCustomRefreshRates(); AddCustomRefreshRates();
@@ -523,7 +528,15 @@ struct GameOptionsWindow : Window {
SetDParam(0, _autosave_dropdown[index - 1]); SetDParam(0, _autosave_dropdown[index - 1]);
break; break;
} }
case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break; case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break;
case WID_GO_NORMAL_FONT_VALUE:
case WID_GO_SMALL_FONT_VALUE:
case WID_GO_LARGE_FONT_VALUE:
case WID_GO_MONO_FONT_VALUE: {
SetDParam(0, this->font_sizes[static_cast<FontSize>(Clamp(widget - WID_GO_NORMAL_FONT_VALUE, FS_BEGIN, FS_END))]);
break;
}
case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->GetListLabel()); break; case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->GetListLabel()); break;
case WID_GO_BASE_SFX_DROPDOWN: SetDParamStr(0, BaseSounds::GetUsedSet()->GetListLabel()); break; case WID_GO_BASE_SFX_DROPDOWN: SetDParamStr(0, BaseSounds::GetUsedSet()->GetListLabel()); break;
case WID_GO_BASE_MUSIC_DROPDOWN: SetDParamStr(0, BaseMusic::GetUsedSet()->GetListLabel()); break; case WID_GO_BASE_MUSIC_DROPDOWN: SetDParamStr(0, BaseMusic::GetUsedSet()->GetListLabel()); break;
@@ -596,7 +609,7 @@ struct GameOptionsWindow : Window {
void SetTab(WidgetID widget) void SetTab(WidgetID widget)
{ {
this->SetWidgetsLoweredState(false, WID_GO_TAB_GENERAL, WID_GO_TAB_INTERFACE, WID_GO_TAB_GRAPHICS, WID_GO_TAB_SOUND, WID_GO_TAB_SOCIAL); this->SetWidgetsLoweredState(false, WID_GO_TAB_GENERAL, WID_GO_TAB_INTERFACE, WID_GO_TAB_FONTS, WID_GO_TAB_GRAPHICS, WID_GO_TAB_SOUND, WID_GO_TAB_SOCIAL);
this->LowerWidget(widget); this->LowerWidget(widget);
GameOptionsWindow::active_tab = widget; GameOptionsWindow::active_tab = widget;
@@ -604,9 +617,10 @@ struct GameOptionsWindow : Window {
switch (widget) { switch (widget) {
case WID_GO_TAB_GENERAL: pane = 0; break; case WID_GO_TAB_GENERAL: pane = 0; break;
case WID_GO_TAB_INTERFACE: pane = 1; break; case WID_GO_TAB_INTERFACE: pane = 1; break;
case WID_GO_TAB_GRAPHICS: pane = 2; break; case WID_GO_TAB_FONTS: pane = 2; break;
case WID_GO_TAB_SOUND: pane = 3; break; case WID_GO_TAB_GRAPHICS: pane = 3; break;
case WID_GO_TAB_SOCIAL: pane = 4; break; case WID_GO_TAB_SOUND: pane = 4; break;
case WID_GO_TAB_SOCIAL: pane = 5; break;
default: NOT_REACHED(); default: NOT_REACHED();
} }
@@ -700,6 +714,7 @@ struct GameOptionsWindow : Window {
switch (widget) { switch (widget) {
case WID_GO_TAB_GENERAL: case WID_GO_TAB_GENERAL:
case WID_GO_TAB_INTERFACE: case WID_GO_TAB_INTERFACE:
case WID_GO_TAB_FONTS:
case WID_GO_TAB_GRAPHICS: case WID_GO_TAB_GRAPHICS:
case WID_GO_TAB_SOUND: case WID_GO_TAB_SOUND:
case WID_GO_TAB_SOCIAL: case WID_GO_TAB_SOCIAL:
@@ -800,6 +815,37 @@ struct GameOptionsWindow : Window {
ClearFontCache(); ClearFontCache();
break; break;
#endif /* HAS_TRUETYPE_FONT */ #endif /* HAS_TRUETYPE_FONT */
case WID_GO_NORMAL_FONT_L:
case WID_GO_NORMAL_FONT_R:
case WID_GO_SMALL_FONT_L:
case WID_GO_SMALL_FONT_R:
case WID_GO_LARGE_FONT_L:
case WID_GO_LARGE_FONT_R:
case WID_GO_MONO_FONT_L:
case WID_GO_MONO_FONT_R: {
int index = widget - WID_GO_NORMAL_FONT_L;
FontSize fs = static_cast<FontSize>(Clamp((widget - WID_GO_NORMAL_FONT_L) / 2, FS_BEGIN, FS_END));
if (index % 2 == 0) {
this->font_sizes[fs] = Clamp(this->font_sizes[fs] - 1, 0, 200);
} else {
this->font_sizes[fs] = Clamp(this->font_sizes[fs] + 1, 0, 200);
}
break;
}
case WID_GO_NORMAL_FONT_VALUE:
case WID_GO_SMALL_FONT_VALUE:
case WID_GO_LARGE_FONT_VALUE:
case WID_GO_MONO_FONT_VALUE: {
int index = Clamp(widget - WID_GO_NORMAL_FONT_VALUE, FS_BEGIN, FS_END);
this->query_widget = widget;
FontSize fs = static_cast<FontSize>(index);
SetDParam(0, this->font_sizes[fs]);
ShowQueryString(STR_JUST_INT, STR_GAME_OPTIONS_FONT_NORMAL + index, 3, this, CS_NUMERAL, QSF_NONE);
break;
}
case WID_GO_MOUSE_CURSOR: case WID_GO_MOUSE_CURSOR:
if (_settings_client.gui.draw_mouse_cursor) { if (_settings_client.gui.draw_mouse_cursor) {
UndrawMouseCursor(); UndrawMouseCursor();
@@ -917,13 +963,44 @@ struct GameOptionsWindow : Window {
} }
} }
void OnQueryTextFinished(char *str) override
{
if (str == nullptr) return;
int index = Clamp(this->query_widget - WID_GO_NORMAL_FONT_VALUE, FS_BEGIN, FS_END);
this->font_sizes[index] = Clamp(atoi(str), 0, 200);
}
bool anySizeSettingChanged()
{
if (this->gui_scale != _gui_scale || this->button_ratio != _button_ratio) {
return true;
}
for (FontSize fs = FS_BEGIN; fs < FS_END; fs++){
FontCacheSubSetting *fc = GetFontCacheSubSetting(fs);
if (this->font_sizes[fs] != fc->size)
return true;
}
return false;
}
void OnMouseLoop() override void OnMouseLoop() override
{ {
if (_left_button_down || (this->gui_scale == _gui_scale && this->button_ratio == _button_ratio)) return; if (_left_button_down || !anySizeSettingChanged()) return;
_gui_scale_cfg = this->gui_scale; _gui_scale_cfg = this->gui_scale;
_button_ratio_cfg = this->button_ratio; _button_ratio_cfg = this->button_ratio;
for (FontSize fs = FS_BEGIN; fs < FS_END; fs++){
FontCacheSubSetting *fc = GetFontCacheSubSetting(fs);
if (this->font_sizes[fs] != fc->size) {
ResizeFont(fs, this->font_sizes[fs]);
return;
}
}
if (AdjustGUIZoom(false)) { if (AdjustGUIZoom(false)) {
ReInitAllWindows(true); ReInitAllWindows(true);
this->SetWidgetLoweredState(WID_GO_GUI_SCALE_AUTO, false); this->SetWidgetLoweredState(WID_GO_GUI_SCALE_AUTO, false);
@@ -1055,6 +1132,7 @@ static constexpr NWidgetPart _nested_game_options_widgets[] = {
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPadding(WidgetDimensions::unscaled.sparse), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPadding(WidgetDimensions::unscaled.sparse),
NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_GENERAL), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_GENERAL, STR_GAME_OPTIONS_TAB_GENERAL_TT), SetFill(1, 0), NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_GENERAL), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_GENERAL, STR_GAME_OPTIONS_TAB_GENERAL_TT), SetFill(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_INTERFACE), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_INTERFACE, STR_GAME_OPTIONS_TAB_INTERFACE_TT), SetFill(1, 0), NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_INTERFACE), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_INTERFACE, STR_GAME_OPTIONS_TAB_INTERFACE_TT), SetFill(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_FONTS), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_FONTS, STR_GAME_OPTIONS_TAB_FONTS_TT), SetFill(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_GRAPHICS), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_GRAPHICS, STR_GAME_OPTIONS_TAB_GRAPHICS_TT), SetFill(1, 0), NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_GRAPHICS), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_GRAPHICS, STR_GAME_OPTIONS_TAB_GRAPHICS_TT), SetFill(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_SOUND), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_SOUND, STR_GAME_OPTIONS_TAB_SOUND_TT), SetFill(1, 0), NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_SOUND), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_SOUND, STR_GAME_OPTIONS_TAB_SOUND_TT), SetFill(1, 0),
NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_SOCIAL), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_SOCIAL, STR_GAME_OPTIONS_TAB_SOCIAL_TT), SetFill(1, 0), NWidget(WWT_TEXTBTN, COLOUR_YELLOW, WID_GO_TAB_SOCIAL), SetMinimalTextLines(2, 0), SetDataTip(STR_GAME_OPTIONS_TAB_SOCIAL, STR_GAME_OPTIONS_TAB_SOCIAL_TT), SetFill(1, 0),
@@ -1106,6 +1184,18 @@ static constexpr NWidgetPart _nested_game_options_widgets[] = {
NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_GUI_SCALE_BEVELS, STR_NULL), NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_GUI_SCALE_BEVELS, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_GUI_SCALE_BEVEL_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_GUI_SCALE_BEVELS_TOOLTIP), NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_GUI_SCALE_BEVEL_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_GUI_SCALE_BEVELS_TOOLTIP),
EndContainer(), EndContainer(),
NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0),
NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_CONFIG_SETTING_MOUSE_CURSOR, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_MOUSE_CURSOR), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_CONFIG_SETTING_MOUSE_CURSOR_HELPTEXT),
EndContainer(),
NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0),
NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_CONFIG_SETTING_WINDOWS_TITLEBARS, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_WINDOWS_TITLEBARS), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_CONFIG_SETTING_WINDOWS_TITLEBARS_HELPTEXT),
EndContainer(),
EndContainer(),
/* Fonts tab */
NWidget(NWID_VERTICAL), SetPadding(WidgetDimensions::unscaled.sparse), SetPIP(0, WidgetDimensions::unscaled.vsep_wide, 0),
#ifdef HAS_TRUETYPE_FONT #ifdef HAS_TRUETYPE_FONT
NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0), NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0),
NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_GUI_FONT_SPRITE, STR_NULL), NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_GUI_FONT_SPRITE, STR_NULL),
@@ -1117,12 +1207,28 @@ static constexpr NWidgetPart _nested_game_options_widgets[] = {
EndContainer(), EndContainer(),
#endif /* HAS_TRUETYPE_FONT */ #endif /* HAS_TRUETYPE_FONT */
NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0), NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0),
NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_CONFIG_SETTING_MOUSE_CURSOR, STR_NULL), NWidget(WWT_TEXT, COLOUR_GREY), SetTextStyle(TC_BLACK, FS_NORMAL), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FONT_NORMAL, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_MOUSE_CURSOR), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_CONFIG_SETTING_MOUSE_CURSOR_HELPTEXT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_NORMAL_FONT_L), SetDataTip(AWV_DECREASE, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_NORMAL_FONT_VALUE), SetDataTip(STR_JUST_INT, STR_NULL), SetTextStyle(TC_WHITE),
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_NORMAL_FONT_R), SetDataTip(AWV_INCREASE, STR_NULL),
EndContainer(), EndContainer(),
NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0), NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0),
NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_CONFIG_SETTING_WINDOWS_TITLEBARS, STR_NULL), NWidget(WWT_TEXT, COLOUR_GREY), SetTextStyle(TC_BLACK, FS_SMALL), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FONT_SMALL, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_WINDOWS_TITLEBARS), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_CONFIG_SETTING_WINDOWS_TITLEBARS_HELPTEXT), NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_SMALL_FONT_L), SetDataTip(AWV_DECREASE, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_SMALL_FONT_VALUE), SetDataTip(STR_JUST_INT, STR_NULL), SetTextStyle(TC_WHITE),
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_SMALL_FONT_R), SetDataTip(AWV_INCREASE, STR_NULL),
EndContainer(),
NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0),
NWidget(WWT_TEXT, COLOUR_GREY), SetTextStyle(TC_BLACK, FS_LARGE), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FONT_LARGE, STR_NULL),
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_LARGE_FONT_L), SetDataTip(AWV_DECREASE, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_LARGE_FONT_VALUE), SetDataTip(STR_JUST_INT, STR_NULL), SetTextStyle(TC_WHITE),
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_LARGE_FONT_R), SetDataTip(AWV_INCREASE, STR_NULL),
EndContainer(),
NWidget(NWID_HORIZONTAL), SetPIP(0, WidgetDimensions::unscaled.hsep_normal, 0),
NWidget(WWT_TEXT, COLOUR_GREY), SetTextStyle(TC_BLACK, FS_MONO), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FONT_MONO, STR_NULL),
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_MONO_FONT_L), SetDataTip(AWV_DECREASE, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GO_MONO_FONT_VALUE), SetDataTip(STR_JUST_INT, STR_NULL), SetTextStyle(TC_WHITE),
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_GO_MONO_FONT_R), SetDataTip(AWV_INCREASE, STR_NULL),
EndContainer(), EndContainer(),
EndContainer(), EndContainer(),

View File

@@ -14,6 +14,7 @@
enum GameOptionsWidgets : WidgetID { enum GameOptionsWidgets : WidgetID {
WID_GO_TAB_GENERAL, ///< General tab. WID_GO_TAB_GENERAL, ///< General tab.
WID_GO_TAB_INTERFACE, ///< Interface tab. WID_GO_TAB_INTERFACE, ///< Interface tab.
WID_GO_TAB_FONTS, ///< Fonts tab.
WID_GO_TAB_GRAPHICS, ///< Graphics tab. WID_GO_TAB_GRAPHICS, ///< Graphics tab.
WID_GO_TAB_SOUND, ///< Sound tab. WID_GO_TAB_SOUND, ///< Sound tab.
WID_GO_TAB_SOCIAL, ///< Social tab. WID_GO_TAB_SOCIAL, ///< Social tab.
@@ -36,6 +37,18 @@ enum GameOptionsWidgets : WidgetID {
WID_GO_GUI_SCALE_BEVEL_BUTTON, ///< Toggle for chunky bevels. WID_GO_GUI_SCALE_BEVEL_BUTTON, ///< Toggle for chunky bevels.
WID_GO_GUI_FONT_SPRITE, ///< Toggle whether to prefer the sprite font over TTF fonts. WID_GO_GUI_FONT_SPRITE, ///< Toggle whether to prefer the sprite font over TTF fonts.
WID_GO_GUI_FONT_AA, ///< Toggle whether to anti-alias fonts. WID_GO_GUI_FONT_AA, ///< Toggle whether to anti-alias fonts.
WID_GO_NORMAL_FONT_VALUE, ///< Toggle whether to anti-alias fonts.
WID_GO_SMALL_FONT_VALUE, ///< Toggle whether to anti-alias fonts.
WID_GO_LARGE_FONT_VALUE, ///< Toggle whether to anti-alias fonts.
WID_GO_MONO_FONT_VALUE, ///< Toggle whether to anti-alias fonts.
WID_GO_NORMAL_FONT_L, ///< Toggle whether to anti-alias fonts.
WID_GO_NORMAL_FONT_R, ///< Toggle whether to anti-alias fonts.
WID_GO_SMALL_FONT_L, ///< Toggle whether to anti-alias fonts.
WID_GO_SMALL_FONT_R, ///< Toggle whether to anti-alias fonts.
WID_GO_LARGE_FONT_L, ///< Toggle whether to anti-alias fonts.
WID_GO_LARGE_FONT_R, ///< Toggle whether to anti-alias fonts.
WID_GO_MONO_FONT_L, ///< Toggle whether to anti-alias fonts.
WID_GO_MONO_FONT_R, ///< Toggle whether to anti-alias fonts.
WID_GO_BASE_GRF_DROPDOWN, ///< Use to select a base GRF. WID_GO_BASE_GRF_DROPDOWN, ///< Use to select a base GRF.
WID_GO_BASE_GRF_PARAMETERS, ///< Base GRF parameters. WID_GO_BASE_GRF_PARAMETERS, ///< Base GRF parameters.
WID_GO_BASE_GRF_OPEN_URL, ///< Open base GRF URL. WID_GO_BASE_GRF_OPEN_URL, ///< Open base GRF URL.