// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #include "SizeMapModule.h" #include "ISizeMapModule.h" #include "SSizeMap.h" #include "SDockTab.h" #define LOCTEXT_NAMESPACE "SizeMap" class FSizeMapModule : public ISizeMapModule { public: FSizeMapModule() : SizeMapTabId("SizeMap") { } virtual void StartupModule() override { FGlobalTabmanager::Get()->RegisterNomadTabSpawner(SizeMapTabId, FOnSpawnTab::CreateRaw( this, &FSizeMapModule::SpawnSizeMapTab ) ) .SetDisplayName( LOCTEXT("SizeMapTitle", "Size Map") ) .SetMenuType( ETabSpawnerMenuType::Hidden ); } virtual void ShutdownModule() override { FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(SizeMapTabId); } virtual void InvokeSizeMapTab(const TArray& AssetPackageNames) override { TSharedRef NewTab = FGlobalTabmanager::Get()->InvokeTab( SizeMapTabId ); TSharedRef SizeMap = StaticCastSharedRef( NewTab->GetContent() ); SizeMap->SetRootAssetPackageNames( AssetPackageNames ); } private: TSharedRef SpawnSizeMapTab( const FSpawnTabArgs& SpawnTabArgs ) { TSharedRef NewTab = SNew(SDockTab) .TabRole(ETabRole::NomadTab); NewTab->SetContent( SNew(SSizeMap) ); return NewTab; } private: FName SizeMapTabId; }; IMPLEMENT_MODULE( FSizeMapModule, SizeMap ) #undef LOCTEXT_NAMESPACE