#pragma once #include #include #include #include #include #include #include namespace scwx::qt::settings { class PaletteSettings : public SettingsCategory { public: explicit PaletteSettings(); ~PaletteSettings() override; PaletteSettings(const PaletteSettings&) = delete; PaletteSettings& operator=(const PaletteSettings&) = delete; PaletteSettings(PaletteSettings&&) noexcept; PaletteSettings& operator=(PaletteSettings&&) noexcept; [[nodiscard]] SettingsVariable& palette(const std::string& name) const; [[nodiscard]] SettingsVariable& alert_color(awips::Phenomenon phenomenon, bool active) const; AlertPaletteSettings& alert_palette(awips::Phenomenon); static const std::vector& alert_phenomena(); static PaletteSettings& Instance(); friend bool operator==(const PaletteSettings& lhs, const PaletteSettings& rhs); private: class Impl; std::unique_ptr p; }; } // namespace scwx::qt::settings