// Fill out your copyright notice in the Description page of Project Settings. #include "DialogueEditorMode.h" #include "DialogueAssetEditor.h" #include "DialogueGraphTabSummoner.h" #include "DialogueDetailsTabSummoner.h" FDialogueEditorMode::FDialogueEditorMode(TSharedPtr InDialogueEditor) : FApplicationMode(TEXT("DialogueEditorMode")) { DialogueEditor = InDialogueEditor; // 注册Tab工厂 TabFactories.RegisterFactory(MakeShared(InDialogueEditor)); TabFactories.RegisterFactory(MakeShared(InDialogueEditor)); // 定义布局 TabLayout = FTabManager::NewLayout("Standalone_DialogueEditor_Layout_v1") ->AddArea ( FTabManager::NewPrimaryArea() ->SetOrientation(Orient_Vertical) ->Split ( FTabManager::NewSplitter() ->SetOrientation(Orient_Horizontal) ->Split ( FTabManager::NewStack() ->SetSizeCoefficient(0.7f) ->AddTab(FName(TEXT("DialogueGraphTabId")), ETabState::OpenedTab) ) ->Split ( FTabManager::NewStack() ->SetSizeCoefficient(0.3f) ->AddTab(FName(TEXT("DialogueDetailsTabId")), ETabState::OpenedTab) ) ) ); } void FDialogueEditorMode::RegisterTabFactories(TSharedPtr InTabManager) { TSharedPtr Editor = DialogueEditor.Pin(); Editor->PushTabFactories(TabFactories); FApplicationMode::RegisterTabFactories(InTabManager); }