#pragma once #include #include #include #include #include #include #include #include #include #include "config.hpp" class ConfigWindow : public QDialog { Q_OBJECT private: using ConfigCallback = std::function; enum class Theme : int { System = 0, Light = 1, Dark = 2, GreetingsCat = 3, }; Theme currentTheme; QComboBox* themeSelect = nullptr; // The config class holds a copy of the emulator config which it edits and sends // over to the emulator EmulatorConfig config; ConfigCallback updateConfig; void setTheme(Theme theme); public: ConfigWindow(ConfigCallback callback, const EmulatorConfig& config, QWidget* parent = nullptr); ~ConfigWindow(); EmulatorConfig& getConfig() { return config; } };