Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Public/Tools/BaseAssetToolkit.h
2025-05-18 13:04:45 +08:00

78 lines
2.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "UObject/Object.h"
#include "Toolkits/AssetEditorToolkit.h"
#include "Templates/SharedPointer.h"
#include "Framework/Docking/TabManager.h"
#include "AssetEditorViewportLayout.h"
class SDockTab;
class FSpawnTabArgs;
class SEditorViewport;
class FLayoutExtender;
class FPreviewScene;
class FEditorViewportClient;
class UAssetEditor;
class FBaseAssetToolkit : public FAssetEditorToolkit
{
public:
UNREALED_API FBaseAssetToolkit(UAssetEditor* InOwningAssetEditor);
UNREALED_API ~FBaseAssetToolkit();
virtual FName GetToolkitFName() const override
{
return NAME_None;
}
virtual FText GetBaseToolkitName() const override
{
return FText::GetEmpty();
}
virtual FString GetWorldCentricTabPrefix() const override
{
return TEXT("");
}
virtual FLinearColor GetWorldCentricTabColorScale() const override
{
return FLinearColor::White;
}
UNREALED_API virtual void RegisterTabSpawners(const TSharedRef<FTabManager>& InTabManager) override;
UNREALED_API virtual void UnregisterTabSpawners(const TSharedRef<FTabManager>& InTabManager) override;
UNREALED_API virtual const TSharedRef<FTabManager::FLayout> GetDefaultLayout() const;
UNREALED_API virtual void CreateWidgets();
UNREALED_API virtual void SetEditingObject(class UObject* InObject);
UNREALED_API virtual void CreateEditorModeManager() override;
public:
static UNREALED_API const FName ViewportTabID;
static UNREALED_API const FName DetailsTabID;
protected:
UNREALED_API virtual void RegisterToolbar();
UNREALED_API virtual AssetEditorViewportFactoryFunction GetViewportDelegate();
UNREALED_API virtual TSharedPtr<FEditorViewportClient> CreateEditorViewportClient() const;
UNREALED_API virtual TSharedRef<SDockTab> SpawnTab_Viewport(const FSpawnTabArgs& Args);
UNREALED_API virtual TSharedRef<SDockTab> SpawnTab_Details(const FSpawnTabArgs& Args);
UNREALED_API virtual TSharedRef<IDetailsView> CreateDetailsView();
protected:
/** Property View */
TSharedPtr<class IDetailsView> DetailsView;
// Tracking the active viewports in this editor.
TSharedPtr<class FEditorViewportTabContent> ViewportTabContent;
/** Storage for our viewport creation function that will be passed to the viewport layout system*/
AssetEditorViewportFactoryFunction ViewportDelegate;
TSharedPtr<FEditorViewportClient> ViewportClient;
/** Extender for adding to the default layout for this asset editor */
TSharedPtr<FLayoutExtender> LayoutExtender;
TSharedPtr<FTabManager::FLayout> StandaloneDefaultLayout;
FString LayoutAppendix;
UAssetEditor* OwningAssetEditor;
};