summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroy <tom_adams@web.de>2023-06-12 22:37:41 +0200
committerGitHub <noreply@github.com>2023-06-12 22:37:41 +0200
commit1b86d54d3355fb684a801eec036d046c85b920e5 (patch)
treeb47279afea004b6e41ea36621e7b9736db37a367
parent8ab9c7f4ba33d816f40be9fde0a093653fdcdc27 (diff)
parenta5b5bcf3a861fd75c284b71d623e3cd687858d6b (diff)
Merge pull request #3163 from Robyt3/ScrollbarScale-static-duplication
Make scrollbar scale singletons static members of CUI
-rw-r--r--src/game/client/components/menus_browser.cpp2
-rw-r--r--src/game/client/components/menus_callback.cpp8
-rw-r--r--src/game/client/components/menus_settings.cpp6
-rw-r--r--src/game/client/ui.cpp3
-rw-r--r--src/game/client/ui.h15
5 files changed, 20 insertions, 14 deletions
diff --git a/src/game/client/components/menus_browser.cpp b/src/game/client/components/menus_browser.cpp
index 0a29d1b65..20f34f3e8 100644
--- a/src/game/client/components/menus_browser.cpp
+++ b/src/game/client/components/menus_browser.cpp
@@ -1801,7 +1801,7 @@ void CMenus::RenderServerbrowserFilterTab(CUIRect View)
Button.Draw(vec4(0.0f, 0.0f, 0.0f, 0.25f));
Button.VMargin(4.0f, &Button);
static int s_BrFilterPing = 0;
- Value = LogarithmicScrollbarScale.ToAbsolute(UI()->DoScrollbarH(&s_BrFilterPing, &Button, LogarithmicScrollbarScale.ToRelative(Value, Min, Max)), Min, Max);
+ Value = CUI::ms_LogarithmicScrollbarScale.ToAbsolute(UI()->DoScrollbarH(&s_BrFilterPing, &Button, CUI::ms_LogarithmicScrollbarScale.ToRelative(Value, Min, Max)), Min, Max);
if(Value != FilterInfo.m_Ping)
{
FilterInfo.m_Ping = Value;
diff --git a/src/game/client/components/menus_callback.cpp b/src/game/client/components/menus_callback.cpp
index 8f6eb03cc..3da1b628c 100644
--- a/src/game/client/components/menus_callback.cpp
+++ b/src/game/client/components/menus_callback.cpp
@@ -145,11 +145,11 @@ float CMenus::RenderSettingsControlsMouse(CUIRect View)
View.HSplitTop(Spacing, 0, &View);
View.HSplitTop(ButtonHeight, &Button, &View);
- UI()->DoScrollbarOption(&Config()->m_InpMousesens, &Config()->m_InpMousesens, &Button, Localize("In-game mouse sens."), 1, 500, &LogarithmicScrollbarScale);
+ UI()->DoScrollbarOption(&Config()->m_InpMousesens, &Config()->m_InpMousesens, &Button, Localize("In-game mouse sens."), 1, 500, &CUI::ms_LogarithmicScrollbarScale);
View.HSplitTop(Spacing, 0, &View);
View.HSplitTop(ButtonHeight, &Button, &View);
- UI()->DoScrollbarOption(&Config()->m_UiMousesens, &Config()->m_UiMousesens, &Button, Localize("Menu mouse sens."), 1, 500, &LogarithmicScrollbarScale);
+ UI()->DoScrollbarOption(&Config()->m_UiMousesens, &Config()->m_UiMousesens, &Button, Localize("Menu mouse sens."), 1, 500, &CUI::ms_LogarithmicScrollbarScale);
return BackgroundHeight;
}
@@ -217,12 +217,12 @@ float CMenus::RenderSettingsControlsJoystick(CUIRect View)
{
View.HSplitTop(Spacing, 0, &View);
View.HSplitTop(ButtonHeight, &Button, &View);
- UI()->DoScrollbarOption(&Config()->m_JoystickSens, &Config()->m_JoystickSens, &Button, Localize("In-game joystick sensitivity"), 1, 500, &LogarithmicScrollbarScale);
+ UI()->DoScrollbarOption(&Config()->m_JoystickSens, &Config()->m_JoystickSens, &Button, Localize("In-game joystick sensitivity"), 1, 500, &CUI::ms_LogarithmicScrollbarScale);
}
View.HSplitTop(Spacing, 0, &View);
View.HSplitTop(ButtonHeight, &Button, &View);
- UI()->DoScrollbarOption(&Config()->m_UiJoystickSens, &Config()->m_UiJoystickSens, &Button, Localize("Menu/Editor joystick sensitivity"), 1, 500, &LogarithmicScrollbarScale);
+ UI()->DoScrollbarOption(&Config()->m_UiJoystickSens, &Config()->m_UiJoystickSens, &Button, Localize("Menu/Editor joystick sensitivity"), 1, 500, &CUI::ms_LogarithmicScrollbarScale);
View.HSplitTop(Spacing, 0, &View);
View.HSplitTop(ButtonHeight, &Button, &View);
diff --git a/src/game/client/components/menus_settings.cpp b/src/game/client/components/menus_settings.cpp
index a433646db..86c673556 100644
--- a/src/game/client/components/menus_settings.cpp
+++ b/src/game/client/components/menus_settings.cpp
@@ -999,7 +999,7 @@ void CMenus::RenderSettingsGeneral(CUIRect MainView)
Client.HSplitTop(Spacing, 0, &Client);
Client.HSplitTop(ButtonHeight, &Button, &Client);
Button.VSplitLeft(ButtonHeight, 0, &Button);
- UI()->DoScrollbarOption(&Config()->m_ClAutoDemoMax, &Config()->m_ClAutoDemoMax, &Button, Localize("Max"), 0, 1000, &LogarithmicScrollbarScale, true);
+ UI()->DoScrollbarOption(&Config()->m_ClAutoDemoMax, &Config()->m_ClAutoDemoMax, &Button, Localize("Max"), 0, 1000, &CUI::ms_LogarithmicScrollbarScale, true);
}
Client.HSplitTop(Spacing, 0, &Client);
@@ -1012,7 +1012,7 @@ void CMenus::RenderSettingsGeneral(CUIRect MainView)
Client.HSplitTop(Spacing, 0, &Client);
Client.HSplitTop(ButtonHeight, &Button, &Client);
Button.VSplitLeft(ButtonHeight, 0, &Button);
- UI()->DoScrollbarOption(&Config()->m_ClAutoScreenshotMax, &Config()->m_ClAutoScreenshotMax, &Button, Localize("Max"), 0, 1000, &LogarithmicScrollbarScale, true);
+ UI()->DoScrollbarOption(&Config()->m_ClAutoScreenshotMax, &Config()->m_ClAutoScreenshotMax, &Button, Localize("Max"), 0, 1000, &CUI::ms_LogarithmicScrollbarScale, true);
}
MainView.HSplitTop(10.0f, 0, &MainView);
@@ -1940,7 +1940,7 @@ void CMenus::RenderSettingsSound(CUIRect MainView)
}
Right.HSplitTop(ButtonHeight, &Button, &Right);
- UI()->DoScrollbarOption(&Config()->m_SndVolume, &Config()->m_SndVolume, &Button, Localize("Volume"), 0, 100, &LogarithmicScrollbarScale);
+ UI()->DoScrollbarOption(&Config()->m_SndVolume, &Config()->m_SndVolume, &Button, Localize("Volume"), 0, 100, &CUI::ms_LogarithmicScrollbarScale);
}
else
{
diff --git a/src/game/client/ui.cpp b/src/game/client/ui.cpp
index b5d862474..b71bec531 100644
--- a/src/game/client/ui.cpp
+++ b/src/game/client/ui.cpp
@@ -25,6 +25,9 @@ const vec4 CUI::ms_HighlightTextColor(0.0f, 0.0f, 0.0f, 1.0f);
const vec4 CUI::ms_HighlightTextOutlineColor(1.0f, 1.0f, 1.0f, 0.25f);
const vec4 CUI::ms_TransparentTextColor(1.0f, 1.0f, 1.0f, 0.5f);
+const CLinearScrollbarScale CUI::ms_LinearScrollbarScale;
+const CLogarithmicScrollbarScale CUI::ms_LogarithmicScrollbarScale(25);
+
CUI *CUIElementBase::s_pUI = 0;
IClient *CUIElementBase::Client() const { return s_pUI->Client(); }
diff --git a/src/game/client/ui.h b/src/game/client/ui.h
index 1bf6a0413..f541013b1 100644
--- a/src/game/client/ui.h
+++ b/src/game/client/ui.h
@@ -13,7 +13,7 @@ public:
virtual float ToRelative(int AbsoluteValue, int Min, int Max) const = 0;
virtual int ToAbsolute(float RelativeValue, int Min, int Max) const = 0;
};
-static class CLinearScrollbarScale : public IScrollbarScale
+class CLinearScrollbarScale : public IScrollbarScale
{
public:
float ToRelative(int AbsoluteValue, int Min, int Max) const
@@ -24,8 +24,8 @@ public:
{
return round_to_int(RelativeValue*(Max - Min) + Min + 0.1f);
}
-} const LinearScrollbarScale;
-static class CLogarithmicScrollbarScale : public IScrollbarScale
+};
+class CLogarithmicScrollbarScale : public IScrollbarScale
{
private:
int m_MinAdjustment;
@@ -55,7 +55,7 @@ public:
}
return round_to_int(exp(RelativeValue*(log(Max) - log(Min)) + log(Min))) + ResultAdjustment;
}
-} const LogarithmicScrollbarScale(25);
+};
class IButtonColorFunction
@@ -190,6 +190,9 @@ public:
static const float ms_ListheaderHeight;
static const float ms_FontmodHeight;
+ static const CLinearScrollbarScale ms_LinearScrollbarScale;
+ static const CLogarithmicScrollbarScale ms_LogarithmicScrollbarScale;
+
void Init(class IKernel *pKernel);
class IClient *Client() const { return m_pClient; }
class CConfig *Config() const { return m_pConfig; }
@@ -269,8 +272,8 @@ public:
// scrollbars
float DoScrollbarV(const void *pID, const CUIRect *pRect, float Current);
float DoScrollbarH(const void *pID, const CUIRect *pRect, float Current);
- void DoScrollbarOption(const void *pID, int *pOption, const CUIRect *pRect, const char *pStr, int Min, int Max, const IScrollbarScale *pScale = &LinearScrollbarScale, bool Infinite = false);
- void DoScrollbarOptionLabeled(const void *pID, int *pOption, const CUIRect *pRect, const char *pStr, const char *apLabels[], int NumLabels, const IScrollbarScale *pScale = &LinearScrollbarScale);
+ void DoScrollbarOption(const void *pID, int *pOption, const CUIRect *pRect, const char *pStr, int Min, int Max, const IScrollbarScale *pScale = &ms_LinearScrollbarScale, bool Infinite = false);
+ void DoScrollbarOptionLabeled(const void *pID, int *pOption, const CUIRect *pRect, const char *pStr, const char *apLabels[], int NumLabels, const IScrollbarScale *pScale = &ms_LinearScrollbarScale);
// tooltips
void DoTooltip(const void *pID, const CUIRect *pRect, const char *pText);