-
Notifications
You must be signed in to change notification settings - Fork 348
Expand file tree
/
Copy pathFlowEditorModule.h
More file actions
69 lines (51 loc) · 2.01 KB
/
FlowEditorModule.h
File metadata and controls
69 lines (51 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Copyright https://github.com/MothCocoon/FlowGraph/graphs/contributors
#pragma once
#include "AssetTypeCategories.h"
#include "IAssetTypeActions.h"
#include "Modules/ModuleInterface.h"
#include "PropertyEditorDelegates.h"
#include "Toolkits/AssetEditorToolkit.h"
#include "Toolkits/IToolkit.h"
class FSlateStyleSet;
class FToolBarBuilder;
struct FGraphPanelPinConnectionFactory;
class FFlowAssetEditor;
class UFlowAsset;
struct FLOWEDITOR_API FFlowAssetCategoryPaths : EAssetCategoryPaths
{
static FAssetCategoryPath Flow;
};
class FLOWEDITOR_API FFlowEditorModule : public IModuleInterface
{
public:
static EAssetTypeCategories::Type FlowAssetCategory;
private:
TArray<TSharedRef<IAssetTypeActions>> RegisteredAssetActions;
TSet<FName> CustomClassLayouts;
TSet<FName> CustomStructLayouts;
bool bIsRegisteredForAssetChanges = false;
TSharedPtr<class FFlowActorDetails> ActorDetails;
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
void RegisterForAssetChanges();
private:
void TrySetFlowNodeDisplayStyleDefaults() const;
void RegisterAssets();
void UnregisterAssets();
void RegisterDetailCustomizations();
void UnregisterDetailCustomizations();
void RegisterCustomClassLayout(const TSubclassOf<UObject> Class, const FOnGetDetailCustomizationInstance DetailLayout);
void RegisterCustomStructLayout(const UScriptStruct& Struct, const FOnGetPropertyTypeCustomizationInstance DetailLayout);
public:
FDelegateHandle FlowTrackCreateEditorHandle;
FDelegateHandle ModulesChangedHandle;
private:
void ModulesChangesCallback(FName ModuleName, EModuleChangeReason ReasonForChange) const;
void RegisterAssetIndexers() const;
void CreateFlowToolbar(FToolBarBuilder& ToolbarBuilder) const;
public:
static TSharedRef<FFlowAssetEditor> CreateFlowAssetEditor(const EToolkitMode::Type Mode, const TSharedPtr<IToolkitHost>& InitToolkitHost, UFlowAsset* FlowAsset);
void OnAssetUpdated(const FAssetData& AssetData);
void OnAssetRenamed(const FAssetData& AssetData, const FString& OldObjectPath);
};