Files
UnrealEngineUWP/Engine/Source/Editor/TextureEditor/Private/TextureEditorModule.cpp
2014-03-14 14:13:41 -04:00

98 lines
2.6 KiB
C++

// 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<ITextureEditorToolkit> CreateTextureEditor( const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, UTexture* Texture ) OVERRIDE
{
TSharedRef<FTextureEditorToolkit> NewTextureEditor(new FTextureEditorToolkit());
NewTextureEditor->InitTextureEditor(Mode, InitToolkitHost, Texture);
return NewTextureEditor;
}
virtual TSharedPtr<FExtensibilityManager> GetMenuExtensibilityManager( )
{
return MenuExtensibilityManager;
}
virtual TSharedPtr<FExtensibilityManager> 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<UObject>(GetMutableDefault<UTextureEditorSettings>())
);
}
}
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<FExtensibilityManager> MenuExtensibilityManager;
// Holds the tool bar extensibility manager.
TSharedPtr<FExtensibilityManager> ToolBarExtensibilityManager;
};
IMPLEMENT_MODULE(FTextureEditorModule, TextureEditor);
#undef LOCTEXT_NAMESPACE