You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#JIRA UETOOL-3039 #rb Lauren.Barnes #lockdown Simon.Tourangeau #preflight 606d2c11dc3e5b0001c915aa #ROBOMERGE-OWNER: louise.rasmussen #ROBOMERGE-AUTHOR: louise.rasmussen #ROBOMERGE-SOURCE: CL 15937971 in //UE5/Release-5.0-EarlyAccess/... #ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533) #ROBOMERGE-CONFLICT from-shelf [CL 15938452 by louise rasmussen in ue5-main branch]
202 lines
8.3 KiB
C++
202 lines
8.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "WorkspaceMenuStructureModule.h"
|
|
#include "Textures/SlateIcon.h"
|
|
#include "Framework/Docking/WorkspaceItem.h"
|
|
#include "WorkspaceMenuStructure.h"
|
|
|
|
|
|
|
|
#include "EditorStyleSet.h"
|
|
|
|
IMPLEMENT_MODULE( FWorkspaceMenuStructureModule, WorkspaceMenuStructure );
|
|
|
|
#define LOCTEXT_NAMESPACE "UnrealEditor"
|
|
|
|
class FWorkspaceMenuStructure : public IWorkspaceMenuStructure
|
|
{
|
|
public:
|
|
virtual TSharedRef<FWorkspaceItem> GetStructureRoot() const override
|
|
{
|
|
return MenuRoot.ToSharedRef();
|
|
}
|
|
virtual TSharedRef<FWorkspaceItem> GetToolsStructureRoot() const override
|
|
{
|
|
return ToolsMenuRoot.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetLevelEditorCategory() const override
|
|
{
|
|
return LevelEditorCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetLevelEditorViewportsCategory() const override
|
|
{
|
|
return LevelEditorViewportsCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetLevelEditorDetailsCategory() const override
|
|
{
|
|
return LevelEditorDetailsCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetLevelEditorModesCategory() const override
|
|
{
|
|
return LevelEditorModesCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetLevelEditorCinematicsCategory() const override
|
|
{
|
|
return LevelEditorCinematicsCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetLevelEditorVirtualProductionCategory() const override
|
|
{
|
|
return LevelEditorVirtualProductionCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetToolsCategory() const override
|
|
{
|
|
return ToolsCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetDeveloperToolsDebugCategory() const override
|
|
{
|
|
return DeveloperToolsDebugCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetDeveloperToolsLogCategory() const override
|
|
{
|
|
return DeveloperToolsLogCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetDeveloperToolsProfilingCategory() const override
|
|
{
|
|
return DeveloperToolsProfilingCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetDeveloperToolsAuditCategory() const override
|
|
{
|
|
return DeveloperToolsAuditCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetDeveloperToolsPlatformsCategory() const override
|
|
{
|
|
return DeveloperToolsPlatformsCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetDeveloperToolsMiscCategory() const override
|
|
{
|
|
return DeveloperToolsMiscCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetAutomationToolsCategory() const override
|
|
{
|
|
return AutomationToolsCategory.ToSharedRef();
|
|
}
|
|
|
|
virtual TSharedRef<FWorkspaceItem> GetEditOptions() const override
|
|
{
|
|
return EditOptions.ToSharedRef();
|
|
}
|
|
|
|
void ResetLevelEditorCategory()
|
|
{
|
|
LevelEditorCategory->ClearItems();
|
|
LevelEditorViewportsCategory = LevelEditorCategory->AddGroup(LOCTEXT( "WorkspaceMenu_LevelEditorViewportCategory", "Viewports" ), LOCTEXT( "WorkspaceMenu_LevelEditorViewportCategoryTooltip", "Open a Viewport tab." ), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.Viewports"), true);
|
|
LevelEditorDetailsCategory = LevelEditorCategory->AddGroup(LOCTEXT("WorkspaceMenu_LevelEditorDetailCategory", "Details" ), LOCTEXT("WorkspaceMenu_LevelEditorDetailCategoryTooltip", "Open a Details tab." ), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.Details"), true );
|
|
LevelEditorCinematicsCategory = LevelEditorCategory->AddGroup(LOCTEXT("WorkspaceMenu_LevelEditorCinematicsCategory", "Cinematics"), LOCTEXT("WorkspaceMenu_LevelEditorCinematicsCategoryTooltip", "Open a Cinematics tab."), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.Cinematics"), true);
|
|
LevelEditorVirtualProductionCategory = LevelEditorCategory->AddGroup(LOCTEXT("WorkspaceMenu_LevelEditorVirtualProductionCategory", "Virtual Production"), LOCTEXT("WorkspaceMenu_LevelEditorVirtualProductionCategoryTooltip", "Open a Virtual Production tab."), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.VirtualProduction"), true);
|
|
LevelEditorModesCategory = LevelEditorCategory->AddGroup(LOCTEXT("WorkspaceMenu_LevelEditorToolsCategory", "Editor Modes" ), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.EditorModes"), true );
|
|
|
|
}
|
|
|
|
void ResetToolsCategory()
|
|
{
|
|
// Developer tools sections
|
|
DeveloperToolsCategory->ClearItems();
|
|
DeveloperToolsSubMenuDebugCategory = DeveloperToolsCategory->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsDebugCategory", "Debug"), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.Debug"), true);
|
|
|
|
DeveloperToolsDebugCategory = DeveloperToolsSubMenuDebugCategory->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsDebugCategory", "Debug"), FSlateIcon(), true);
|
|
AutomationToolsCategory = DeveloperToolsSubMenuDebugCategory->AddGroup(LOCTEXT("WorkspaceMenu_AutomationToolsCategory", "Testing"), FSlateIcon(), true);
|
|
|
|
DeveloperToolsProfilingCategory = DeveloperToolsCategory->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsProfilingCategory", "Profile"), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Profile"), true);
|
|
DeveloperToolsAuditCategory = DeveloperToolsCategory->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsAuditCategory", "Audit"), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Audit"), true);
|
|
DeveloperToolsPlatformsCategory = DeveloperToolsCategory->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsPlatforms:WCategory", "Platforms"), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Platforms"), true);
|
|
DeveloperToolsMiscCategory = DeveloperToolsCategory->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsMiscCategory", "Miscellaneous"), FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.Debug"), true);
|
|
}
|
|
|
|
public:
|
|
FWorkspaceMenuStructure()
|
|
: MenuRoot ( FWorkspaceItem::NewGroup(LOCTEXT( "WorkspaceMenu_Root", "Menu Root" )) )
|
|
, ToolsMenuRoot ( FWorkspaceItem::NewGroup(LOCTEXT( "WorkspaceToolsMenu_Root", "Tools Menu Root" )) )
|
|
, LevelEditorCategory ( MenuRoot->AddGroup(LOCTEXT( "WorkspaceMenu_LevelEditorCategory", "Level Editor" ), FSlateIcon(), true) )
|
|
, ToolsCategory ( ToolsMenuRoot->AddGroup(LOCTEXT( "WorkspaceMenu_ToolsCategory", "Tools" ), FSlateIcon(), true) )
|
|
, DeveloperToolsCategory ( ToolsMenuRoot->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsCategory", "Instrumentation"), FSlateIcon()) )
|
|
, DeveloperToolsLogCategory ( MenuRoot->AddGroup(LOCTEXT("WorkspaceMenu_DeveloperToolsLogCategory", "Log"), FSlateIcon(), true))
|
|
, EditOptions( FWorkspaceItem::NewGroup(LOCTEXT( "WorkspaceEdit_Options", "Edit Options" )) )
|
|
{
|
|
|
|
|
|
ResetLevelEditorCategory();
|
|
ResetToolsCategory();
|
|
}
|
|
|
|
virtual ~FWorkspaceMenuStructure() {}
|
|
|
|
private:
|
|
TSharedPtr<FWorkspaceItem> MenuRoot;
|
|
TSharedPtr<FWorkspaceItem> ToolsMenuRoot;
|
|
|
|
TSharedPtr<FWorkspaceItem> LevelEditorCategory;
|
|
TSharedPtr<FWorkspaceItem> LevelEditorViewportsCategory;
|
|
TSharedPtr<FWorkspaceItem> LevelEditorDetailsCategory;
|
|
TSharedPtr<FWorkspaceItem> LevelEditorCinematicsCategory;
|
|
TSharedPtr<FWorkspaceItem> LevelEditorVirtualProductionCategory;
|
|
TSharedPtr<FWorkspaceItem> LevelEditorModesCategory;
|
|
|
|
TSharedPtr<FWorkspaceItem> ToolsCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsLogCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsSubMenuDebugCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsDebugCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsAuditCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsProfilingCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsPlatformsCategory;
|
|
TSharedPtr<FWorkspaceItem> DeveloperToolsMiscCategory;
|
|
|
|
TSharedPtr<FWorkspaceItem> AutomationToolsCategory;
|
|
|
|
TSharedPtr<FWorkspaceItem> EditOptions;
|
|
};
|
|
|
|
void FWorkspaceMenuStructureModule::StartupModule()
|
|
{
|
|
WorkspaceMenuStructure = MakeShareable(new FWorkspaceMenuStructure);
|
|
}
|
|
|
|
void FWorkspaceMenuStructureModule::ShutdownModule()
|
|
{
|
|
WorkspaceMenuStructure.Reset();
|
|
}
|
|
|
|
const IWorkspaceMenuStructure& FWorkspaceMenuStructureModule::GetWorkspaceMenuStructure() const
|
|
{
|
|
check(WorkspaceMenuStructure.IsValid());
|
|
return *WorkspaceMenuStructure;
|
|
}
|
|
|
|
void FWorkspaceMenuStructureModule::ResetLevelEditorCategory()
|
|
{
|
|
check(WorkspaceMenuStructure.IsValid());
|
|
WorkspaceMenuStructure->ResetLevelEditorCategory();
|
|
}
|
|
|
|
void FWorkspaceMenuStructureModule::ResetToolsCategory()
|
|
{
|
|
check(WorkspaceMenuStructure.IsValid());
|
|
WorkspaceMenuStructure->ResetToolsCategory();
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|