update UI effect on the sample

This commit is contained in:
Arnaud Jamin
2023-10-10 00:20:12 -04:00
parent 9ec695e65b
commit 0dca669326
48 changed files with 68 additions and 1 deletions
@@ -80,6 +80,8 @@ void UCogWindow::Render(float DeltaTime)
RenderContent();
ImGui::End();
}
PostRender();
}
//--------------------------------------------------------------------------------------------------------------------------
@@ -3,6 +3,7 @@
#include "CogImguiModule.h"
#include "CogImguiWidget.h"
#include "CogWindowWidgets.h"
#include "CogWindow_Spacing.h"
#include "Engine/Engine.h"
#include "imgui_internal.h"
@@ -27,6 +28,11 @@ void UCogWindowManager::Initialize(UWorld* InWorld, TSharedPtr<SCogImguiWidget>
IniHandler.WriteAllFn = UCogWindowManager::SettingsHandler_WriteAll;
IniHandler.UserData = this;
ImGui::AddSettingsHandler(&IniHandler);
SpaceWindows.Add(CreateWindow<UCogWindow_Spacing>("Space 1", false));
SpaceWindows.Add(CreateWindow<UCogWindow_Spacing>("Space 2", false));
SpaceWindows.Add(CreateWindow<UCogWindow_Spacing>("Space 3", false));
SpaceWindows.Add(CreateWindow<UCogWindow_Spacing>("Space 4", false));
}
//--------------------------------------------------------------------------------------------------------------------------
@@ -66,7 +72,9 @@ void UCogWindowManager::Tick(float DeltaTime)
//--------------------------------------------------------------------------------------------------------------------------
void UCogWindowManager::Render(float DeltaTime)
{
ImGui::DockSpaceOverViewport(0, ImGuiDockNodeFlags_PassthruCentralNode | ImGuiDockNodeFlags_NoDockingInCentralNode);
ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0, 0, 0, 0));
ImGui::DockSpaceOverViewport(0, ImGuiDockNodeFlags_PassthruCentralNode | ImGuiDockNodeFlags_NoDockingInCentralNode | ImGuiDockNodeFlags_AutoHideTabBar);
ImGui::PopStyleColor(1);
bool bCompactSaved = bCompactMode;
if (bCompactSaved)
@@ -92,6 +100,8 @@ void UCogWindowManager::Render(float DeltaTime)
{
ImGui::SetNextWindowBgAlpha(0.35f);
}
ImGui::DockSpaceOverViewport(0, ImGuiDockNodeFlags_PassthruCentralNode | ImGuiDockNodeFlags_NoDockingInCentralNode | ImGuiDockNodeFlags_AutoHideTabBar);
Window->Render(DeltaTime);
}
}
@@ -277,6 +287,21 @@ void UCogWindowManager::DrawMainMenu()
ImGui::Separator();
if (ImGui::BeginMenu("Spacing"))
{
for (UCogWindow* SpaceWindow : SpaceWindows)
{
bool bSpaceVisible = SpaceWindow->GetIsVisible();
if (ImGui::MenuItem(TCHAR_TO_ANSI(*SpaceWindow->GetName()), nullptr, &bSpaceVisible))
{
SpaceWindow->SetIsVisible(bSpaceVisible);
}
}
ImGui::EndMenu();
}
ImGui::Separator();
ImGui::MenuItem("Compact Mode", nullptr, &bCompactMode);
ImGui::Text("DPI Scale");
@@ -0,0 +1,13 @@
#include "CogWindow_Spacing.h"
//--------------------------------------------------------------------------------------------------------------------------
void UCogWindow_Spacing::PreRender(ImGuiWindowFlags& WindowFlags)
{
ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0, 0, 0, 0));
}
//--------------------------------------------------------------------------------------------------------------------------
void UCogWindow_Spacing::PostRender()
{
ImGui::PopStyleColor(1);
}
@@ -63,6 +63,8 @@ protected:
virtual void PreRender(ImGuiWindowFlags& WindowFlags) {}
virtual void PostRender() {}
virtual void RenderContent() {}
virtual bool CheckEditorVisibility();
@@ -89,6 +89,9 @@ private:
UPROPERTY()
TArray<UCogWindow*> Windows;
UPROPERTY()
TArray<UCogWindow*> SpaceWindows;
UPROPERTY()
TArray<UCogWindow*> MainMenuWidgets;
@@ -0,0 +1,22 @@
#pragma once
#include "CoreMinimal.h"
#include "CogWindow.h"
#include "CogWindow_Spacing.generated.h"
UCLASS()
class COGWINDOW_API UCogWindow_Spacing : public UCogWindow
{
GENERATED_BODY()
public:
protected:
virtual void PreRender(ImGuiWindowFlags& WindowFlags) override;
virtual void PostRender() override;
private:
};