// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "CoreMinimal.h" #include "Delegates/Delegate.h" #include "Framework/Commands/UICommandList.h" #include "GraphEditor.h" #include "HAL/Platform.h" #include "Misc/Attribute.h" #include "Modules/ModuleInterface.h" #include "Templates/SharedPointer.h" class FExtender; class FUICommandList; class SWidget; class UEdGraph; class UEdGraphNode; class UEdGraphPin; struct FDiffSingleResult; /** * Graph editor public interface */ class FGraphEditorModule : public IModuleInterface { public: virtual void StartupModule() override; virtual void ShutdownModule() override; /** Delegates to be called to extend the graph menus */ DECLARE_DELEGATE_RetVal_FiveParams( TSharedRef, FGraphEditorMenuExtender_SelectedNode, const TSharedRef, const UEdGraph*, const UEdGraphNode*, const UEdGraphPin*, bool); virtual TArray& GetAllGraphEditorContextMenuExtender() {return GraphEditorContextMenuExtender;} private: friend class SGraphEditor; /** * DO NOT CALL THIS METHOD. Use SNew(SGraphEditor) to make instances of SGraphEditor. * * @return A GraphEditor implementation. */ virtual TSharedRef PRIVATE_MakeGraphEditor( const TSharedPtr& InAdditionalCommands, const TAttribute& InIsEditable, const TAttribute& InDisplayAsReadOnly, const TAttribute& InIsEmpty, TAttribute Appearance, TSharedPtr InTitleBar, UEdGraph* InGraphToEdit, SGraphEditor::FGraphEditorEvents GraphEvents, bool InAutoExpandActionMenu, TSharedPtr> DiffResults, TAttribute FocusedDiffResult, FSimpleDelegate InOnNavigateHistoryBack, FSimpleDelegate InOnNavigateHistoryForward, TAttribute ShowGraphStateOverlay); private: /** All extender delegates for the graph menus */ TArray GraphEditorContextMenuExtender; };