Files
UnrealEngine/Engine/Source/Editor/UMGEditor/Private/BlueprintModes/WidgetPreviewApplicationMode.cpp
2025-05-18 13:04:45 +08:00

75 lines
2.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "BlueprintModes/WidgetPreviewApplicationMode.h"
#include "BlueprintModes/WidgetBlueprintApplicationModes.h"
#include "SBlueprintEditorToolbar.h"
#include "TabFactory/PreviewDetailsTabSummoner.h"
#include "TabFactory/DetailsTabSummoner.h"
#include "TabFactory/PreviewTabSummoner.h"
#include "ToolMenus.h"
#include "UMGEditorModule.h"
#include "WidgetBlueprintEditorToolbar.h"
namespace UE::UMG::Editor
{
FWidgetPreviewApplicationMode::FWidgetPreviewApplicationMode(TSharedPtr<FWidgetBlueprintEditor> InWidgetEditor)
: FWidgetBlueprintApplicationMode(InWidgetEditor, FWidgetBlueprintApplicationModes::PreviewMode)
{
TabLayout = FTabManager::NewLayout( "WidgetBlueprintEditor_Preview_Layout_v1" )
->AddArea
(
FTabManager::NewPrimaryArea()
->SetOrientation(Orient_Horizontal)
->Split
(
FTabManager::NewStack()
->SetSizeCoefficient(0.8f)
->AddTab(FWidgetPreviewTabSummoner::TabID, ETabState::OpenedTab)
->SetHideTabWell(true)
)
->Split
(
FTabManager::NewSplitter()
->SetOrientation(Orient_Vertical)
->SetSizeCoefficient(0.15f)
->Split
(
FTabManager::NewStack()
->AddTab(FPreviewDetailsTabSummoner::TabID, ETabState::OpenedTab)
)
)
);
TabFactories.RegisterFactory(MakeShareable(new FWidgetPreviewTabSummoner(InWidgetEditor)));
TabFactories.RegisterFactory(MakeShareable(new FPreviewDetailsTabSummoner(InWidgetEditor)));
//TabFactories.RegisterFactory(MakeShareable(new FPreviewSettingsTabSummoner(InWidgetEditor))); Named: Parameters? contains: localization, background, size
IUMGEditorModule& UMGEditorModule = FModuleManager::LoadModuleChecked<IUMGEditorModule>("UMGEditor");
UMGEditorModule.OnRegisterTabsForEditor().Broadcast(*this, TabFactories);
ToolbarExtender = UMGEditorModule.GetToolBarExtensibilityManager()->GetAllExtenders();
InWidgetEditor->GetWidgetToolbarBuilder()->AddWidgetBlueprintEditorModesToolbar(ToolbarExtender);
if (UToolMenu* Toolbar = InWidgetEditor->RegisterModeToolbarIfUnregistered(GetModeName()))
{
InWidgetEditor->GetWidgetToolbarBuilder()->AddWidgetReflector(Toolbar);
}
}
void FWidgetPreviewApplicationMode::RegisterTabFactories(TSharedPtr<FTabManager> InTabManager)
{
TSharedPtr<FBlueprintEditor> BP = GetBlueprintEditor();
BP->RegisterToolbarTab(InTabManager.ToSharedRef());
BP->PushTabFactories(TabFactories);
}
void FWidgetPreviewApplicationMode::PostActivateMode()
{
}
} //namespace