diff options
Diffstat (limited to 'src/yuzu/configuration/shared_widget.h')
-rw-r--r-- | src/yuzu/configuration/shared_widget.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/yuzu/configuration/shared_widget.h b/src/yuzu/configuration/shared_widget.h new file mode 100644 index 000000000..559a27b41 --- /dev/null +++ b/src/yuzu/configuration/shared_widget.h @@ -0,0 +1,64 @@ +#include "yuzu/configuration/configuration_shared.h" +#include "yuzu/configuration/shared_translation.h" + +class QPushButton; +class QComboBox; +class QLineEdit; +class QSlider; +class QCheckBox; + +namespace Settings { +class BasicSetting; +} + +namespace ConfigurationShared { + +enum class RequestType { + Default, + ComboBox, + SpinBox, + Slider, + ReverseSlider, + LineEdit, + MaxEnum, +}; + +class Widget : public QWidget { + Q_OBJECT + +public: + Widget(Settings::BasicSetting* setting, const TranslationMap& translations, QWidget* parent, + bool runtime_lock, std::forward_list<std::function<void(bool)>>& apply_funcs, + RequestType request = RequestType::Default, bool managed = true, float multiplier = 1.0f, + const std::string& text_box_default = ""); + virtual ~Widget(); + + bool Valid(); + + QPushButton* restore_button{}; + QLineEdit* line_edit{}; + QCheckBox* checkbox{}; + QSlider* slider{}; + QComboBox* combobox{}; + +private: + void CreateCheckBox(const QString& label, std::function<void()>& load_func); + void CreateCheckBoxWithLineEdit(const QString& label, const std::string& text_box_default, + std::function<void()>& load_func); + void CreateCheckBoxWithSpinBox(const QString& label, const std::string& text_box_default, + std::function<void()>& load_func); + void CreateCombobox(const QString& label, bool managed, std::function<void()>& load_func); + void CreateLineEdit(const QString& label, bool managed, std::function<void()>& load_func); + void CreateSlider(const QString& label, bool reversed, float multiplier, + std::function<void()>& load_func); + + void CreateRestoreGlobalButton(); + + QWidget* parent; + const TranslationMap& translations; + Settings::BasicSetting& setting; + + bool created{false}; +}; + +} // namespace ConfigurationShared |