12 #include "settings/SettingControl.h" 13 #include "settings/lib/ISettingCallback.h" 14 #include "threads/Timer.h" 15 #include "utils/ILocalizer.h" 20 #define CONTROL_SETTINGS_LABEL 2 21 #define CONTROL_SETTINGS_DESCRIPTION 6 23 #define CONTROL_SETTINGS_OKAY_BUTTON 28 24 #define CONTROL_SETTINGS_CANCEL_BUTTON 29 25 #define CONTROL_SETTINGS_CUSTOM_BUTTON 30 27 #define CONTROL_SETTINGS_START_BUTTONS -100 28 #define CONTROL_SETTINGS_START_CONTROL -80 30 #define SETTINGS_RESET_SETTING_ID "settings.reset" 31 #define SETTINGS_EMPTY_CATEGORY_ID "categories.empty" 54 typedef std::shared_ptr<CGUIControlBaseSetting> BaseSettingControlPtr;
68 bool OnAction(
const CAction& action)
override;
69 bool OnBack(
int actionID)
override;
70 void DoProcess(
unsigned int currentTime, CDirtyRegionList& dirtyregions)
override;
72 virtual bool IsConfirmed()
const {
return m_confirmed; }
75 std::string Localize(std::uint32_t
code)
const override {
return GetLocalizedString(code); }
82 void OnTimeout()
override;
85 void OnSettingChanged(
const std::shared_ptr<const CSetting>& setting)
override;
87 const char* propertyName)
override;
90 virtual bool AllowResettingSettings()
const {
return true; }
91 virtual int GetSettingLevel()
const {
return 0; }
92 virtual std::shared_ptr<CSettingSection> GetSection() = 0;
93 virtual std::shared_ptr<CSetting> GetSetting(
const std::string& settingId) = 0;
94 virtual std::chrono::milliseconds GetDelayMs()
const {
return std::chrono::milliseconds(1500); }
95 virtual std::string GetLocalizedString(uint32_t labelId)
const;
102 virtual void OnCancel() {}
104 virtual void SetupView();
105 virtual std::set<std::string> CreateSettings();
106 virtual void UpdateSettings();
118 virtual std::string
GetSettingsLabel(
const std::shared_ptr<ISetting>& pSetting);
120 virtual CGUIControl* AddSetting(
const std::shared_ptr<CSetting>& pSetting,
124 BaseSettingControlPtr pSettingControl,
128 virtual void SetupControls(
bool createSettings =
true);
129 virtual void FreeControls();
130 virtual void DeleteControls();
131 virtual void FreeSettingsControls();
133 virtual void SetHeading(
const CVariant& label);
134 virtual void SetDescription(
const CVariant& label);
136 virtual void OnResetSettings();
149 virtual void OnClick(
const BaseSettingControlPtr& pSettingControl);
151 void UpdateSettingControl(
const std::string& settingId,
bool updateDisplayOnly =
false);
152 void UpdateSettingControl(
const BaseSettingControlPtr& pSettingControl,
153 bool updateDisplayOnly =
false);
154 void SetControlLabel(
int controlId,
const CVariant& label);
156 BaseSettingControlPtr GetSettingControl(
const std::string& setting);
157 BaseSettingControlPtr GetSettingControl(
int controlId);
159 CGUIControl* AddSeparator(
float width,
int& iControlID);
164 std::vector<std::shared_ptr<CSettingCategory>> m_categories;
165 std::vector<BaseSettingControlPtr> m_settingControls;
169 std::shared_ptr<CSettingAction> m_resetSetting;
170 std::shared_ptr<CSettingCategory> m_dummyCategory;
181 bool m_newOriginalEdit =
false;
183 BaseSettingControlPtr
187 bool m_confirmed =
false;
188 int m_focusedControl = 0, m_fadedControl = 0;
Category of groups of settings being part of a section.
Definition: SettingSection.h:93
Definition: GUIControlSettings.h:37
Definition: GUIEditControl.h:26
virtual std::string GetSettingsLabel(const std::shared_ptr< ISetting > &pSetting)
Get the name for the setting entry.
Definition: GUIDialogSettingsBase.cpp:621
void OnSettingPropertyChanged(const std::shared_ptr< const CSetting > &setting, const char *propertyName) override
The given property of the given setting has changed.
Definition: GUIDialogSettingsBase.cpp:519
void OnInitWindow() override
Called on window open.
Definition: GUIDialogSettingsBase.cpp:347
Definition: SettingControl.h:30
Definition: ISettingCallback.h:16
Base class for controls.
Definition: GUIControl.h:83
Setting base class containing all the properties which are common to all settings independent of the ...
Definition: Setting.h:46
Definition: GUISettingsSliderControl.h:23
Interface defining the base of all setting objects.
Definition: ISetting.h:22
Section of setting categories.
Definition: SettingSection.h:152
Definition: GUILabelControl.h:24
Definition: ILocalizer.h:14
Class encapsulating information regarding a particular user action to be sent to windows and controls...
Definition: Action.h:21
Definition: GUIDialog.h:35
Action setting implementation.
Definition: Setting.h:506
BaseSettingControlPtr m_delayedSetting
Current delayed setting.
Definition: GUIDialogSettingsBase.h:184
Definition: GUIMessage.h:365
Definition: inftrees.h:24
Definition: GUIImage.h:27
Definition: SmartPlayList.cpp:137
Definition: GUIDialogSettingsBase.h:56
Group of settings being part of a category.
Definition: SettingSection.h:28
CTimer m_delayedTimer
Delayed setting timer.
Definition: GUIDialogSettingsBase.h:185
Definition: GUISpinControlEx.h:23
virtual void OnClick(const BaseSettingControlPtr &pSettingControl)
A setting control has been interacted with by the user.
Definition: GUIDialogSettingsBase.cpp:871
void OnSettingChanged(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting has changed.
Definition: GUIDialogSettingsBase.cpp:510