From b873e208b470cc423f915fd0155926e9859e424a Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 1 Jun 2022 21:27:00 -0700 Subject: [PATCH] [wpigui] Add support for imgui config flags --- wpigui/src/main/native/cpp/wpigui.cpp | 7 +++++-- wpigui/src/main/native/include/wpigui.h | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/wpigui/src/main/native/cpp/wpigui.cpp b/wpigui/src/main/native/cpp/wpigui.cpp index 92b1d7ab3d..5da6371d80 100644 --- a/wpigui/src/main/native/cpp/wpigui.cpp +++ b/wpigui/src/main/native/cpp/wpigui.cpp @@ -115,7 +115,8 @@ void gui::DestroyContext() { gContext = nullptr; } -bool gui::Initialize(const char* title, int width, int height) { +bool gui::Initialize(const char* title, int width, int height, + ImGuiConfigFlags configFlags) { gContext->title = title; gContext->width = width; gContext->height = height; @@ -138,6 +139,7 @@ bool gui::Initialize(const char* title, int width, int height) { ImGui::CreateContext(); ImPlot::CreateContext(); ImGuiIO& io = ImGui::GetIO(); + io.ConfigFlags |= configFlags; // Hook ini handler to save settings ImGuiSettingsHandler iniHandler; @@ -297,9 +299,10 @@ void gui::Main() { PlatformRenderFrame(); gContext->isPlatformRendering = false; + auto& io = ImGui::GetIO(); + // custom saving if (gContext->saveSettings) { - auto& io = ImGui::GetIO(); if (io.WantSaveIniSettings) { gContext->saveSettings(false); io.WantSaveIniSettings = false; // reset flag diff --git a/wpigui/src/main/native/include/wpigui.h b/wpigui/src/main/native/include/wpigui.h index d4602b5951..db7429174c 100644 --- a/wpigui/src/main/native/include/wpigui.h +++ b/wpigui/src/main/native/include/wpigui.h @@ -30,8 +30,10 @@ void DestroyContext(); * @param title main application window title * @param width main application window width * @param height main application window height + * @param configFlags ImGui configuration flags */ -bool Initialize(const char* title, int width, int height); +bool Initialize(const char* title, int width, int height, + ImGuiConfigFlags configFlags = ImGuiConfigFlags_None); /** * Runs main GUI loop. On some OS'es this must be called from the main thread.