From 6c8a90720f8c5ee6f8b88e072245aa385574e367 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 19 Aug 2023 19:12:15 +0200 Subject: [PATCH] feat: Added window actions popup when clicking on icon --- main/source/window/window.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/main/source/window/window.cpp b/main/source/window/window.cpp index 506352e0a..770426323 100644 --- a/main/source/window/window.cpp +++ b/main/source/window/window.cpp @@ -439,7 +439,31 @@ namespace hex { if (ImHexApi::System::isBorderlessWindowModeEnabled()) { auto menuBarHeight = ImGui::GetCurrentWindow()->MenuBarHeight(); ImGui::SetCursorPosX(5); + ImGui::Image(this->m_logoTexture, ImVec2(menuBarHeight, menuBarHeight)); + ImGui::SetCursorPosX(5); + ImGui::InvisibleButton("##logo", ImVec2(menuBarHeight, menuBarHeight)); + ImGui::OpenPopupOnItemClick("WindowingMenu", ImGuiPopupFlags_MouseButtonLeft); + } + + if (ImGui::BeginPopup("WindowingMenu")) { + bool maximized = glfwGetWindowAttrib(this->m_window, GLFW_MAXIMIZED); + + ImGui::BeginDisabled(!maximized); + if (ImGui::MenuItem(ICON_VS_CHROME_RESTORE " Restore")) glfwRestoreWindow(this->m_window); + ImGui::EndDisabled(); + + if (ImGui::MenuItem(ICON_VS_CHROME_MINIMIZE " Minimize")) glfwIconifyWindow(this->m_window); + + ImGui::BeginDisabled(maximized); + if (ImGui::MenuItem(ICON_VS_CHROME_MAXIMIZE " Maximize")) glfwMaximizeWindow(this->m_window); + ImGui::EndDisabled(); + + ImGui::Separator(); + + if (ImGui::MenuItem(ICON_VS_CHROME_CLOSE " Close")) ImHexApi::System::closeImHex(); + + ImGui::EndPopup(); } for (const auto &[priority, menuItem] : ContentRegistry::Interface::impl::getMainMenuItems()) {