#pragma once #include #include #include #include #include #include #include namespace scwx { namespace qt { namespace settings { class PaletteSettings : public SettingsCategory { public: explicit PaletteSettings(); ~PaletteSettings(); PaletteSettings(const PaletteSettings&) = delete; PaletteSettings& operator=(const PaletteSettings&) = delete; PaletteSettings(PaletteSettings&&) noexcept; PaletteSettings& operator=(PaletteSettings&&) noexcept; SettingsVariable& palette(const std::string& name) const; 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 settings } // namespace qt } // namespace scwx