supercell-wx/scwx-qt/source/scwx/qt/settings/ui_settings.hpp
2025-01-29 10:10:14 -05:00

44 lines
1.2 KiB
C++

#pragma once
#include <scwx/qt/settings/settings_category.hpp>
#include <scwx/qt/settings/settings_variable.hpp>
#include <memory>
#include <string>
namespace scwx::qt::settings
{
class UiSettingsImpl;
class UiSettings : public SettingsCategory
{
public:
explicit UiSettings();
~UiSettings() override;
UiSettings(const UiSettings&) = delete;
UiSettings& operator=(const UiSettings&) = delete;
UiSettings(UiSettings&&) noexcept;
UiSettings& operator=(UiSettings&&) noexcept;
[[nodiscard]] SettingsVariable<bool>& level2_products_expanded() const;
[[nodiscard]] SettingsVariable<bool>& level2_settings_expanded() const;
[[nodiscard]] SettingsVariable<bool>& level3_products_expanded() const;
[[nodiscard]] SettingsVariable<bool>& map_settings_expanded() const;
[[nodiscard]] SettingsVariable<bool>& timeline_expanded() const;
[[nodiscard]] SettingsVariable<std::string>& main_ui_state() const;
[[nodiscard]] SettingsVariable<std::string>& main_ui_geometry() const;
bool Shutdown();
static UiSettings& Instance();
friend bool operator==(const UiSettings& lhs, const UiSettings& rhs);
private:
std::unique_ptr<UiSettingsImpl> p;
};
} // namespace scwx::qt::settings