summaryrefslogtreecommitdiffstats
path: root/src/common/settings_setting.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/settings_setting.h')
-rw-r--r--src/common/settings_setting.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/common/settings_setting.h b/src/common/settings_setting.h
index a0a05da54..9805a5b5d 100644
--- a/src/common/settings_setting.h
+++ b/src/common/settings_setting.h
@@ -35,10 +35,12 @@ public:
* @param category_ Category of the setting AKA INI group
*/
explicit Setting(Linkage& linkage, const Type& default_val, const std::string& name,
- enum Category category_, bool save_ = true, bool runtime_modifiable_ = false)
+ enum Category category_,
+ enum Specialization specialization = Specialization::Default,
+ bool save_ = true, bool runtime_modifiable_ = false)
requires(!ranged)
- : BasicSetting(linkage, name, category_, save_, runtime_modifiable_), value{default_val},
- default_value{default_val} {}
+ : BasicSetting(linkage, name, category_, save_, runtime_modifiable_, specialization),
+ value{default_val}, default_value{default_val} {}
virtual ~Setting() = default;
/**
@@ -53,10 +55,11 @@ public:
*/
explicit Setting(Linkage& linkage, const Type& default_val, const Type& min_val,
const Type& max_val, const std::string& name, enum Category category_,
+ enum Specialization specialization = Specialization::Default,
bool save_ = true, bool runtime_modifiable_ = false)
requires(ranged)
- : BasicSetting(linkage, name, category_, save_, runtime_modifiable_), value{default_val},
- default_value{default_val}, maximum{max_val}, minimum{min_val} {}
+ : BasicSetting(linkage, name, category_, save_, runtime_modifiable_, specialization),
+ value{default_val}, default_value{default_val}, maximum{max_val}, minimum{min_val} {}
/**
* Returns a reference to the setting's value.
@@ -230,10 +233,12 @@ public:
* @param category_ Category of the setting AKA INI group
*/
explicit SwitchableSetting(Linkage& linkage, const Type& default_val, const std::string& name,
- Category category_, bool save_ = true,
- bool runtime_modifiable_ = false)
+ Category category_,
+ enum Specialization specialization = Specialization::Default,
+ bool save_ = true, bool runtime_modifiable_ = false)
requires(!ranged)
- : Setting<Type, false>{linkage, default_val, name, category_, save_, runtime_modifiable_} {
+ : Setting<Type, false>{linkage, default_val, name, category_, specialization,
+ save_, runtime_modifiable_} {
linkage.restore_functions.emplace_back([this]() { this->SetGlobal(true); });
}
virtual ~SwitchableSetting() = default;
@@ -250,10 +255,12 @@ public:
*/
explicit SwitchableSetting(Linkage& linkage, const Type& default_val, const Type& min_val,
const Type& max_val, const std::string& name, Category category_,
+ enum Specialization specialization = Specialization::Default,
bool save_ = true, bool runtime_modifiable_ = false)
requires(ranged)
- : Setting<Type, true>{linkage, default_val, min_val, max_val,
- name, category_, save_, runtime_modifiable_} {
+ : Setting<Type, true>{linkage, default_val, min_val,
+ max_val, name, category_,
+ specialization, save_, runtime_modifiable_} {
linkage.restore_functions.emplace_back([this]() { this->SetGlobal(true); });
}