diff options
| author | Admiral H. Curtiss <pikachu025@gmail.com> | 2022-06-28 02:43:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-28 02:43:30 +0200 |
| commit | e8965c63e41871538a97630bfdd628119fec6aca (patch) | |
| tree | a1866071a5a83301e451112ae4525119e2e56f02 /Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h | |
| parent | e18053d3075dd010a3a9db80d1b29b99cf7b69da (diff) | |
| parent | 4c409411edb2957a0f6505aaf6c93e5c6c71f896 (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.h | 21 |
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; |
