Added mMainWindowStyles variable to Application.

This commit is contained in:
Patrick Wuttke 2025-09-19 13:53:24 +02:00
parent d74474a042
commit 7470878f9c
2 changed files with 12 additions and 0 deletions

View File

@ -96,8 +96,16 @@ int Application::run(int argc, char** argv)
ImGui::SetNextWindowPos(ImGui::GetMainViewport()->Pos);
ImGui::SetNextWindowSize(ImGui::GetMainViewport()->Size);
ImGui::SetNextWindowViewport(ImGui::GetMainViewport()->ID);
for (const auto& [variable, value] : mMainWindowStyles) {
std::visit([&](auto val) {
ImGui::PushStyleVar(variable, val);
}, value);
}
ImGui::Begin("##main", nullptr, mMainWindowFlags);
ImGui::PopStyleVar(static_cast<int>(mMainWindowStyles.size()));
render();
mTaskLoop.tick();

View File

@ -6,6 +6,7 @@
#include <cstdint>
#include <functional>
#include <variant>
#include <fmt/format.h>
#include <imgui.h>
#include <mijin/async/coroutine.hpp>
@ -63,6 +64,7 @@ private:
bool mRunning = true;
ImGuiWindowFlags mMainWindowFlags = DEFAULT_MAIN_WINDOW_FLAGS;
std::unordered_map<ImGuiStyleVar, std::variant<float, ImVec2>> mMainWindowStyles;
using GLbitfield = std::uint32_t;
using GLint = std::int32_t;
@ -108,6 +110,8 @@ public:
ImGuiWindowFlags getMainWindowFlags() const { return mMainWindowFlags; }
void setMainWindowFlags(ImGuiWindowFlags flags) { mMainWindowFlags = flags; }
void setMainWindowStyle(ImGuiStyleVar variable, std::variant<float, ImVec2> value) { mMainWindowStyles.emplace(variable, value); }
void unsetMainWindowStyle(ImGuiStyleVar variable) { mMainWindowStyles.erase(variable); }
void requestQuit() { mRunning = false; }
[[nodiscard]]