#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include "emulator.hpp" class ConfigWindow : public QDialog { Q_OBJECT private: enum class Theme : int { System = 0, Light = 1, Dark = 2, GreetingsCat = 3, Cream = 4, }; Theme currentTheme; QTextEdit* helpText = nullptr; QListWidget* widgetList = nullptr; QStackedWidget* widgetContainer = nullptr; static constexpr size_t settingWidgetCount = 6; std::array helpTexts; void addWidget(QWidget* widget, QString title, QString icon, QString helpText); void setTheme(Theme theme); public: ConfigWindow(Emulator* emu, QWidget* parent = nullptr); ~ConfigWindow(); private: Emulator* emu; };