// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. #include "TextureEditorPrivatePCH.h" #include "ModuleManager.h" #define LOCTEXT_NAMESPACE "FTextureEditorModule" const FName TextureEditorAppIdentifier = FName(TEXT("TextureEditorApp")); /*----------------------------------------------------------------------------- FTextureEditorModule -----------------------------------------------------------------------------*/ class FTextureEditorModule : public ITextureEditorModule { public: // Begin ITextureEditorModule interface virtual TSharedRef CreateTextureEditor( const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, UTexture* Texture ) OVERRIDE { TSharedRef NewTextureEditor(new FTextureEditorToolkit()); NewTextureEditor->InitTextureEditor(Mode, InitToolkitHost, Texture); return NewTextureEditor; } virtual TSharedPtr GetMenuExtensibilityManager( ) { return MenuExtensibilityManager; } virtual TSharedPtr GetToolBarExtensibilityManager( ) { return ToolBarExtensibilityManager; } // End ITextureEditorModule interface public: // Begin IModuleInterface interface virtual void StartupModule( ) OVERRIDE { // register menu extensions MenuExtensibilityManager = MakeShareable(new FExtensibilityManager); ToolBarExtensibilityManager = MakeShareable(new FExtensibilityManager); // register settings ISettingsModule* SettingsModule = ISettingsModule::Get(); if (SettingsModule != nullptr) { SettingsModule->RegisterSettings("Editor", "ContentEditors", "TextureEditor", LOCTEXT("TextureEditorSettingsName", "Texture Editor"), LOCTEXT("TextureEditorSettingsDescription", "Configure the look and feel of the Texture Editor."), TWeakObjectPtr(GetMutableDefault()) ); } } virtual void ShutdownModule( ) OVERRIDE { // unregister settings ISettingsModule* SettingsModule = ISettingsModule::Get(); if (SettingsModule != nullptr) { SettingsModule->UnregisterSettings("Editor", "ContentEditors", "TextureEditor"); } // unregister menu extensions MenuExtensibilityManager.Reset(); ToolBarExtensibilityManager.Reset(); } // End IModuleInterface interface private: // Holds the menu extensibility manager. TSharedPtr MenuExtensibilityManager; // Holds the tool bar extensibility manager. TSharedPtr ToolBarExtensibilityManager; }; IMPLEMENT_MODULE(FTextureEditorModule, TextureEditor); #undef LOCTEXT_NAMESPACE