// Copyright Epic Games, Inc. All Rights Reserved. #include "AnimationEditor.h" #include "Containers/Array.h" #include "IAnimationEditorModule.h" #include "Modules/ModuleManager.h" #include "Templates/SharedPointer.h" #include "Toolkits/AssetEditorToolkit.h" #include "Toolkits/IToolkit.h" class IAnimationEditor; class IToolkitHost; class UAnimationAsset; class FAnimationEditorModule : public IAnimationEditorModule { public: /** Constructor, set up console commands and variables **/ FAnimationEditorModule() { } /** Called right after the module DLL has been loaded and the module object has been created */ virtual void StartupModule() override { MenuExtensibilityManager = MakeShareable(new FExtensibilityManager); ToolBarExtensibilityManager = MakeShareable(new FExtensibilityManager); } /** Called before the module is unloaded, right before the module object is destroyed. */ virtual void ShutdownModule() override { MenuExtensibilityManager.Reset(); ToolBarExtensibilityManager.Reset(); } virtual TSharedRef CreateAnimationEditor(const EToolkitMode::Type Mode, const TSharedPtr& InitToolkitHost, UAnimationAsset* InAnimationAsset) override { TSharedRef AnimationEditor(new FAnimationEditor()); AnimationEditor->InitAnimationEditor(Mode, InitToolkitHost, InAnimationAsset); return AnimationEditor; } virtual TArray& GetAllAnimationEditorToolbarExtenders() override { return AnimationEditorToolbarExtenders; } /** Gets the extensibility managers for outside entities to extend this editor's menus and toolbars */ virtual TSharedPtr GetMenuExtensibilityManager() override { return MenuExtensibilityManager; } virtual TSharedPtr GetToolBarExtensibilityManager() override { return ToolBarExtensibilityManager; } private: TSharedPtr MenuExtensibilityManager; TSharedPtr ToolBarExtensibilityManager; TArray AnimationEditorToolbarExtenders; }; IMPLEMENT_MODULE(FAnimationEditorModule, AnimationEditor);