diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 6387b2fe3..4954d0bbb 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -77,6 +77,10 @@ bool Particle::update(float frameTime) { return (life>0); } +void centerNextWindow(float w, float h) { + ImGui::SetNextWindowPos(ImVec2(w*0.5,h*0.5),ImGuiCond_Always,ImVec2(0.5,0.5)); +} + void FurnaceGUI::bindEngine(DivEngine* eng) { e=eng; wavePreview.setEngine(e); @@ -4573,6 +4577,7 @@ bool FurnaceGUI::loop() { ImGui::OpenPopup("System File Dialog Pending"); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("System File Dialog Pending",NULL,ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove)) { if (!fileDialog->isOpen()) { ImGui::CloseCurrentPopup(); @@ -5237,6 +5242,7 @@ bool FurnaceGUI::loop() { MEASURE_BEGIN(popup); + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Rendering...",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("Please wait..."); if (ImGui::Button("Abort")) { @@ -5264,6 +5270,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Error",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("%s",errorString.c_str()); if (ImGui::Button("OK")) { @@ -5272,6 +5279,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Warning",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("%s",warnString.c_str()); switch (warnAction) { @@ -5653,6 +5661,7 @@ bool FurnaceGUI::loop() { // TODO: // - multiple selection // - replace instrument + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Select Instrument",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { bool quitPlease=false; if (pendingInsSingle) { @@ -5731,6 +5740,7 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } + centerNextWindow(canvasW,canvasH); if (ImGui::BeginPopupModal("Import Raw Sample",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::Text("Data type:"); for (int i=0; i