summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2022-06-28 02:43:30 +0200
committerGitHub <noreply@github.com>2022-06-28 02:43:30 +0200
commite8965c63e41871538a97630bfdd628119fec6aca (patch)
treea1866071a5a83301e451112ae4525119e2e56f02 /Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h
parente18053d3075dd010a3a9db80d1b29b99cf7b69da (diff)
parent4c409411edb2957a0f6505aaf6c93e5c6c71f896 (diff)
Merge pull request #10682 from jordan-woyak/gate-size-setting
ControllerEmu: Allow changing the target gate radius of octagon sticks.
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h
index 467e55f039..8b36ab117e 100644
--- a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h
+++ b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h
@@ -20,13 +20,20 @@ enum class SettingType
Bool,
};
+enum class SettingVisibility
+{
+ Normal,
+ Advanced,
+};
+
struct NumericSettingDetails
{
NumericSettingDetails(const char* const _ini_name, const char* const _ui_suffix = nullptr,
const char* const _ui_description = nullptr,
- const char* const _ui_name = nullptr)
+ const char* const _ui_name = nullptr,
+ SettingVisibility _visibility = SettingVisibility::Normal)
: ini_name(_ini_name), ui_suffix(_ui_suffix), ui_description(_ui_description),
- ui_name(_ui_name ? _ui_name : _ini_name)
+ ui_name(_ui_name ? _ui_name : _ini_name), visibility(_visibility)
{
}
@@ -41,6 +48,9 @@ struct NumericSettingDetails
// The name used in the UI (if different from ini file).
const char* const ui_name;
+
+ // Advanced settings should be harder to change in the UI. They might confuse users.
+ const SettingVisibility visibility;
};
class NumericSettingBase
@@ -66,9 +76,12 @@ public:
virtual SettingType GetType() const = 0;
+ virtual void SetToDefault() = 0;
+
const char* GetUIName() const;
const char* GetUISuffix() const;
const char* GetUIDescription() const;
+ SettingVisibility GetVisibility() const;
protected:
NumericSettingDetails m_details;
@@ -92,9 +105,11 @@ public:
: NumericSettingBase(details), m_value(*value), m_default_value(default_value),
m_min_value(min_value), m_max_value(max_value)
{
- m_value.SetValue(m_default_value);
+ SetToDefault();
}
+ void SetToDefault() override { m_value.SetValue(m_default_value); }
+
void LoadFromIni(const IniFile::Section& section, const std::string& group_name) override
{
std::string str_value;