// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Framework/Docking/WorkspaceItem.h" /** * Describes the workspace menu from which tabs are summoned * * +-Asset Editor Tabs * |-Tab * |-... * | * +-Level Editor Tabs * |-Tab * |-... * | \ Viewports > * +-Tools Tabs * |-Tab * |-... * \ Automation > * \ Developer Tools > */ class FWorkspaceItem; class IWorkspaceMenuStructure { public: /** Get the root of the menu structure. Pass this into PopulateTabSpawnerMenu() */ virtual TSharedRef GetStructureRoot() const = 0; /** Alternate root for the Tools menu */ virtual TSharedRef GetToolsStructureRoot() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorCategory() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorViewportsCategory() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorDetailsCategory() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorCinematicsCategory() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorVirtualProductionCategory() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorWorldPartitionCategory() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorOutlinerCategory() const = 0; /** See diagram above */ virtual TSharedRef GetLevelEditorModesCategory() const = 0; /** See diagram above */ virtual TSharedRef GetToolsCategory() const = 0; /** See diagram above */ virtual TSharedRef GetDeveloperToolsDebugCategory() const = 0; /** See diagram above */ virtual TSharedRef GetDeveloperToolsLogCategory() const = 0; /** See diagram above */ virtual TSharedRef GetDeveloperToolsProfilingCategory() const = 0; /** See diagram above */ virtual TSharedRef GetDeveloperToolsAuditCategory() const = 0; /** See diagram above */ virtual TSharedRef GetDeveloperToolsPlatformsCategory() const = 0; /** See diagram above */ virtual TSharedRef GetDeveloperToolsMiscCategory() const = 0; /** See diagram above */ virtual TSharedRef GetAutomationToolsCategory() const = 0; /** Get the root of the edit menu structure. Pass this into PopulateTabSpawnerMenu() */ virtual TSharedRef GetEditOptions() const = 0; };