Files
UnrealEngine/Engine/Plugins/Experimental/DataLink/Source/DataLinkEditor/Private/DataLinkGraphAssetToolkit.h
2025-05-18 13:04:45 +08:00

60 lines
1.6 KiB
C++

// 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<IDetailsView> GetDetailsView() const;
//~ Begin FBaseAssetToolkit
virtual void RegisterToolbar() override;
virtual void InitToolMenuContext(FToolMenuContext& InMenuContext) override;
virtual void CreateWidgets() override;
virtual TSharedRef<IDetailsView> 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<FTabManager>& InTabManager) override;
virtual void UnregisterTabSpawners(const TSharedRef<FTabManager>& 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<UDataLinkGraphAssetEditor> AssetEditor;
TSharedRef<FDataLinkGraphEditorTool> GraphTool;
TSharedRef<FDataLinkGraphCompilerTool> CompilerTool;
TSharedRef<FDataLinkPreviewTool> PreviewTool;
};