Move the window config base class in CogCommon for projects that want to have their own configs,

This commit is contained in:
Arnaud Jamin
2024-05-10 22:34:53 -04:00
parent c4af1f304d
commit 5e2ff8b918
29 changed files with 76 additions and 83 deletions
@@ -0,0 +1,21 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.generated.h"
UCLASS(Config = Cog)
class COGCOMMON_API UCogCommonConfig : public UObject
{
GENERATED_BODY()
public:
UCogCommonConfig()
{
Reset();
}
virtual void Reset()
{
}
};
@@ -1,9 +1,9 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogDebugGizmo.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "Engine/HitResult.h"
#include "CogEngineCollisionTester.h"
#include "CogEngineWindow_CollisionTester.generated.h"
@@ -47,7 +47,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_CollisionTester : public UCogWindowConfig
class UCogEngineConfig_CollisionTester : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "Engine/EngineTypes.h"
#include "CogEngineWindow_CollisionViewer.generated.h"
@@ -37,7 +37,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_CollisionViewer : public UCogWindowConfig
class UCogEngineConfig_CollisionViewer : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,9 +1,9 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogDebug.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogEngineWindow_DebugSettings.generated.h"
//--------------------------------------------------------------------------------------------------------------------------
@@ -32,7 +32,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_DebugSettings : public UCogWindowConfig
class UCogEngineConfig_DebugSettings : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "imgui.h"
#include "CogEngineWindow_Inspector.generated.h"
@@ -110,7 +110,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_Inspector : public UCogWindowConfig
class UCogEngineConfig_Inspector : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogEngineWindow_Metrics.generated.h"
struct FCogDebugMetricEntry;
@@ -41,7 +41,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_Metrics : public UCogWindowConfig
class UCogEngineConfig_Metrics : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "imgui.h"
#include "Misc/OutputDevice.h"
#include "CogEngineWindow_OutputLog.generated.h"
@@ -71,7 +71,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_OutputLog : public UCogWindowConfig
class UCogEngineConfig_OutputLog : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogEngineWindow_Plots.generated.h"
struct ImVec2;
@@ -50,7 +50,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_Plots : public UCogWindowConfig
class UCogEngineConfig_Plots : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,9 +1,9 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "GameFramework/Actor.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogEngineWindow_Selection.generated.h"
class IConsoleObject;
@@ -92,7 +92,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_Selection : public UCogWindowConfig
class UCogEngineConfig_Selection : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,9 +1,9 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogDebugGizmo.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogEngineWindow_Transform.generated.h"
class UCogEngineConfig_Transform;
@@ -43,7 +43,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogEngineConfig_Transform : public UCogWindowConfig
class UCogEngineConfig_Transform : public UCogCommonConfig
{
GENERATED_BODY()
@@ -22,6 +22,7 @@ public class CogWindow : ModuleRules
new string[]
{
"Core",
"CogCommon",
"CogImgui",
"CogDebug",
}
@@ -1,10 +1,8 @@
#include "CogWindow.h"
#include "CogDebugDraw.h"
#include "CogDebug.h"
#include "CogWindow_Settings.h"
#include "CogWindowManager.h"
#include "CogWindowWidgets.h"
#include "Engine/World.h"
#include "imgui_internal.h"
#include "GameFramework/Pawn.h"
@@ -180,7 +178,7 @@ ULocalPlayer* FCogWindow::GetLocalPlayer() const
}
//--------------------------------------------------------------------------------------------------------------------------
UCogWindowConfig* FCogWindow::GetConfig(const TSubclassOf<UCogWindowConfig> ConfigClass) const
UCogCommonConfig* FCogWindow::GetConfig(const TSubclassOf<UCogCommonConfig> ConfigClass) const
{
return GetOwner()->GetConfig(ConfigClass);
}
@@ -6,7 +6,6 @@
#include "CogWindow_Layouts.h"
#include "CogWindow_Settings.h"
#include "CogWindow_Spacing.h"
#include "CogWindowConfig.h"
#include "CogWindowHelper.h"
#include "CogWindowWidgets.h"
#include "Engine/Engine.h"
@@ -116,7 +115,7 @@ void UCogWindowManager::Shutdown()
}
Windows.Empty();
for (UCogWindowConfig* Config : Configs)
for (UCogCommonConfig* Config : Configs)
{
Config->SaveConfig();
}
@@ -741,19 +740,19 @@ void UCogWindowManager::SortCommands(UPlayerInput* PlayerInput)
}
//--------------------------------------------------------------------------------------------------------------------------
UCogWindowConfig* UCogWindowManager::GetConfig(const TSubclassOf<UCogWindowConfig> ConfigClass)
UCogCommonConfig* UCogWindowManager::GetConfig(const TSubclassOf<UCogCommonConfig> ConfigClass)
{
const UClass* Class = ConfigClass.Get();
for (UCogWindowConfig* Config : Configs)
for (UCogCommonConfig* Config : Configs)
{
if (Config && Config->IsA(Class))
{
return Cast<UCogWindowConfig>(Config);
return Cast<UCogCommonConfig>(Config);
}
}
UCogWindowConfig* Config = NewObject<UCogWindowConfig>(this, Class);
UCogCommonConfig* Config = NewObject<UCogCommonConfig>(this, Class);
Configs.Add(Config);
return Config;
}
@@ -1,6 +1,7 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "imgui.h"
#include "Templates/SubclassOf.h"
#include "UObject/ReflectedTypeAccessors.h"
@@ -9,7 +10,6 @@
class AActor;
class APawn;
class APlayerController;
class UCogWindowConfig;
class UCogWindowManager;
class ULocalPlayer;
class UWorld;
@@ -78,7 +78,7 @@ public:
template<class T>
T* GetConfig() { return Cast<T>(GetConfig(T::StaticClass())); }
UCogWindowConfig* GetConfig(const TSubclassOf<UCogWindowConfig> ConfigClass) const;
UCogCommonConfig* GetConfig(const TSubclassOf<UCogCommonConfig> ConfigClass) const;
template<class T>
const T* GetAsset() { return Cast<T>(GetAsset(T::StaticClass())); }
@@ -1,25 +0,0 @@
#pragma once
#include "CoreMinimal.h"
#include "CogWindowConfig.generated.h"
UCLASS(Config = Cog)
class COGWINDOW_API UCogWindowConfig : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(Config)
bool bHideMenu = false;
UCogWindowConfig()
{
Reset();
}
virtual void Reset()
{
bHideMenu = true;
}
};
@@ -5,12 +5,12 @@
#include "imgui.h"
#include "CogWindowManager.generated.h"
class UCogCommonConfig;
class FCogWindow;
class FCogWindow_Layouts;
class FCogWindow_Settings;
class IConsoleObject;
class SCogImguiWidget;
class UCogWindowConfig;
class UPlayerInput;
class UWorld;
struct ImGuiSettingsHandler;
@@ -61,7 +61,7 @@ public:
const FCogWindow_Settings* GetSettingsWindow() const { return SettingsWindow; }
UCogWindowConfig* GetConfig(const TSubclassOf<UCogWindowConfig> ConfigClass);
UCogCommonConfig* GetConfig(const TSubclassOf<UCogCommonConfig> ConfigClass);
template<class T>
T* GetConfig();
@@ -124,7 +124,7 @@ protected:
static FString ResetLayoutCommand;
UPROPERTY()
mutable TArray<UCogWindowConfig*> Configs;
mutable TArray<UCogCommonConfig*> Configs;
UPROPERTY()
mutable TArray<const UObject*> Assets;
@@ -172,7 +172,7 @@ T* UCogWindowManager::AddWindow(const FString& Name, bool AddToMainMenu)
template<class T>
T* UCogWindowManager::GetConfig()
{
static_assert(TPointerIsConvertibleFromTo<T, const UCogWindowConfig>::Value);
static_assert(TPointerIsConvertibleFromTo<T, const UCogCommonConfig>::Value);
return Cast<T>(&GetConfig(T::StaticClass()));
}
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogWindow_Settings.generated.h"
class UCogEngineConfig_Settings;
@@ -36,7 +36,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogWindowConfig_Settings : public UCogWindowConfig
class UCogWindowConfig_Settings : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogAIWindow_BehaviorTree.generated.h"
class UBehaviorTreeComponent;
@@ -37,7 +37,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAIConfig_BehaviorTree : public UCogWindowConfig
class UCogAIConfig_BehaviorTree : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogAIWindow_Blackboard.generated.h"
class UCogAIConfig_Blackboard;
@@ -33,7 +33,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAIConfig_Blackboard : public UCogWindowConfig
class UCogAIConfig_Blackboard : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,7 +1,7 @@
#pragma once
#include "CoreMinimal.h"
#include "CogWindowConfig.h"
#include "CogCommonConfig.h"
#include "CogAbilityConfig_Alignment.generated.h"
class UAbilitySystemComponent;
@@ -14,7 +14,7 @@ struct FModifierSpec;
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAbilityConfig_Alignment : public UCogWindowConfig
class UCogAbilityConfig_Alignment : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,10 +1,9 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "GameplayAbilitySpecHandle.h"
#include "GameplayTagContainer.h"
#include "CogAbilityWindow_Abilities.generated.h"
class UAbilitySystemComponent;
@@ -98,7 +97,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAbilityConfig_Abilities : public UCogWindowConfig
class UCogAbilityConfig_Abilities : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogAbilityWindow_Attributes.generated.h"
class UAbilitySystemComponent;
@@ -42,7 +42,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAbilityConfig_Attributes : public UCogWindowConfig
class UCogAbilityConfig_Attributes : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogAbilityWindow_Cheats.generated.h"
class AActor;
@@ -47,7 +47,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAbilityConfig_Cheats : public UCogWindowConfig
class UCogAbilityConfig_Cheats : public UCogCommonConfig
{
GENERATED_BODY()
@@ -2,8 +2,8 @@
#include "CoreMinimal.h"
#include "ActiveGameplayEffectHandle.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "imgui.h"
#include "CogAbilityWindow_Effects.generated.h"
@@ -73,7 +73,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAbilityConfig_Effects : public UCogWindowConfig
class UCogAbilityConfig_Effects : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,8 +1,8 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogAbilityWindow_Tags.generated.h"
struct FGameplayTagContainer;
@@ -67,7 +67,7 @@ class COGABILITY_API FCogAbilityWindow_BlockedTags : public FCogAbilityWindow_Ta
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAbilityConfig_Tags : public UCogWindowConfig
class UCogAbilityConfig_Tags : public UCogCommonConfig
{
GENERATED_BODY()
@@ -2,7 +2,6 @@
#include "CoreMinimal.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogAbilityWindow_Tasks.generated.h"
class UAbilitySystemComponent;
@@ -45,7 +44,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogAbilityConfig_Tasks : public UCogWindowConfig
class UCogAbilityConfig_Tasks : public UCogCommonConfig
{
GENERATED_BODY()
@@ -22,6 +22,7 @@ public class CogInput : ModuleRules
new string[]
{
"Core",
"CogCommon",
"CogImgui",
"CogDebug",
"CogWindow",
@@ -1,9 +1,9 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogInjectActionInfo.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "CogInputWindow_Actions.generated.h"
class UInputAction;
@@ -44,7 +44,7 @@ private:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogInputConfig_Actions : public UCogWindowConfig
class UCogInputConfig_Actions : public UCogCommonConfig
{
GENERATED_BODY()
@@ -1,9 +1,9 @@
#pragma once
#include "CoreMinimal.h"
#include "CogCommonConfig.h"
#include "CogInjectActionInfo.h"
#include "CogWindow.h"
#include "CogWindowConfig.h"
#include "imgui.h"
#include "InputCoreTypes.h"
#include "CogInputWindow_Gamepad.generated.h"
@@ -66,7 +66,7 @@ protected:
//--------------------------------------------------------------------------------------------------------------------------
UCLASS(Config = Cog)
class UCogInputConfig_Gamepad : public UCogWindowConfig
class UCogInputConfig_Gamepad : public UCogCommonConfig
{
GENERATED_BODY()