From 8b6cfafc457a395f28b458749ad9af0c4be94eca Mon Sep 17 00:00:00 2001 From: Jamie Greunbaum Date: Wed, 27 Sep 2023 12:21:35 -0400 Subject: [PATCH] Code compiles now, at least. That's a start. --- .../ComboInputEditor.build.cs | 8 +- .../Private/ComboActionGraphSchema.cpp | 2 + .../Private/ComboInputEditor.cpp | 11 +- .../Private/Ed/EdComboActionGraph.cpp | 4 +- .../Private/Ed/EdComboActionGraph.h | 6 +- .../Private/Ed/SEdComboActionGraphNode.cpp | 43 ++++--- .../Ed/SEdComboActionGraphNodeIndex.cpp | 4 +- ...nnectionDrawingPolicy_ComboActionGraph.cpp | 10 +- .../Settings/ComboActionGraphEditorSettings.h | 5 +- .../Settings/FComboActionGraphEditorStyle.cpp | 116 +++++++----------- .../Settings/FComboActionGraphEditorStyle.h | 28 +---- .../Public/ComboInputEditor.h | 4 +- 12 files changed, 111 insertions(+), 130 deletions(-) diff --git a/Source/ComboInputEditor/ComboInputEditor.build.cs b/Source/ComboInputEditor/ComboInputEditor.build.cs index 49071fc..b965237 100644 --- a/Source/ComboInputEditor/ComboInputEditor.build.cs +++ b/Source/ComboInputEditor/ComboInputEditor.build.cs @@ -25,10 +25,16 @@ public class ComboInputEditor : ModuleRules { "Core", "CoreUObject", + "Engine", + "UnrealEd", + "AssetTools", + "Slate", "SlateCore", "Projects", - "GraphEditor" + "GraphEditor", + "DeveloperSettings", + "ToolMenus", } ); diff --git a/Source/ComboInputEditor/Private/ComboActionGraphSchema.cpp b/Source/ComboInputEditor/Private/ComboActionGraphSchema.cpp index 9850f9d..da22b8e 100644 --- a/Source/ComboInputEditor/Private/ComboActionGraphSchema.cpp +++ b/Source/ComboInputEditor/Private/ComboActionGraphSchema.cpp @@ -14,6 +14,8 @@ #define LOCTEXT_NAMESPACE "ComboActionGraph" +int32 UComboActionGraphSchema::CurrentCacheRefreshID = 0; + UEdGraphNode *FAssetSchemaAction_ComboActionGraphSchema_NewNode::PerformAction(UEdGraph *ParentGraph, UEdGraphPin *FromPin, const FVector2D Location, bool bSelectNewNode) { diff --git a/Source/ComboInputEditor/Private/ComboInputEditor.cpp b/Source/ComboInputEditor/Private/ComboInputEditor.cpp index 966e65e..5ff1e51 100644 --- a/Source/ComboInputEditor/Private/ComboInputEditor.cpp +++ b/Source/ComboInputEditor/Private/ComboInputEditor.cpp @@ -7,6 +7,7 @@ #include "AssetTypeActions/AssetTypeActions_DataAsset.h" #include "Interfaces/IPluginManager.h" +#include "Settings/FComboActionGraphEditorStyle.h" #include "Styling/SlateStyle.h" #include "Styling/SlateStyleMacros.h" #include "Styling/SlateStyleRegistry.h" @@ -159,8 +160,12 @@ void FComboInputEditorModule::StartupModule() this->RegisterAssetTypeActions(AssetTools, MakeShareable(new FAssetTypeActions_ComboInputAsset)); // Make a new style set for Combo Input, which will register any custom icons for the types in this plugin - StyleSet = MakeShared(); - FSlateStyleRegistry::RegisterSlateStyle(*StyleSet.Get()); + this->ComboInputEditorStyleSet = MakeShared(); + FSlateStyleRegistry::RegisterSlateStyle(*this->ComboInputEditorStyleSet.Get()); + + // Make a new style set for Combo Action Graph + this->ComboActionGraphEditorStyleSet = MakeShared(); + FSlateStyleRegistry::RegisterSlateStyle(*this->ComboActionGraphEditorStyleSet.Get()); } void FComboInputEditorModule::ShutdownModule() @@ -169,4 +174,4 @@ void FComboInputEditorModule::ShutdownModule() #undef LOCTEXT_NAMESPACE -IMPLEMENT_MODULE(FComboInputEditorModule, ComboInputEditorModule) \ No newline at end of file +IMPLEMENT_MODULE(FComboInputEditorModule, ComboInputEditorModule) diff --git a/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.cpp b/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.cpp index 2a71353..01c36f1 100644 --- a/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.cpp +++ b/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.cpp @@ -2,11 +2,11 @@ #include "Ed/EdComboActionGraph.h" +#include "ComboActionGraph.h" #include "Ed/EdComboActionGraphEdge.h" #include "Ed/EdComboActionGraphNode.h" -#include "ComboActionGraph.h" -#include "Nodes/ComboActionGraphNode.h" #include "Nodes/ComboActionGraphEdge.h" +#include "Nodes/ComboActionGraphNode.h" //#include "Helpers/MounteaDialogueGraphEditorHelpers.h" //#include "Helpers/MounteaDialogueGraphEditorUtilities.h" //#include "Helpers/MounteaDialogueSystemEditorBFC.h" diff --git a/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.h b/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.h index e7e069e..c0e9e81 100644 --- a/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.h +++ b/Source/ComboInputEditor/Private/Ed/EdComboActionGraph.h @@ -11,7 +11,7 @@ DECLARE_LOG_CATEGORY_EXTERN(LogEdComboActionGraph, Log, All); UCLASS() -class COMBOINPUT_API UEdComboActionGraph : public UEdGraph +class COMBOINPUTEDITOR_API UEdComboActionGraph : public UEdGraph { GENERATED_BODY() @@ -32,10 +32,10 @@ public: public: UPROPERTY(Transient) - TMap NodeMap; + TMap NodeMap; UPROPERTY(Transient) - TMap EdgeMap; + TMap EdgeMap; protected: diff --git a/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNode.cpp b/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNode.cpp index 7503a13..2f31e9a 100644 --- a/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNode.cpp +++ b/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNode.cpp @@ -2,12 +2,12 @@ #include "SEdComboActionGraphNode.h" +#include "ComboInputEditor.h" + #include "Nodes/ComboActionGraphNode.h" #include "Helpers/ComboActionGraphColors.h" #include "Ed/SEdComboActionGraphNodeIndex.h" #include "Ed/EdComboActionGraphNode.h" - -//#include "SLevelOfDetailBranchNode.h" #include "Widgets/Text/SInlineEditableTextBlock.h" #include "SCommentBubble.h" #include "SlateOptMacros.h" @@ -79,18 +79,20 @@ protected: const FSlateBrush *GetPinBorder() const { + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); + if (const UComboActionGraphEditorSettings *GraphEditorSettings = GetMutableDefault()) { switch (GraphEditorSettings->GetNodeType()) { case EComboActionNodeType::SoftCorners: - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.TextSoftEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.TextSoftEdges"); case EComboActionNodeType::HardCorners: - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.TextHardEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.TextHardEdges"); } } - return FComboActionGraphEditorStyle::GetBrush(TEXT("MDSStyleSet.Graph.PinDocksOverlay")); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush(TEXT("MDSStyleSet.Graph.PinDocksOverlay")); } }; @@ -128,7 +130,8 @@ void SEdComboActionGraphNode::OnMouseLeave(const FPointerEvent& MouseEvent) const FSlateBrush *SEdComboActionGraphNode::GetIndexBrush() const { - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.TextSoftEdges"); + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.TextSoftEdges"); } BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION @@ -155,8 +158,9 @@ void SEdComboActionGraphNode::UpdateGraphNode() TSharedPtr UniformBox; this->ContentScale.Bind(this, &SGraphNode::GetContentScale); - - const FSlateBrush* CircleBrush = FComboActionGraphEditorStyle::GetBrush(TEXT("MDSStyleSet.Node.IndexCircle")); + + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); + const FSlateBrush *CircleBrush = ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush(TEXT("MDSStyleSet.Node.IndexCircle")); this->GetOrAddSlot(ENodeZone::Left) .SlotOffset(TAttribute(this, &SEdComboActionGraphNode::GetIndexSlotOffset)) .SlotSize(TAttribute(this, &SEdComboActionGraphNode::GetIndexSlotSize)) @@ -378,7 +382,7 @@ void SEdComboActionGraphNode::UpdateGraphNode() .AutoHeight() [ SAssignNew(InlineEditableText, SInlineEditableTextBlock) - .Style(FComboActionGraphEditorStyle::Get(), "MDSStyleSet.NodeTitleInlineEditableText") + .Style(ComboInputEditorModule.ComboActionGraphEditorStyleSet.Get(), "MDSStyleSet.NodeTitleInlineEditableText") .Text(NodeTitle.Get(), &SNodeTitle::GetHeadTitle) .OnVerifyTextChanged( this, &SEdComboActionGraphNode::OnVerifyNameTextChanged) @@ -994,34 +998,36 @@ void SEdComboActionGraphNode::OnNameTextCommitted(const FText& InText, ETextComm const FSlateBrush *SEdComboActionGraphNode::GetNodeTypeBrush() const { + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); if (GraphEditorSettings) { switch (GraphEditorSettings->GetNodeType()) { case EComboActionNodeType::SoftCorners: - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.SoftEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.SoftEdges"); case EComboActionNodeType::HardCorners: - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.HardEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.HardEdges"); } } - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.SoftEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.SoftEdges"); } const FSlateBrush *SEdComboActionGraphNode::GetTextNodeTypeBrush() const { + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); if (GraphEditorSettings) { switch (GraphEditorSettings->GetNodeType()) { case EComboActionNodeType::SoftCorners: - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.TextSoftEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.TextSoftEdges"); case EComboActionNodeType::HardCorners: - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.TextHardEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.TextHardEdges"); } } - return FComboActionGraphEditorStyle::GetBrush("MDSStyleSet.Node.TextSoftEdges"); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush("MDSStyleSet.Node.TextSoftEdges"); } FSlateColor SEdComboActionGraphNode::GetBorderBackgroundColor() const @@ -1084,6 +1090,8 @@ const FSlateBrush*SEdComboActionGraphNode::GetNameIcon() const const FSlateBrush*SEdComboActionGraphNode::GetInheritsImageBrush() const { + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); + bool bHasDecorators = false; if (const UEdComboActionGraphNode *EdParentNode = Cast(this->GraphNode)) { @@ -1093,7 +1101,7 @@ const FSlateBrush*SEdComboActionGraphNode::GetInheritsImageBrush() const } } - return FComboActionGraphEditorStyle::GetBrush( bHasDecorators ? "MDSStyleSet.Icon.OK" : "MDSStyleSet.Icon.Error" ); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush( bHasDecorators ? "MDSStyleSet.Icon.OK" : "MDSStyleSet.Icon.Error" ); } FSlateColor SEdComboActionGraphNode::GetInheritsImageTint() const @@ -1112,7 +1120,8 @@ FSlateColor SEdComboActionGraphNode::GetInheritsImageTint() const const FSlateBrush*SEdComboActionGraphNode::GetBulletPointImageBrush() const { - return FComboActionGraphEditorStyle::GetBrush( "MDSStyleSet.Icon.BulletPoint" ); + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); + return ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush( "MDSStyleSet.Icon.BulletPoint" ); } FText SEdComboActionGraphNode::GetIndexOverlayTooltipText() const diff --git a/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNodeIndex.cpp b/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNodeIndex.cpp index 8e1a8b8..3444880 100644 --- a/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNodeIndex.cpp +++ b/Source/ComboInputEditor/Private/Ed/SEdComboActionGraphNodeIndex.cpp @@ -2,12 +2,14 @@ #include "SEdComboActionGraphNodeIndex.h" +#include "ComboInputEditor.h" #include "Settings/FComboActionGraphEditorStyle.h" void SEdComboActionGraphNodeIndex::Construct(const FArguments &InArgs) { - const FSlateBrush* CircleBrush = FComboActionGraphEditorStyle::GetBrush(TEXT("MDSStyleSet.Node.IndexCircle")); + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); + const FSlateBrush* CircleBrush = ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush(TEXT("MDSStyleSet.Node.IndexCircle")); ChildSlot [ SNew(SOverlay) diff --git a/Source/ComboInputEditor/Private/FConnectionDrawingPolicy_ComboActionGraph.cpp b/Source/ComboInputEditor/Private/FConnectionDrawingPolicy_ComboActionGraph.cpp index 49866cd..eacaf84 100644 --- a/Source/ComboInputEditor/Private/FConnectionDrawingPolicy_ComboActionGraph.cpp +++ b/Source/ComboInputEditor/Private/FConnectionDrawingPolicy_ComboActionGraph.cpp @@ -2,6 +2,7 @@ #include "FConnectionDrawingPolicy_ComboActionGraph.h" +#include "ComboInputEditor.h" #include "Ed/EdComboActionGraphEdge.h" #include "Ed/EdComboActionGraphNode.h" #include "Settings/ComboActionGraphEditorSettings.h" @@ -16,19 +17,20 @@ FConnectionDrawingPolicy_ComboActionGraph::FConnectionDrawingPolicy_ComboActionG { if (const UComboActionGraphEditorSettings* GraphEditorSettings = GetMutableDefault()) { + FComboInputEditorModule &ComboInputEditorModule = FComboInputEditorModule::Get(); switch (GraphEditorSettings->GetArrowType()) { case EComboActionArrowType::SimpleArrow: - ArrowImage = FComboActionGraphEditorStyle::GetBrush(TEXT("MDSStyleSet.Graph.SimpleArrow")); + ArrowImage = ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush(TEXT("MDSStyleSet.Graph.SimpleArrow")); break; case EComboActionArrowType::HollowArrow: - ArrowImage = FComboActionGraphEditorStyle::GetBrush(TEXT("MDSStyleSet.Graph.HollowArrow")); + ArrowImage = ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush(TEXT("MDSStyleSet.Graph.HollowArrow")); break; case EComboActionArrowType::FancyArrow: - ArrowImage = FComboActionGraphEditorStyle::GetBrush(TEXT("MDSStyleSet.Graph.FancyArrow")); + ArrowImage = ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush(TEXT("MDSStyleSet.Graph.FancyArrow")); break; case EComboActionArrowType::Bubble: - ArrowImage = FComboActionGraphEditorStyle::GetBrush(TEXT("MDSStyleSet.Graph.Bubble")); + ArrowImage = ComboInputEditorModule.ComboActionGraphEditorStyleSet->GetBrush(TEXT("MDSStyleSet.Graph.Bubble")); break; case EComboActionArrowType::None: default: diff --git a/Source/ComboInputEditor/Private/Settings/ComboActionGraphEditorSettings.h b/Source/ComboInputEditor/Private/Settings/ComboActionGraphEditorSettings.h index 34e4850..fa0a9c3 100644 --- a/Source/ComboInputEditor/Private/Settings/ComboActionGraphEditorSettings.h +++ b/Source/ComboInputEditor/Private/Settings/ComboActionGraphEditorSettings.h @@ -69,11 +69,12 @@ enum class EComboActionArrowType : uint8 #pragma endregion + /** * Combo Action Graph global settings. */ -UCLASS(config = MounteaSettings) -class COMBOINPUT_API UComboActionGraphEditorSettings : public UDeveloperSettings +UCLASS(config = ComboActionSettings) +class COMBOINPUTEDITOR_API UComboActionGraphEditorSettings : public UDeveloperSettings { GENERATED_BODY() diff --git a/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.cpp b/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.cpp index e2e5180..3efcfe8 100644 --- a/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.cpp +++ b/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.cpp @@ -1,35 +1,14 @@ -// Copyright Dominik Pavlicek 2023. All Rights Reserved. +// ©2023 Batty Bovine Productions, LLC. All Rights Reserved. #include "FComboActionGraphEditorStyle.h" #include "Interfaces/IPluginManager.h" #include "Misc/Paths.h" +#include "Styling/SlateStyleMacros.h" #include "Styling/SlateStyleRegistry.h" -#define IMAGE_BRUSH(RelativePath, ...) FSlateImageBrush(StyleSet->RootToContentDir(RelativePath, TEXT(".png")), __VA_ARGS__) -#define BOX_BRUSH(RelativePath, ...) FSlateBoxBrush(StyleSet->RootToContentDir(RelativePath, TEXT(".png")), __VA_ARGS__) -#define DEFAULT_FONT(...) FCoreStyle::GetDefaultFontStyle(__VA_ARGS__) - -TSharedPtr FComboActionGraphEditorStyle::StyleSet = nullptr; - -void FComboActionGraphEditorStyle::Initialize() -{ - if (!StyleSet.IsValid() ) - { - Create(); - FSlateStyleRegistry::RegisterSlateStyle(*StyleSet.Get()); - } -} - -void FComboActionGraphEditorStyle::Shutdown() -{ - FSlateStyleRegistry::UnRegisterSlateStyle(*StyleSet.Get()); - ensure(StyleSet.IsUnique()); - StyleSet.Reset(); -} - -void FComboActionGraphEditorStyle::Create() +FComboActionGraphEditorStyle::FComboActionGraphEditorStyle() : FSlateStyleSet("ComboActionGraphEditorStyle") { const FVector2D Icon12x12(12.0f, 12.0f); const FVector2D Icon16x16(16.0f, 16.0f); @@ -38,66 +17,65 @@ void FComboActionGraphEditorStyle::Create() const FVector2D Icon128x128(128.f, 128.f); const FVector2D Icon200x70(200.f, 70.f); - StyleSet = MakeShareable(new FSlateStyleSet(GetAppStyleSetName())); - StyleSet->SetContentRoot(IPluginManager::Get().FindPlugin("ComboInput")->GetBaseDir() / TEXT("Resources")); - StyleSet->SetCoreContentRoot(IPluginManager::Get().FindPlugin("ComboInput")->GetBaseDir() / TEXT("Content")); + this->SetContentRoot(IPluginManager::Get().FindPlugin("ComboInput")->GetBaseDir() / TEXT("Resources")); + this->SetCoreContentRoot(IPluginManager::Get().FindPlugin("ComboInput")->GetBaseDir() / TEXT("Content")); - StyleSet->Set("MDSStyleSet.AutoArrange.small", new IMAGE_BRUSH(TEXT("AutoArrangeIcon"), Icon16x16)); - StyleSet->Set("MDSStyleSet.AutoArrange", new IMAGE_BRUSH(TEXT("AutoArrangeIcon"), Icon40x40)); - StyleSet->Set("MDSStyleSet.AutoArrange.large", new IMAGE_BRUSH(TEXT("AutoArrangeIcon"), Icon64x64)); + this->Set("MDSStyleSet.AutoArrange.small", new IMAGE_BRUSH(TEXT("AutoArrangeIcon"), Icon16x16)); + this->Set("MDSStyleSet.AutoArrange", new IMAGE_BRUSH(TEXT("AutoArrangeIcon"), Icon40x40)); + this->Set("MDSStyleSet.AutoArrange.large", new IMAGE_BRUSH(TEXT("AutoArrangeIcon"), Icon64x64)); - StyleSet->Set("MDSStyleSet.GraphSettings.small", new IMAGE_BRUSH(TEXT("GraphSettings"), Icon16x16)); - StyleSet->Set("MDSStyleSet.GraphSettings", new IMAGE_BRUSH(TEXT("GraphSettings"), Icon40x40)); - StyleSet->Set("MDSStyleSet.GraphSettings.large", new IMAGE_BRUSH(TEXT("GraphSettings"), Icon64x64)); + this->Set("MDSStyleSet.GraphSettings.small", new IMAGE_BRUSH(TEXT("GraphSettings"), Icon16x16)); + this->Set("MDSStyleSet.GraphSettings", new IMAGE_BRUSH(TEXT("GraphSettings"), Icon40x40)); + this->Set("MDSStyleSet.GraphSettings.large", new IMAGE_BRUSH(TEXT("GraphSettings"), Icon64x64)); - StyleSet->Set("MDSStyleSet.ValidateGraph.small", new IMAGE_BRUSH(TEXT("ValidateGraph"), Icon16x16)); - StyleSet->Set("MDSStyleSet.ValidateGraph", new IMAGE_BRUSH(TEXT("ValidateGraph"), Icon40x40)); - StyleSet->Set("MDSStyleSet.ValidateGraph.large", new IMAGE_BRUSH(TEXT("ValidateGraph"), Icon64x64)); + this->Set("MDSStyleSet.ValidateGraph.small", new IMAGE_BRUSH(TEXT("ValidateGraph"), Icon16x16)); + this->Set("MDSStyleSet.ValidateGraph", new IMAGE_BRUSH(TEXT("ValidateGraph"), Icon40x40)); + this->Set("MDSStyleSet.ValidateGraph.large", new IMAGE_BRUSH(TEXT("ValidateGraph"), Icon64x64)); - StyleSet->Set("MDSStyleSet.Graph.NodeOverlay", new BOX_BRUSH( TEXT("NodeOverlay"), FMargin(8.0f/64.0f, 3.0f/32.0f, 0, 0) )); - StyleSet->Set("MDSStyleSet.Graph.PinDocksOverlay", new BOX_BRUSH( TEXT("PinDocksOverlay"), FMargin(8.0f/64.0f, 3.0f/32.0f, 0, 0) )); + this->Set("MDSStyleSet.Graph.NodeOverlay", new BOX_BRUSH( TEXT("NodeOverlay"), FMargin(8.0f/64.0f, 3.0f/32.0f, 0, 0) )); + this->Set("MDSStyleSet.Graph.PinDocksOverlay", new BOX_BRUSH( TEXT("PinDocksOverlay"), FMargin(8.0f/64.0f, 3.0f/32.0f, 0, 0) )); - StyleSet->Set("MDSStyleSet.Graph.SimpleArrow", new IMAGE_BRUSH(TEXT("SimpleArrow"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Graph.HollowArrow", new IMAGE_BRUSH(TEXT("HollowArrow"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Graph.FancyArrow", new IMAGE_BRUSH(TEXT("FancyArrow"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Graph.Bubble", new IMAGE_BRUSH(TEXT("Bubble"), Icon16x16)); + this->Set("MDSStyleSet.Graph.SimpleArrow", new IMAGE_BRUSH(TEXT("SimpleArrow"), Icon16x16)); + this->Set("MDSStyleSet.Graph.HollowArrow", new IMAGE_BRUSH(TEXT("HollowArrow"), Icon16x16)); + this->Set("MDSStyleSet.Graph.FancyArrow", new IMAGE_BRUSH(TEXT("FancyArrow"), Icon16x16)); + this->Set("MDSStyleSet.Graph.Bubble", new IMAGE_BRUSH(TEXT("Bubble"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Node.SoftEdges", new BOX_BRUSH( TEXT("NodeSoftCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); - StyleSet->Set("MDSStyleSet.Node.HardEdges", new BOX_BRUSH( TEXT("NodeHardCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); + this->Set("MDSStyleSet.Node.SoftEdges", new BOX_BRUSH( TEXT("NodeSoftCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); + this->Set("MDSStyleSet.Node.HardEdges", new BOX_BRUSH( TEXT("NodeHardCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); - StyleSet->Set("MDSStyleSet.Node.TextSoftEdges", new BOX_BRUSH( TEXT("TextSoftCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); - StyleSet->Set("MDSStyleSet.Node.TextHardEdges", new BOX_BRUSH( TEXT("TextHardCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); + this->Set("MDSStyleSet.Node.TextSoftEdges", new BOX_BRUSH( TEXT("TextSoftCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); + this->Set("MDSStyleSet.Node.TextHardEdges", new BOX_BRUSH( TEXT("TextHardCorners") , FMargin(16.f/64.f, 25.f/64.f, 16.f/64.f, 16.f/64.f) )); - StyleSet->Set("MDSStyleSet.Node.IndexCircle", new IMAGE_BRUSH(TEXT("IndexIcon"), Icon16x16)); + this->Set("MDSStyleSet.Node.IndexCircle", new IMAGE_BRUSH(TEXT("IndexIcon"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Icon.OK", new IMAGE_BRUSH(TEXT("OKIcon"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Icon.Error", new IMAGE_BRUSH(TEXT("ErroIcon"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Icon.BulletPoint", new IMAGE_BRUSH(TEXT("CircleBox"), Icon16x16)); + this->Set("MDSStyleSet.Icon.OK", new IMAGE_BRUSH(TEXT("OKIcon"), Icon16x16)); + this->Set("MDSStyleSet.Icon.Error", new IMAGE_BRUSH(TEXT("ErroIcon"), Icon16x16)); + this->Set("MDSStyleSet.Icon.BulletPoint", new IMAGE_BRUSH(TEXT("CircleBox"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Graph.CornerImage", new IMAGE_BRUSH(TEXT("Icon128"), Icon128x128)); + this->Set("MDSStyleSet.Graph.CornerImage", new IMAGE_BRUSH(TEXT("Icon128"), Icon128x128)); - StyleSet->Set("MDSStyleSet.Icon.Browse", new IMAGE_BRUSH(TEXT("BrowseIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Icon.Edit", new IMAGE_BRUSH(TEXT("EditIcon"), Icon12x12)); + this->Set("MDSStyleSet.Icon.Browse", new IMAGE_BRUSH(TEXT("BrowseIcon"), Icon12x12)); + this->Set("MDSStyleSet.Icon.Edit", new IMAGE_BRUSH(TEXT("EditIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Buttons.Documentation", new IMAGE_BRUSH(TEXT("Documentation"), Icon200x70)); - StyleSet->Set("MDSStyleSet.Buttons.Documentation.small", new IMAGE_BRUSH(TEXT("DocumentationIcon"), Icon12x12)); + this->Set("MDSStyleSet.Buttons.Documentation", new IMAGE_BRUSH(TEXT("Documentation"), Icon200x70)); + this->Set("MDSStyleSet.Buttons.Documentation.small", new IMAGE_BRUSH(TEXT("DocumentationIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Node.Icon.large", new IMAGE_BRUSH(TEXT("DialogueNodeIcon"), Icon64x64)); - StyleSet->Set("MDSStyleSet.Node.Icon", new IMAGE_BRUSH(TEXT("DialogueNodeIcon"), Icon16x16)); - StyleSet->Set("MDSStyleSet.Node.Icon.small", new IMAGE_BRUSH(TEXT("DialogueNodeIcon"), Icon12x12)); + this->Set("MDSStyleSet.Node.Icon.large", new IMAGE_BRUSH(TEXT("DialogueNodeIcon"), Icon64x64)); + this->Set("MDSStyleSet.Node.Icon", new IMAGE_BRUSH(TEXT("DialogueNodeIcon"), Icon16x16)); + this->Set("MDSStyleSet.Node.Icon.small", new IMAGE_BRUSH(TEXT("DialogueNodeIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Icon.Close", new IMAGE_BRUSH(TEXT("CloseIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Icon.SupportDiscord", new IMAGE_BRUSH(TEXT("DiscordIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Icon.HeartIcon", new IMAGE_BRUSH(TEXT("HeartIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Icon.UBIcon", new IMAGE_BRUSH(TEXT("UnrealBucketIcon"), Icon12x12)); - StyleSet->Set("MDSStyleSet.Icon.MoneyIcon", new IMAGE_BRUSH(TEXT("MoneyIcon"), Icon12x12)); + this->Set("MDSStyleSet.Icon.Close", new IMAGE_BRUSH(TEXT("CloseIcon"), Icon12x12)); + this->Set("MDSStyleSet.Icon.SupportDiscord", new IMAGE_BRUSH(TEXT("DiscordIcon"), Icon12x12)); + this->Set("MDSStyleSet.Icon.HeartIcon", new IMAGE_BRUSH(TEXT("HeartIcon"), Icon12x12)); + this->Set("MDSStyleSet.Icon.UBIcon", new IMAGE_BRUSH(TEXT("UnrealBucketIcon"), Icon12x12)); + this->Set("MDSStyleSet.Icon.MoneyIcon", new IMAGE_BRUSH(TEXT("MoneyIcon"), Icon12x12)); const FButtonStyle MounteaButtonStyle = FButtonStyle() .SetNormal(BOX_BRUSH("RoundedSelection_16x", 4.0f / 16.0f, FLinearColor(1, 1, 1, 0.1f))) .SetHovered(BOX_BRUSH("RoundedSelection_16x", 4.0f / 16.0f, FLinearColor(1, .55f, 0, 0.2f))) .SetPressed(BOX_BRUSH("RoundedSelection_16x", 4.0f / 16.0f, FLinearColor(1, .55f, 0, 0.4f))); - StyleSet->Set("MDSStyleSet.Buttons.Style", MounteaButtonStyle); + this->Set("MDSStyleSet.Buttons.Style", MounteaButtonStyle); { const FScrollBarStyle ScrollBar = GetWidgetStyle( "ScrollBar" ); @@ -115,7 +93,7 @@ void FComboActionGraphEditorStyle::Create() .SetColorAndOpacity( FLinearColor(230.0f/255.0f,230.0f/255.0f,230.0f/255.0f) ) .SetShadowOffset( FVector2D( 2,2 ) ) .SetShadowColorAndOpacity( FLinearColor(0.f,0.f,0.f, 0.7f) ); - StyleSet->Set( "MDSStyleSet.NodeTitle", NodeTitle ); + this->Set( "MDSStyleSet.NodeTitle", NodeTitle ); FEditableTextBoxStyle NodeTitleEditableText = FEditableTextBoxStyle() .SetFont(NormalText.Font) @@ -124,15 +102,11 @@ void FComboActionGraphEditorStyle::Create() .SetBackgroundImageFocused( BOX_BRUSH( "TextBox_Hovered", FMargin(4.0f/16.0f) ) ) .SetBackgroundImageReadOnly( BOX_BRUSH( "TextBox_ReadOnly", FMargin(4.0f/16.0f) ) ) .SetScrollBarStyle( ScrollBar ); - StyleSet->Set( "MDSStyleSet.NodeTitleEditableText", NodeTitleEditableText ); + this->Set( "MDSStyleSet.NodeTitleEditableText", NodeTitleEditableText ); - StyleSet->Set( "MDSStyleSet.NodeTitleInlineEditableText", FInlineEditableTextBlockStyle() + this->Set( "MDSStyleSet.NodeTitleInlineEditableText", FInlineEditableTextBlockStyle() .SetTextStyle(NodeTitle) .SetEditableTextBoxStyle(NodeTitleEditableText) ); } } - -#undef DEFAULT_FONT -#undef BOX_BRUSH -#undef IMAGE_BRUSH diff --git a/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.h b/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.h index 7c189fa..f29a92c 100644 --- a/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.h +++ b/Source/ComboInputEditor/Private/Settings/FComboActionGraphEditorStyle.h @@ -1,40 +1,18 @@ -// Copyright Dominik Pavlicek 2023. All Rights Reserved. +// ©2023 Batty Bovine Productions, LLC. All Rights Reserved. #pragma once #include "CoreMinimal.h" -#include "Styling/SlateStyle.h" -class FComboActionGraphEditorStyle +class FComboActionGraphEditorStyle final : public FSlateStyleSet { public: - - static void Create(); - static void Initialize(); - static void Shutdown(); - static ISlateStyle &Get() - { - return *(StyleSet.Get()); - } - - static const FSlateBrush *GetBrush(FName PropertyName, const ANSICHAR *Specifier = NULL) - { - return StyleSet->GetBrush(PropertyName, Specifier); - }; + FComboActionGraphEditorStyle(); static const FName &GetAppStyleSetName() { static FName StyleSetName(TEXT("ComboActionGraphEditorStyle")); return StyleSetName; }; - - template< class T > - static const T &GetWidgetStyle( FName PropertyName, const ANSICHAR *Specifier = NULL ) - { - return StyleSet->GetWidgetStyle< T >( PropertyName, Specifier ); - } - -private: - static TSharedPtr StyleSet; }; diff --git a/Source/ComboInputEditor/Public/ComboInputEditor.h b/Source/ComboInputEditor/Public/ComboInputEditor.h index 0f3c00d..698b6a3 100644 --- a/Source/ComboInputEditor/Public/ComboInputEditor.h +++ b/Source/ComboInputEditor/Public/ComboInputEditor.h @@ -67,6 +67,8 @@ public: static EAssetTypeCategories::Type GetInputAssetsCategory() { return FComboInputEditorModule::ComboAssetsCategory; } + TSharedPtr ComboActionGraphEditorStyleSet; + private: void RegisterAssetTypeActions(IAssetTools &AssetTools, TSharedRef Action) { @@ -78,5 +80,5 @@ private: TArray> CreatedAssetTypeActions; - TSharedPtr StyleSet; + TSharedPtr ComboInputEditorStyleSet; };