// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Tools/BaseAssetToolkit.h" class FDataLinkGraphCompilerTool; class FDataLinkGraphEditorTool; class FDataLinkPreviewTool; class SGraphEditor; class UDataLinkGraphAssetEditor; struct FEdGraphEditAction; class FDataLinkGraphAssetToolkit : public FBaseAssetToolkit { public: explicit FDataLinkGraphAssetToolkit(UDataLinkGraphAssetEditor* InAssetEditor); TSharedPtr GetDetailsView() const; //~ Begin FBaseAssetToolkit virtual void RegisterToolbar() override; virtual void InitToolMenuContext(FToolMenuContext& InMenuContext) override; virtual void CreateWidgets() override; virtual TSharedRef CreateDetailsView() override; virtual void PostInitAssetEditor() override; //~ End FBaseAssetToolkit //~ Begin FAssetEditorToolkit virtual void MapToolkitCommands() override; //~ End FAssetEditorToolkit //~ Begin IToolkit virtual FName GetToolkitFName() const override; virtual void RegisterTabSpawners(const TSharedRef& InTabManager) override; virtual void UnregisterTabSpawners(const TSharedRef& InTabManager) override; //~ End IToolkit const FDataLinkGraphCompilerTool& GetCompilerTool() const { return CompilerTool.Get(); } const FDataLinkPreviewTool& GetPreviewTool() const { return PreviewTool.Get(); } private: void OnGraphChanged(const FEdGraphEditAction& InAction); TObjectPtr AssetEditor; TSharedRef GraphTool; TSharedRef CompilerTool; TSharedRef PreviewTool; };