Update Settings.cpp

This commit is contained in:
Nanako 2022-08-04 21:51:39 +09:00
parent c2df15a5dc
commit 3b2d95ea63
2 changed files with 22 additions and 6 deletions

View File

@ -35,6 +35,7 @@ namespace cheat::feature
NF(f_FastExitEnable, "Fast Exit", "General::FastExit", false), NF(f_FastExitEnable, "Fast Exit", "General::FastExit", false),
NF(f_HotkeyExit, "Hotkeys", "General::FastExit", Hotkey(VK_F12)), NF(f_HotkeyExit, "Hotkeys", "General::FastExit", Hotkey(VK_F12)),
NFS(f_DefaultTheme, "Theme", "General::Colors", "Default"),
themesDir(util::GetCurrentPath() / "themes") themesDir(util::GetCurrentPath() / "themes")
{ {
@ -43,6 +44,7 @@ namespace cheat::feature
if (!std::filesystem::exists(themesDir)) if (!std::filesystem::exists(themesDir))
std::filesystem::create_directory(themesDir); std::filesystem::create_directory(themesDir);
} }
bool themeLoaded = false;
const FeatureGUIInfo& Settings::GetGUIInfo() const const FeatureGUIInfo& Settings::GetGUIInfo() const
{ {
@ -164,14 +166,27 @@ namespace cheat::feature
ImGui::BeginGroupPanel("Colors"); ImGui::BeginGroupPanel("Colors");
{ {
static std::string nameBuffer_; static std::string nameBuffer_;
if (this->f_DefaultTheme.value() != "Default" && !themeLoaded)
{
Colors_Import(f_DefaultTheme.value());
themeLoaded = true;
}
ImGui::InputText("Name", &nameBuffer_); ImGui::InputText("Name", &nameBuffer_);
if (ImGui::Button("Export")) if (std::filesystem::exists(themesDir / (nameBuffer_ + ".json")))
{
if (ImGui::Button("Set as default"))
f_DefaultTheme = nameBuffer_;
if (ImGui::Button("Load"))
{
Colors_Import(nameBuffer_);
themeLoaded = true;
}
else {
ImGui::Text("Theme does not exist.");}
}
if (ImGui::Button("Save"))
Colors_Export(nameBuffer_); Colors_Export(nameBuffer_);
if (ImGui::Button("Import"))
Colors_Import(nameBuffer_);
if (ImGui::Button("Open themes folder"))
ShellExecute(nullptr, "open", themesDir.c_str(), nullptr, nullptr, SW_SHOW);
} }
ImGui::EndGroupPanel(); ImGui::EndGroupPanel();
} }

View File

@ -32,6 +32,7 @@ namespace cheat::feature
config::Field<Hotkey> f_HotkeyExit; config::Field<Hotkey> f_HotkeyExit;
std::filesystem::path themesDir; std::filesystem::path themesDir;
config::Field<std::string> f_DefaultTheme;
static Settings& GetInstance(); static Settings& GetInstance();