diff --git a/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp b/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp index 712013b..045f886 100644 --- a/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp +++ b/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp @@ -60,7 +60,7 @@ void FCogWindow::Render(float DeltaTime) const FString WindowTitle = GetTitle() + "##" + Name; - if (bHasMenu && bHideMenu == false) + if (bHasMenu && bShowMenu) { WindowFlags |= ImGuiWindowFlags_MenuBar; } @@ -81,7 +81,7 @@ void FCogWindow::Render(float DeltaTime) { if (bHasMenu) { - ImGui::Checkbox("Hide Menu", &bHideMenu); + ImGui::Checkbox("Show Menu", &bShowMenu); } if (ImGui::Button("Reset Settings")) diff --git a/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp b/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp index 708c02e..c7b7e54 100644 --- a/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp +++ b/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp @@ -670,11 +670,15 @@ void* UCogWindowManager::SettingsHandler_ReadOpen(ImGuiContext* Context, ImGuiSe //-------------------------------------------------------------------------------------------------------------------------- void UCogWindowManager::SettingsHandler_ReadLine(ImGuiContext* Context, ImGuiSettingsHandler* Handler, void* Entry, const char* Line) { + //----------------------------------------------------------------------------------- + // Load the visibility of windows. + //----------------------------------------------------------------------------------- if (Entry == (void*)1) { ImGuiID Id; + int32 ShowMenu; #if PLATFORM_WINDOWS || PLATFORM_MICROSOFT - if (sscanf_s(Line, "0x%08X", &Id) == 1) + if (sscanf_s(Line, "0x%08X %d", &Id, &ShowMenu) == 2) #else if (sscanf(Line, "0x%08X", &Id) == 1) #endif @@ -683,9 +687,13 @@ void UCogWindowManager::SettingsHandler_ReadLine(ImGuiContext* Context, ImGuiSet if (FCogWindow* Window = Manager->FindWindowByID(Id)) { Window->SetIsVisible(true); + Window->bShowMenu = (ShowMenu > 0); } } } + //----------------------------------------------------------------------------------- + // Load which widgets are present in the main menu bar and with what order. + //----------------------------------------------------------------------------------- else if (Entry == (void*)2) { ImGuiID Id; @@ -713,16 +721,28 @@ void UCogWindowManager::SettingsHandler_WriteAll(ImGuiContext* Context, ImGuiSet { const UCogWindowManager* Manager = (UCogWindowManager*)Handler->UserData; + //----------------------------------------------------------------------------------- + // Save the visibility of windows. Example: + // [Cog][Windows] + // 0xB5D96693 + // 0xBF3390B5 + //----------------------------------------------------------------------------------- Buffer->appendf("[%s][Windows]\n", Handler->TypeName); for (const FCogWindow* Window : Manager->Windows) { if (Window->GetIsVisible()) { - Buffer->appendf("0x%08X\n", Window->GetID()); + Buffer->appendf("0x%08X %d\n", Window->GetID(), (int32)Window->bShowMenu); } } Buffer->append("\n"); + //----------------------------------------------------------------------------------- + // Save which widgets are present in the main menu bar and with what order. Example: + // [Cog][Widgets] + // 0x639F1181 1 + // 0x52BDE3E0 1 + //----------------------------------------------------------------------------------- Buffer->appendf("[%s][Widgets]\n", Handler->TypeName); for (const FCogWindow* Window : Manager->Widgets) { diff --git a/Plugins/Cog/Source/CogWindow/Public/CogWindow.h b/Plugins/Cog/Source/CogWindow/Public/CogWindow.h index 885ec73..d8e35b1 100644 --- a/Plugins/Cog/Source/CogWindow/Public/CogWindow.h +++ b/Plugins/Cog/Source/CogWindow/Public/CogWindow.h @@ -53,7 +53,7 @@ public: /** The short name of the window. "Effect" if the window full name is "Gameplay.Character.Effect" */ const FString& GetName() const { return Name; } - AActor* GetSelection() { return CurrentSelection.Get(); } + AActor* GetSelection() const { return CurrentSelection.Get(); } void SetSelection(AActor* Actor); @@ -115,7 +115,7 @@ protected: protected: - bool bHideMenu = false; + bool bShowMenu = false; bool bNoPadding = false;