83 [[nodiscard]] std::optional<std::pair<int, int>>
GetWindowSize()
const;
88 void SetTheme(
const std::string& theme);
89 [[nodiscard]] std::string
GetTheme()
const;
98 void SetString(
const std::string& key,
const std::string& value);
99 [[nodiscard]] std::optional<std::string>
GetString(
const std::string& key)
const;
101 void SetInt(
const std::string& key,
int value);
102 [[nodiscard]] std::optional<int>
GetInt(
const std::string& key)
const;
104 void SetBool(
const std::string& key,
bool value);
105 [[nodiscard]] std::optional<bool>
GetBool(
const std::string& key)
const;
107 void SetFloat(
const std::string& key,
float value);
108 [[nodiscard]] std::optional<float>
GetFloat(
const std::string& key)
const;
111 [[nodiscard]]
bool HasKey(
const std::string& key)
const;
117 [[nodiscard]] std::vector<std::string>
GetAllKeys()
const;
121 std::unique_ptr<Impl> m_impl;
124 static std::filesystem::path GetConfigDirectory();
127 static bool EnsureConfigDirectoryExists();