// Copyright Epic Games, Inc. All Rights Reserved. #include "WorkflowOrientedApp/ApplicationMode.h" #include "Framework/MultiBox/MultiBoxExtender.h" #include "Framework/Docking/LayoutService.h" #include "UnrealEdMisc.h" DEFINE_LOG_CATEGORY_STATIC(LogApplicationMode, Log, All); #define LOCTEXT_NAMESPACE "ApplicationMode" ///////////////////////////////////////////////////// // FApplicationMode FApplicationMode::FApplicationMode(FName InModeName) : ModeName(InModeName) { ToolbarExtender = MakeShareable(new FExtender); WorkspaceMenuCategory = FWorkspaceItem::NewGroup(LOCTEXT("WorkspaceMenu_AssetEditor", "Asset Editor")); } FApplicationMode::FApplicationMode(FName InModeName, FText(*GetLocalizedMode)(const FName)) : ModeName(InModeName) { ToolbarExtender = MakeShareable(new FExtender); WorkspaceMenuCategory = FWorkspaceItem::NewGroup(FText::Format(LOCTEXT("WorkspaceMenu_ApplicationMode", "{0} Editor"), GetLocalizedMode(InModeName))); } void FApplicationMode::DeactivateMode(TSharedPtr InTabManager) { // Save the layout to INI check(InTabManager.IsValid()); FLayoutSaveRestore::SaveToConfig(LayoutIni, InTabManager->PersistLayout()); // Unregister the tabs /* for (int32 Index = 0; Index < AllowableTabs.Num(); ++Index) { const FName TabName = AllowableTabs[Index]; PinnedTabManager->UnregisterTabSpawner(TabName); } */ } TSharedRef FApplicationMode::ActivateMode(TSharedPtr InTabManager) { check(InTabManager.IsValid()); RegisterTabFactories(InTabManager); /* for (int32 Index = 0; Index < AllowableTabs.Num(); ++Index) { const FName TabName = AllowableTabs[Index]; PinnedTabManager->RegisterTabSpawner(TabName, FOnSpawnTab::CreateSP(this, &FApplicationMode::SpawnTab, TabName)); } */ // Try loading the layout from INI check(TabLayout.IsValid()); return FLayoutSaveRestore::LoadFromConfig(LayoutIni, TabLayout.ToSharedRef()); } #undef LOCTEXT_NAMESPACE