Skip to content

Commit

Permalink
ServerBrowser: Add an option to use text labels instead of icons
Browse files Browse the repository at this point in the history
  • Loading branch information
Kaffeine committed Oct 2, 2024
1 parent 672fd26 commit 93240ec
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 40 deletions.
1 change: 1 addition & 0 deletions src/engine/shared/infc_config_variables.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

#endif

MACRO_CONFIG_INT(ClPreferIconButtons, cl_prefer_icon_buttons, 1, 1, 1, CFGFLAG_SAVE | CFGFLAG_CLIENT, "Prefer icon buttons over text labels")
MACRO_CONFIG_INT(ClEnableCommunities, cl_enable_communities, 1, 1, 1, CFGFLAG_SAVE | CFGFLAG_CLIENT, "Enable the Communities browser feature")
MACRO_CONFIG_STR(ClAssetInfclass, cl_asset_infclass, 50, "default", CFGFLAG_SAVE | CFGFLAG_CLIENT, "The asset for infclass")
MACRO_CONFIG_STR(ClInfcUpdatesUrl, cl_infc_updates_url, 256, "https://infclass.github.io/files", CFGFLAG_SAVE | CFGFLAG_CLIENT, "The client updates URL")
Expand Down
70 changes: 51 additions & 19 deletions src/game/client/components/menus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -635,30 +635,62 @@ void CMenus::RenderMenubar(CUIRect Box, IClient::EClientState ClientState)
GameClient()->m_Tooltips.DoToolTip(&s_StartButton, &Button, Localize("Main menu"));

const float BrowserButtonWidth = 75.0f;
Box.VSplitLeft(10.0f, nullptr, &Box);
Box.VSplitLeft(BrowserButtonWidth, &Button, &Box);
static CButtonContainer s_InternetButton;
if(DoButton_MenuTab(&s_InternetButton, FONT_ICON_EARTH_AMERICAS, ActivePage == PAGE_INTERNET, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_INTERNET]))
{
NewPage = PAGE_INTERNET;
}
GameClient()->m_Tooltips.DoToolTip(&s_InternetButton, &Button, Localize("Internet"));

Box.VSplitLeft(BrowserButtonWidth, &Button, &Box);
static CButtonContainer s_LanButton;
if(DoButton_MenuTab(&s_LanButton, FONT_ICON_NETWORK_WIRED, ActivePage == PAGE_LAN, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_LAN]))
if(g_Config.m_ClPreferIconButtons)
{
NewPage = PAGE_LAN;
}
GameClient()->m_Tooltips.DoToolTip(&s_LanButton, &Button, Localize("LAN"));
Box.VSplitLeft(10.0f, nullptr, &Box);
Box.VSplitLeft(BrowserButtonWidth, &Button, &Box);
static CButtonContainer s_InternetButton;
if(DoButton_MenuTab(&s_InternetButton, FONT_ICON_EARTH_AMERICAS, ActivePage == PAGE_INTERNET, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_INTERNET]))
{
NewPage = PAGE_INTERNET;
}
GameClient()->m_Tooltips.DoToolTip(&s_InternetButton, &Button, Localize("Internet"));

Box.VSplitLeft(BrowserButtonWidth, &Button, &Box);
static CButtonContainer s_FavoritesButton;
if(DoButton_MenuTab(&s_FavoritesButton, FONT_ICON_STAR, ActivePage == PAGE_FAVORITES, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_FAVORITES]))
Box.VSplitLeft(BrowserButtonWidth, &Button, &Box);
static CButtonContainer s_LanButton;
if(DoButton_MenuTab(&s_LanButton, FONT_ICON_NETWORK_WIRED, ActivePage == PAGE_LAN, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_LAN]))
{
NewPage = PAGE_LAN;
}
GameClient()->m_Tooltips.DoToolTip(&s_LanButton, &Button, Localize("LAN"));

Box.VSplitLeft(BrowserButtonWidth, &Button, &Box);
static CButtonContainer s_FavoritesButton;
if(DoButton_MenuTab(&s_FavoritesButton, FONT_ICON_STAR, ActivePage == PAGE_FAVORITES, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_FAVORITES]))
{
NewPage = PAGE_FAVORITES;
}
GameClient()->m_Tooltips.DoToolTip(&s_FavoritesButton, &Button, Localize("Favorites"));
}
else
{
NewPage = PAGE_FAVORITES;
TextRender()->SetRenderFlags(0);
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
Box.VSplitLeft(10.0f, nullptr, &Box);
Box.VSplitLeft(100.0f, &Button, &Box);
static CButtonContainer s_InternetButton;
if(DoButton_MenuTab(&s_InternetButton, Localize("Internet"), ActivePage == PAGE_INTERNET, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_INTERNET]))
{
NewPage = PAGE_INTERNET;
}

Box.VSplitLeft(80.0f, &Button, &Box);
static CButtonContainer s_LanButton;
if(DoButton_MenuTab(&s_LanButton, Localize("LAN"), ActivePage == PAGE_LAN, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_LAN]))
{
NewPage = PAGE_LAN;
}

Box.VSplitLeft(110.0f, &Button, &Box);
static CButtonContainer s_FavoritesButton;
if(DoButton_MenuTab(&s_FavoritesButton, Localize("Favorites"), ActivePage == PAGE_FAVORITES, &Button, IGraphics::CORNER_T, &m_aAnimatorsBigPage[BIG_TAB_FAVORITES]))
{
NewPage = PAGE_FAVORITES;
}
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);
}
GameClient()->m_Tooltips.DoToolTip(&s_FavoritesButton, &Button, Localize("Favorites"));

size_t FavoriteCommunityIndex = 0;
static CButtonContainer s_aFavoriteCommunityButtons[5];
Expand Down
71 changes: 50 additions & 21 deletions src/game/client/components/menus_ingame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -841,32 +841,61 @@ void CMenus::RenderInGameNetwork(CUIRect MainView)

int NewPage = g_Config.m_UiPage;

TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);

TabBar.VSplitLeft(75.0f, &Button, &TabBar);
static CButtonContainer s_InternetButton;
if(DoButton_MenuTab(&s_InternetButton, FONT_ICON_EARTH_AMERICAS, g_Config.m_UiPage == PAGE_INTERNET, &Button, IGraphics::CORNER_NONE))
if(g_Config.m_ClPreferIconButtons)
{
NewPage = PAGE_INTERNET;
}
GameClient()->m_Tooltips.DoToolTip(&s_InternetButton, &Button, Localize("Internet"));
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);

TabBar.VSplitLeft(75.0f, &Button, &TabBar);
static CButtonContainer s_LanButton;
if(DoButton_MenuTab(&s_LanButton, FONT_ICON_NETWORK_WIRED, g_Config.m_UiPage == PAGE_LAN, &Button, IGraphics::CORNER_NONE))
{
NewPage = PAGE_LAN;
}
GameClient()->m_Tooltips.DoToolTip(&s_LanButton, &Button, Localize("LAN"));
TabBar.VSplitLeft(75.0f, &Button, &TabBar);
static CButtonContainer s_InternetButton;
if(DoButton_MenuTab(&s_InternetButton, FONT_ICON_EARTH_AMERICAS, g_Config.m_UiPage == PAGE_INTERNET, &Button, IGraphics::CORNER_NONE))
{
NewPage = PAGE_INTERNET;
}
GameClient()->m_Tooltips.DoToolTip(&s_InternetButton, &Button, Localize("Internet"));

TabBar.VSplitLeft(75.0f, &Button, &TabBar);
static CButtonContainer s_FavoritesButton;
if(DoButton_MenuTab(&s_FavoritesButton, FONT_ICON_STAR, g_Config.m_UiPage == PAGE_FAVORITES, &Button, IGraphics::CORNER_NONE))
TabBar.VSplitLeft(75.0f, &Button, &TabBar);
static CButtonContainer s_LanButton;
if(DoButton_MenuTab(&s_LanButton, FONT_ICON_NETWORK_WIRED, g_Config.m_UiPage == PAGE_LAN, &Button, IGraphics::CORNER_NONE))
{
NewPage = PAGE_LAN;
}
GameClient()->m_Tooltips.DoToolTip(&s_LanButton, &Button, Localize("LAN"));

TabBar.VSplitLeft(75.0f, &Button, &TabBar);
static CButtonContainer s_FavoritesButton;
if(DoButton_MenuTab(&s_FavoritesButton, FONT_ICON_STAR, g_Config.m_UiPage == PAGE_FAVORITES, &Button, IGraphics::CORNER_NONE))
{
NewPage = PAGE_FAVORITES;
}
GameClient()->m_Tooltips.DoToolTip(&s_FavoritesButton, &Button, Localize("Favorites"));
}
else
{
NewPage = PAGE_FAVORITES;
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
TextRender()->SetRenderFlags(0);

TabBar.VSplitLeft(100.0f, &Button, &TabBar);
static CButtonContainer s_InternetButton;
if(DoButton_MenuTab(&s_InternetButton, Localize("Internet"), g_Config.m_UiPage == PAGE_INTERNET, &Button, IGraphics::CORNER_NONE))
{
NewPage = PAGE_INTERNET;
}

TabBar.VSplitLeft(80.0f, &Button, &TabBar);
static CButtonContainer s_LanButton;
if(DoButton_MenuTab(&s_LanButton, Localize("LAN"), g_Config.m_UiPage == PAGE_LAN, &Button, IGraphics::CORNER_NONE))
{
NewPage = PAGE_LAN;
}

TabBar.VSplitLeft(110.0f, &Button, &TabBar);
static CButtonContainer s_FavoritesButton;
if(DoButton_MenuTab(&s_FavoritesButton, Localize("Favorites"), g_Config.m_UiPage == PAGE_FAVORITES, &Button, IGraphics::CORNER_NONE))
{
NewPage = PAGE_FAVORITES;
}
}
GameClient()->m_Tooltips.DoToolTip(&s_FavoritesButton, &Button, Localize("Favorites"));

size_t FavoriteCommunityIndex = 0;
static CButtonContainer s_aFavoriteCommunityButtons[5];
Expand Down

0 comments on commit 93240ec

Please sign in to comment.