mirror of
https://github.com/Ed94/Cog.git
synced 2026-06-13 00:01:37 -07:00
API change for CogWindow
FCogWindow::PreRender Renamed to PreBegin FCogWindow::PostRender Renamed to PostEnd Add FCogWindow::PostBegin Remove FCogWindow bNoPadding field. Instead implement PreBegin/PostBegin to push the desired styles Improve Notifications usability
This commit is contained in:
@@ -19,7 +19,6 @@ void FCogEngineWindow_Console::Initialize()
|
||||
|
||||
Config = GetConfig<UCogEngineConfig_Console>();
|
||||
|
||||
bNoPadding = true;
|
||||
bHasMenu = true;
|
||||
bHasWidget = true;
|
||||
bIsWidgetVisible = true;
|
||||
@@ -29,9 +28,16 @@ void FCogEngineWindow_Console::Initialize()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogEngineWindow_Console::PreRender(ImGuiWindowFlags& WindowFlags)
|
||||
void FCogEngineWindow_Console::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
WindowFlags |= ImGuiWindowFlags_NoScrollbar;
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogEngineWindow_Console::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -87,23 +87,18 @@ void FCogEngineWindow_Notifications::RenderNotifications()
|
||||
| ImGuiWindowFlags_AlwaysAutoResize
|
||||
| ImGuiWindowFlags_NoSavedSettings
|
||||
| ImGuiWindowFlags_NoFocusOnAppearing
|
||||
| ImGuiWindowFlags_NoNav;
|
||||
|
||||
| ImGuiWindowFlags_NoNav
|
||||
| ImGuiWindowFlags_NoInputs;
|
||||
|
||||
const ImGuiViewport* Viewport = ImGui::GetMainViewport();
|
||||
const ImVec2 ViewportPos = Viewport->WorkPos;
|
||||
const ImVec2 ViewportSize = Viewport->WorkSize;
|
||||
|
||||
const float DpiScale = GetDpiScale();
|
||||
|
||||
ImVec2 WindowPos = FCogWindowWidgets::ComputeScreenCornerLocation(Config->Alignment, Config->Padding);
|
||||
const ImVec2 WindowPadding = ImGui::GetStyle().WindowPadding;
|
||||
const ImVec2 ItemSpacing = ImGui::GetStyle().ItemSpacing;
|
||||
const float MaxHeight = Config->MaxHeight * DpiScale + WindowPadding.y * 2;
|
||||
|
||||
const bool IsRight = static_cast<int32>(Config->Location) & 1;
|
||||
const bool IsBottom = static_cast<int32>(Config->Location) & 2;
|
||||
|
||||
ImVec2 WindowPos;
|
||||
WindowPos.x = ViewportPos.x + (IsRight ? ViewportSize.x - Config->Padding : Config->Padding);
|
||||
WindowPos.y = ViewportPos.y + (IsBottom ? ViewportSize.y - Config->Padding : Config->Padding);
|
||||
|
||||
const ImVec2 WindowPosPivot(IsRight ? 1.0f : 0.0f, IsBottom ? 1.0f : 0.0f);
|
||||
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, Config->Rounding);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, Config->ShowBorder);
|
||||
|
||||
@@ -160,13 +155,13 @@ void FCogEngineWindow_Notifications::RenderNotifications()
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, TextColor);
|
||||
|
||||
const auto Message = StringCast<ANSICHAR>(*Notification.Message);
|
||||
const float WrapWidth = Config->TextWrapping * ImGui::GetFontSize();
|
||||
const float WrapWidth = Config->TextWrapping * DpiScale;
|
||||
|
||||
ImGui::SetNextWindowViewport(Viewport->ID);
|
||||
ImGui::SetNextWindowPos(WindowPos, ImGuiCond_Always, WindowPosPivot);
|
||||
ImGui::SetNextWindowPos(WindowPos, ImGuiCond_Always, FCogImguiHelper::ToImVec2(Config->Alignment));
|
||||
if (Config->UseFixedWidth)
|
||||
{
|
||||
ImGui::SetNextWindowSizeConstraints(ImVec2(WrapWidth, 0) + WindowPadding * 2, ImVec2(WrapWidth, Config->MaxHeight * ImGui::GetFontSize()) + WindowPadding * 2);
|
||||
ImGui::SetNextWindowSizeConstraints(ImVec2(WrapWidth + WindowPadding.x * 2, 0), ImVec2(WrapWidth + WindowPadding.x * 2, MaxHeight));
|
||||
}
|
||||
|
||||
if (ImGui::Begin(StringCast<ANSICHAR>(*Notification.Id).Get(), nullptr, Flags))
|
||||
@@ -183,8 +178,8 @@ void FCogEngineWindow_Notifications::RenderNotifications()
|
||||
// maybe because the real window size is computed the next frame.
|
||||
//----------------------------------------------------------------------
|
||||
const ImVec2 TextSize = ImGui::CalcTextSize(Message.Get(), nullptr, false, WrapWidth);
|
||||
const float WindowHeight = TextSize.y + (WindowPadding.y * 2);
|
||||
WindowPos.y += (WindowHeight + ItemSpacing.y) * (IsBottom ? -1 : 1);
|
||||
const float WindowHeight = FMath::Min(MaxHeight, TextSize.y + (WindowPadding.y * 2));
|
||||
WindowPos.y += (WindowHeight + ItemSpacing.y) * (Config->Alignment.Y > 0.5f ? -1 : 1);
|
||||
ImGui::End();
|
||||
}
|
||||
|
||||
@@ -237,19 +232,19 @@ void FCogEngineWindow_Notifications::RenderSettings()
|
||||
FCogWindowWidgets::ThinSeparatorText("Location & Size");
|
||||
|
||||
FCogWindowWidgets::SetNextItemToShortWidth();
|
||||
FCogWindowWidgets::ComboboxEnum("Location", Config->Location);
|
||||
ImGui::SliderFloat2("Alignment", &Config->Alignment.X, 0, 1.0f, "%.2f");
|
||||
|
||||
FCogWindowWidgets::SetNextItemToShortWidth();
|
||||
ImGui::SliderInt2("Padding", &Config->Padding.X, 0, 100);
|
||||
|
||||
ImGui::Checkbox("Use Fixed Width", &Config->UseFixedWidth);
|
||||
|
||||
FCogWindowWidgets::SetNextItemToShortWidth();
|
||||
ImGui::DragInt("Text Wrapping", &Config->TextWrapping, 1, 0, INT_MAX);
|
||||
ImGui::SliderInt("Text Wrapping", &Config->TextWrapping, 1, 500);
|
||||
|
||||
FCogWindowWidgets::SetNextItemToShortWidth();
|
||||
ImGui::DragInt("Max Height", &Config->MaxHeight, 1, 0, INT_MAX);
|
||||
ImGui::SliderInt("Max Height", &Config->MaxHeight, 0, 500);
|
||||
|
||||
FCogWindowWidgets::SetNextItemToShortWidth();
|
||||
ImGui::DragInt("Padding", &Config->Padding, 1, 0, INT_MAX);
|
||||
|
||||
FCogWindowWidgets::ThinSeparatorText("Display");
|
||||
|
||||
FCogWindowWidgets::SetNextItemToShortWidth();
|
||||
|
||||
@@ -13,7 +13,6 @@ void FCogEngineWindow_Plots::Initialize()
|
||||
Super::Initialize();
|
||||
|
||||
bHasMenu = true;
|
||||
bNoPadding = true;
|
||||
|
||||
Config = GetConfig<UCogEngineConfig_Plots>();
|
||||
|
||||
@@ -48,6 +47,18 @@ void FCogEngineWindow_Plots::RenderTick(float DeltaTime)
|
||||
FCogDebugPlot::IsVisible = GetIsVisible();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogEngineWindow_Plots::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogEngineWindow_Plots::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogEngineWindow_Plots::RenderContent()
|
||||
{
|
||||
|
||||
@@ -17,7 +17,9 @@ protected:
|
||||
|
||||
virtual void Initialize() override;
|
||||
|
||||
virtual void PreRender(ImGuiWindowFlags& WindowFlags) override;
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderMainMenuWidget() override;
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "CogCommonConfig.h"
|
||||
#include "CogWindow.h"
|
||||
#include "CogWindowWidgets.h"
|
||||
#include "imgui.h"
|
||||
#include "Misc/OutputDevice.h"
|
||||
#include "CogEngineWindow_Notifications.generated.h"
|
||||
@@ -23,16 +24,6 @@ public:
|
||||
FCogEngineWindow_Notifications* Notifications = nullptr;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
UENUM()
|
||||
enum class ECogEngineNotificationLocation : uint8
|
||||
{
|
||||
TopLeft = 0,
|
||||
TopRight = 1,
|
||||
BottomLeft = 2,
|
||||
BottomRight = 3,
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
class COGENGINE_API FCogEngineWindow_Notifications : public FCogWindow
|
||||
{
|
||||
@@ -126,19 +117,19 @@ public:
|
||||
FColor TextErrorColor = FColor::White;
|
||||
|
||||
UPROPERTY(Config)
|
||||
ECogEngineNotificationLocation Location = ECogEngineNotificationLocation::BottomRight;
|
||||
FVector2f Alignment = FVector2f(1.0f, 1.0f);
|
||||
|
||||
UPROPERTY(Config)
|
||||
int Padding = 10;
|
||||
FIntVector2 Padding = FIntVector2(10, 10);
|
||||
|
||||
UPROPERTY(Config)
|
||||
bool UseFixedWidth = true;
|
||||
|
||||
UPROPERTY(Config)
|
||||
int32 MaxHeight = 10;
|
||||
int32 MaxHeight = 100;
|
||||
|
||||
UPROPERTY(Config)
|
||||
int32 TextWrapping = 20;
|
||||
int32 TextWrapping = 200;
|
||||
|
||||
UPROPERTY(Config)
|
||||
int32 Rounding = 6;
|
||||
@@ -166,11 +157,11 @@ public:
|
||||
BorderWarningColor = FColor(255, 200, 0, 100);
|
||||
BorderErrorColor = FColor(240, 77, 77, 100);
|
||||
|
||||
Location = ECogEngineNotificationLocation::BottomRight;
|
||||
Padding = 10;
|
||||
Alignment = { 1, 1 };
|
||||
Padding = { 10, 10 };
|
||||
UseFixedWidth = true;
|
||||
TextWrapping = 20;
|
||||
MaxHeight = 10;
|
||||
TextWrapping = 200;
|
||||
MaxHeight = 100;
|
||||
Rounding = 6;
|
||||
ShowBorder = true;
|
||||
Duration = 5.0f;
|
||||
|
||||
@@ -28,6 +28,10 @@ protected:
|
||||
|
||||
virtual void RenderTick(float DeltaTime) override;
|
||||
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderContent() override;
|
||||
|
||||
virtual void RenderAllEntriesNames(const ImVec2& InSize);
|
||||
|
||||
@@ -87,6 +87,17 @@ ImVec2 FCogImguiHelper::ToImVec2(const FVector2D& Value)
|
||||
return ImVec2(Value.X, Value.Y);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImVec2 FCogImguiHelper::ToImVec2(const FIntVector2& Value)
|
||||
{
|
||||
return ImVec2(Value.X, Value.Y);
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImVec2 FCogImguiHelper::ToImVec2(const FVector2f& Value)
|
||||
{
|
||||
return ImVec2(Value.X, Value.Y);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImColor FCogImguiHelper::ToImColor(const FColor& Value)
|
||||
{
|
||||
@@ -118,11 +129,16 @@ ImVec4 FCogImguiHelper::ToImVec4(const FVector4f& Value)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImU32 FCogImguiHelper::ToImU32(const FColor& Value)
|
||||
ImU32 FCogImguiHelper::ToImU32(const FLinearColor& Value)
|
||||
{
|
||||
return (ImU32)ToImColor(Value);
|
||||
return ToImColor(Value);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImU32 FCogImguiHelper::ToImU32(const FColor& Value)
|
||||
{
|
||||
return ToImColor(Value);
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImU32 FCogImguiHelper::ToImU32(const FVector4f& Value)
|
||||
{
|
||||
|
||||
@@ -36,6 +36,10 @@ public:
|
||||
|
||||
static ImVec2 ToImVec2(const FVector2D& Value);
|
||||
|
||||
static ImVec2 ToImVec2(const FIntVector2& Value);
|
||||
|
||||
static ImVec2 ToImVec2(const FVector2f& Value);
|
||||
|
||||
static ImColor ToImColor(const FColor& Value);
|
||||
|
||||
static ImColor ToImColor(const FLinearColor& Value);
|
||||
@@ -46,6 +50,8 @@ public:
|
||||
|
||||
static ImVec4 ToImVec4(const FVector4f& Value);
|
||||
|
||||
static ImU32 ToImU32(const FLinearColor& Value);
|
||||
|
||||
static ImU32 ToImU32(const FColor& Value);
|
||||
|
||||
static ImU32 ToImU32(const FVector4f& Value);
|
||||
|
||||
@@ -59,6 +59,12 @@ bool FCogWindow::CheckEditorVisibility()
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogWindow::RenderContextMenu()
|
||||
{
|
||||
RenderSettings();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogWindow::RenderSettings()
|
||||
{
|
||||
if (bHasMenu)
|
||||
{
|
||||
@@ -75,46 +81,32 @@ void FCogWindow::RenderContextMenu()
|
||||
void FCogWindow::Render(float DeltaTime)
|
||||
{
|
||||
ImGuiWindowFlags WindowFlags = 0;
|
||||
PreRender(WindowFlags);
|
||||
|
||||
const FString WindowTitle = GetTitle() + "##" + Name;
|
||||
|
||||
if (bHasMenu && bShowMenu)
|
||||
{
|
||||
WindowFlags |= ImGuiWindowFlags_MenuBar;
|
||||
}
|
||||
|
||||
if (bNoPadding)
|
||||
{
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
PreBegin(WindowFlags);
|
||||
|
||||
if (ImGui::Begin(TCHAR_TO_ANSI(*WindowTitle), &bIsVisible, WindowFlags))
|
||||
const FString WindowTitle = GetTitle() + "##" + Name;
|
||||
const bool IsOpen = ImGui::Begin(StringCast<ANSICHAR>(*WindowTitle).Get(), &bIsVisible, WindowFlags);
|
||||
|
||||
PostBegin();
|
||||
|
||||
if (IsOpen)
|
||||
{
|
||||
if (bNoPadding)
|
||||
{
|
||||
ImGui::PopStyleVar(1);
|
||||
}
|
||||
RenderContent();
|
||||
|
||||
if (ImGui::BeginPopupContextWindow())
|
||||
{
|
||||
RenderContextMenu();
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
RenderContent();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bNoPadding)
|
||||
{
|
||||
ImGui::PopStyleVar(1);
|
||||
}
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
|
||||
PostRender();
|
||||
|
||||
PostEnd();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -240,3 +232,9 @@ bool FCogWindow::IsWindowRenderedInMainMenu()
|
||||
return Owner->IsRenderingMainMenu();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
float FCogWindow::GetDpiScale() const
|
||||
{
|
||||
return GetOwner()->GetContext().GetDpiScale();
|
||||
}
|
||||
|
||||
|
||||
@@ -1364,4 +1364,25 @@ bool FCogWindowWidgets::PickButton(const char* InLabel, const ImVec2& InSize, Im
|
||||
window->DrawList->AddCircleFilled(center, radius * 0.15f, text_col);
|
||||
|
||||
return pressed;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImVec2 FCogWindowWidgets::ComputeScreenCornerLocation(const FVector2f& InAlignment, const FIntVector2& InPadding)
|
||||
{
|
||||
return ComputeScreenCornerLocation(FCogImguiHelper::ToImVec2(InAlignment), FCogImguiHelper::ToImVec2(InPadding));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
ImVec2 FCogWindowWidgets::ComputeScreenCornerLocation(const ImVec2& InAlignment, const ImVec2& InPadding)
|
||||
{
|
||||
const ImGuiViewport* Viewport = ImGui::GetMainViewport();
|
||||
if (Viewport == nullptr)
|
||||
{ return ImVec2(0, 0); }
|
||||
|
||||
// +Padding for left, 0 for center, -Padding for left
|
||||
// +Padding for top, 0 for center, -Padding for bottom
|
||||
const ImVec2 Offset = (InAlignment * 2 - ImVec2(1.0f, 1.0f)) * InPadding;
|
||||
|
||||
ImVec2 Position = Viewport->WorkPos + (InAlignment * Viewport->WorkSize) - Offset;
|
||||
return Position;
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ void FCogWindow_Settings::SetDPIScale(float Value) const
|
||||
{
|
||||
Config->DPIScale = Value;
|
||||
GetOwner()->GetContext().SetDPIScale(Config->DPIScale);
|
||||
COG_NOTIFY(TEXT("DPI Scale: %0.2f"), Value);
|
||||
//COG_NOTIFY(TEXT("DPI Scale: %0.2f"), Value);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
#include "CogWindow_Spacing.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogWindow_Spacing::PreRender(ImGuiWindowFlags& WindowFlags)
|
||||
void FCogWindow_Spacing::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0, 0, 0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogWindow_Spacing::PostRender()
|
||||
void FCogWindow_Spacing::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleColor(1);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
|
||||
/** */
|
||||
virtual void RenderMainMenuWidget();
|
||||
void RenderSettings();
|
||||
|
||||
ImGuiID GetID() const { return ID; }
|
||||
|
||||
@@ -72,6 +73,8 @@ public:
|
||||
|
||||
UCogWindowManager* GetOwner() const { return Owner; }
|
||||
|
||||
float GetDpiScale() const;
|
||||
|
||||
template<class T>
|
||||
T* GetConfig(bool InResetConfigOnRequest = true) const { return Cast<T>(GetConfig(T::StaticClass(), InResetConfigOnRequest)); }
|
||||
|
||||
@@ -92,9 +95,11 @@ protected:
|
||||
|
||||
virtual void RenderHelp();
|
||||
|
||||
virtual void PreRender(ImGuiWindowFlags& WindowFlags) {}
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) {}
|
||||
|
||||
virtual void PostRender() {}
|
||||
virtual void PostBegin() {}
|
||||
|
||||
virtual void PostEnd() {}
|
||||
|
||||
virtual void RenderContent() {}
|
||||
|
||||
@@ -118,8 +123,6 @@ protected:
|
||||
|
||||
bool bShowMenu = true;
|
||||
|
||||
bool bNoPadding = false;
|
||||
|
||||
bool bHasMenu = false;
|
||||
|
||||
bool bIsVisible = false;
|
||||
|
||||
@@ -19,6 +19,7 @@ struct FKeyBind;
|
||||
|
||||
using FCogWindowActorContextMenuFunction = TFunction<void(AActor& Actor)>;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
class COGWINDOW_API FCogWindowWidgets
|
||||
{
|
||||
public:
|
||||
@@ -153,6 +154,10 @@ public:
|
||||
|
||||
template<typename T>
|
||||
static bool ScalarArray(const char* InLabel, ImGuiDataType InDataType, TArray<T>& InArray, int32 InMaxEntries = 0, const ImVec2& Size = ImVec2(0, 0));
|
||||
|
||||
static ImVec2 ComputeScreenCornerLocation(const FVector2f& InAlignment, const FIntVector2& InPadding);
|
||||
|
||||
static ImVec2 ComputeScreenCornerLocation(const ImVec2& InAlignment, const ImVec2& InPadding);
|
||||
};
|
||||
|
||||
template<typename EnumType>
|
||||
|
||||
@@ -9,8 +9,8 @@ class COGWINDOW_API FCogWindow_Spacing : public FCogWindow
|
||||
|
||||
protected:
|
||||
|
||||
virtual void PreRender(ImGuiWindowFlags& WindowFlags) override;
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostRender() override;
|
||||
virtual void PostBegin() override;
|
||||
|
||||
};
|
||||
|
||||
@@ -12,7 +12,6 @@ void FCogAIWindow_Blackboard::Initialize()
|
||||
Super::Initialize();
|
||||
|
||||
bHasMenu = true;
|
||||
bNoPadding = true;
|
||||
|
||||
Config = GetConfig<UCogAIConfig_Blackboard>();
|
||||
}
|
||||
@@ -25,6 +24,19 @@ void FCogAIWindow_Blackboard::RenderHelp()
|
||||
);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAIWindow_Blackboard::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
WindowFlags |= ImGuiWindowFlags_NoScrollbar;
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAIWindow_Blackboard::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAIWindow_Blackboard::RenderContent()
|
||||
{
|
||||
|
||||
@@ -20,6 +20,10 @@ protected:
|
||||
|
||||
virtual void RenderHelp() override;
|
||||
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderContent() override;
|
||||
|
||||
private:
|
||||
|
||||
@@ -19,7 +19,6 @@ void FCogAbilityWindow_Abilities::Initialize()
|
||||
Super::Initialize();
|
||||
|
||||
bHasMenu = true;
|
||||
bNoPadding = true;
|
||||
|
||||
Asset = GetAsset<UCogAbilityDataAsset>();
|
||||
Config = GetConfig<UCogAbilityConfig_Abilities>();
|
||||
@@ -35,6 +34,19 @@ void FCogAbilityWindow_Abilities::RenderHelp()
|
||||
);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Abilities::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
WindowFlags |= ImGuiWindowFlags_NoScrollbar;
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Abilities::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Abilities::RenderTick(float DeltaTime)
|
||||
{
|
||||
|
||||
@@ -17,7 +17,6 @@ void FCogAbilityWindow_Attributes::Initialize()
|
||||
Super::Initialize();
|
||||
|
||||
bHasMenu = true;
|
||||
bNoPadding = true;
|
||||
|
||||
Config = GetConfig<UCogAbilityConfig_Attributes>();
|
||||
AlignmentConfig = GetConfig<UCogAbilityConfig_Alignment>();
|
||||
@@ -35,6 +34,18 @@ void FCogAbilityWindow_Attributes::RenderHelp()
|
||||
);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Attributes::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Attributes::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Attributes::RenderTick(float DeltaTime)
|
||||
{
|
||||
|
||||
@@ -16,7 +16,6 @@ void FCogAbilityWindow_Effects::Initialize()
|
||||
Super::Initialize();
|
||||
|
||||
bHasMenu = true;
|
||||
bNoPadding = true;
|
||||
|
||||
Asset = GetAsset<UCogAbilityDataAsset>();
|
||||
Config = GetConfig<UCogAbilityConfig_Effects>();
|
||||
@@ -40,6 +39,19 @@ void FCogAbilityWindow_Effects::RenderTick(float DeltaTime)
|
||||
RenderOpenEffects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Effects::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Effects::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Effects::RenderContent()
|
||||
{
|
||||
|
||||
@@ -11,7 +11,6 @@ void FCogAbilityWindow_Tags::Initialize()
|
||||
Super::Initialize();
|
||||
|
||||
bHasMenu = true;
|
||||
bNoPadding = true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -20,6 +19,18 @@ void FCogAbilityWindow_Tags::RenderHelp()
|
||||
ImGui::Text("This window displays gameplay tags of the selected actor. ");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Tags::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Tags::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Tags::RenderContent()
|
||||
{
|
||||
|
||||
@@ -14,7 +14,6 @@ void FCogAbilityWindow_Tasks::Initialize()
|
||||
Super::Initialize();
|
||||
|
||||
bHasMenu = true;
|
||||
bNoPadding = true;
|
||||
|
||||
Config = GetConfig<UCogAbilityConfig_Tasks>();
|
||||
}
|
||||
@@ -27,9 +26,15 @@ void FCogAbilityWindow_Tasks::RenderHelp()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Tasks::RenderTick(float DeltaTime)
|
||||
void FCogAbilityWindow_Tasks::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
Super::RenderTick(DeltaTime);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogAbilityWindow_Tasks::PostBegin()
|
||||
{
|
||||
ImGui::PopStyleVar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -24,6 +24,10 @@ protected:
|
||||
|
||||
virtual void RenderHelp() override;
|
||||
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderTick(float DeltaTime) override;
|
||||
|
||||
virtual void RenderContent() override;
|
||||
|
||||
@@ -25,6 +25,10 @@ public:
|
||||
protected:
|
||||
|
||||
virtual void RenderHelp() override;
|
||||
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderTick(float DeltaTime) override;
|
||||
|
||||
|
||||
@@ -34,6 +34,10 @@ protected:
|
||||
|
||||
virtual void RenderTick(float DeltaTime) override;
|
||||
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderEffectsTable();
|
||||
|
||||
virtual void RenderEffectRow(UAbilitySystemComponent& AbilitySystemComponent, const FActiveGameplayEffectHandle& ActiveHandle, int32 Index, int32& Selected);
|
||||
|
||||
@@ -25,6 +25,10 @@ protected:
|
||||
|
||||
virtual void RenderHelp() override;
|
||||
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderContent() override;
|
||||
|
||||
virtual void RenderTagContainer(const UAbilitySystemComponent& AbilitySystemComponent, FGameplayTagContainer& TagContainer);
|
||||
|
||||
@@ -21,7 +21,9 @@ protected:
|
||||
|
||||
virtual void RenderHelp() override;
|
||||
|
||||
virtual void RenderTick(float DeltaTime) override;
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void PostBegin() override;
|
||||
|
||||
virtual void RenderContent() override;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ void FCogInputWindow_Gamepad::Initialize()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------------------
|
||||
void FCogInputWindow_Gamepad::PreRender(ImGuiWindowFlags& WindowFlags)
|
||||
void FCogInputWindow_Gamepad::PreBegin(ImGuiWindowFlags& WindowFlags)
|
||||
{
|
||||
if (Config->bShowAsOverlay)
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
virtual void PreRender(ImGuiWindowFlags& WindowFlags) override;
|
||||
virtual void PreBegin(ImGuiWindowFlags& WindowFlags) override;
|
||||
|
||||
virtual void RenderContent() override;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user