ControllerEmu: Allow settings to be categorized as "advanced". Make "Virtual Notches" and "Gate Size" categorized as such.

This commit is contained in:
Jordan Woyak 2022-05-19 22:33:15 -05:00
parent 643f82539c
commit 80d9e79cf1
3 changed files with 16 additions and 4 deletions

View File

@ -75,7 +75,8 @@ OctagonAnalogStick::OctagonAnalogStick(const char* name_, const char* ui_name_,
// i18n: The percent symbol. // i18n: The percent symbol.
_trans("%"), _trans("%"),
// i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. // i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements.
_trans("Adjusts target radius of simulated stick gate.")}, _trans("Adjusts target radius of simulated stick gate."), nullptr,
SettingVisibility::Advanced},
gate_radius * 100, 0.01, 100); gate_radius * 100, 0.01, 100);
} }

View File

@ -32,7 +32,8 @@ void ControlGroup::AddVirtualNotchSetting(SettingValue<double>* value, double ma
AddSetting(value, AddSetting(value,
{_trans("Virtual Notches"), {_trans("Virtual Notches"),
// i18n: The degrees symbol. // i18n: The degrees symbol.
_trans("°"), _trans("Snap the thumbstick position to the nearest octagonal axis.")}, _trans("°"), _trans("Snap the thumbstick position to the nearest octagonal axis."),
nullptr, SettingVisibility::Advanced},
0, 0, max_virtual_notch_deg); 0, 0, max_virtual_notch_deg);
} }

View File

@ -20,13 +20,20 @@ enum class SettingType
Bool, Bool,
}; };
enum class SettingVisibility
{
Normal,
Advanced,
};
struct NumericSettingDetails struct NumericSettingDetails
{ {
NumericSettingDetails(const char* const _ini_name, const char* const _ui_suffix = nullptr, NumericSettingDetails(const char* const _ini_name, const char* const _ui_suffix = nullptr,
const char* const _ui_description = 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), : 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). // The name used in the UI (if different from ini file).
const char* const ui_name; const char* const ui_name;
// Advanced settings should be harder to change in the UI. They might confuse users.
const SettingVisibility visibility;
}; };
class NumericSettingBase class NumericSettingBase