// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Widgets/SWidget.h" #include "Modules/ModuleInterface.h" #include "Framework/Commands/UICommandList.h" #include "Framework/MultiBox/MultiBoxExtender.h" #include "Toolkits/AssetEditorToolkit.h" #include "ISkeletonEditor.h" #include "ISkeletonTree.h" #include "BlendProfilePicker.h" class IEditableSkeleton; class USkeleton; DECLARE_LOG_CATEGORY_EXTERN(LogSkeletonEditor, Log, All); class ISkeletonEditorModule : public IModuleInterface, public IHasMenuExtensibility, public IHasToolBarExtensibility { public: /** Creates a new skeleton editor instance */ virtual TSharedRef CreateSkeletonEditor(const EToolkitMode::Type Mode, const TSharedPtr& InitToolkitHost, class USkeleton* InSkeleton) = 0; /** Creates a new skeleton tree instance */ virtual TSharedRef CreateSkeletonTree(USkeleton* InSkeleton, const FSkeletonTreeArgs& InSkeletonTreeArgs) = 0; /** Creates a new skeleton tree instance */ virtual TSharedRef CreateSkeletonTree(const TSharedRef& InEditableSkeleton, const FSkeletonTreeArgs& InSkeletonTreeArgs) = 0; /** Creates a new skeleton tree instance & registers a tab factory with the supplied tab factories */ virtual TSharedRef CreateSkeletonTreeTabFactory(const TSharedRef& InHostingApp, const TSharedRef& InSkeletonTree) = 0; /** Creates a new editable skeleton instance */ virtual TSharedRef CreateEditableSkeleton(USkeleton* InSkeleton) = 0; /** Creates a new blend profile picker instance */ virtual TSharedRef CreateBlendProfilePicker(USkeleton* InSkeleton, const FBlendProfilePickerArgs& InArgs = FBlendProfilePickerArgs()) = 0; /** Get all toolbar extenders */ DECLARE_DELEGATE_RetVal_TwoParams(TSharedRef, FSkeletonEditorToolbarExtender, const TSharedRef /*InCommandList*/, TSharedRef /*InSkeletonEditor*/); virtual TArray& GetAllSkeletonEditorToolbarExtenders() = 0; };