TSharedRef<SWidget> FMainMenu::MakeMainMenu(const TSharedPtr<FTabManager>& TabManager, const TSharedRef< FExtender > Extender) { #define LOCTEXT_NAMESPACE "MainMenu" // Put the toolbox into our menus { const IWorkspaceMenuStructure& MenuStructure = WorkspaceMenu::GetMenuStructure(); IToolboxModule& ToolboxModule = FModuleManager::LoadModuleChecked<IToolboxModule>("Toolbox"); ToolboxModule.RegisterSpawners(MenuStructure.GetDeveloperToolsDebugCategory(), MenuStructure.GetDeveloperToolsMiscCategory()); } // Cache all project names once FMainFrameActionCallbacks::CacheProjectNames(); FMenuBarBuilder MenuBuilder(FMainFrameCommands::ActionList, Extender); { // File MenuBuilder.AddPullDownMenu( LOCTEXT("FileMenu", "File"), LOCTEXT("FileMenu_ToolTip", "Open the file menu"), FNewMenuDelegate::CreateStatic(&FMainMenu::FillFileMenu, Extender), "File", FName(TEXT("FileMenu")) ); // Edit MenuBuilder.AddPullDownMenu( LOCTEXT("EditMenu", "Edit"), LOCTEXT("EditMenu_ToolTip", "Open the edit menu"), FNewMenuDelegate::CreateStatic(&FMainMenu::FillEditMenu, Extender, TabManager), "Edit" , FName(TEXT("EditMenu")) ); // Window MenuBuilder.AddPullDownMenu( LOCTEXT("WindowMenu", "Window"), LOCTEXT("WindowMenu_ToolTip", "Open new windows or tabs."), FNewMenuDelegate::CreateStatic(&FMainMenu::FillWindowMenu, Extender, TabManager), "Window" ); // Help MenuBuilder.AddPullDownMenu( LOCTEXT("HelpMenu", "Help"), LOCTEXT("HelpMenu_ToolTip", "Open the help menu"), FNewMenuDelegate::CreateStatic(&FMainMenu::FillHelpMenu, Extender), "Help" ); } // Create the menu bar! TSharedRef<SWidget> MenuBarWidget = MenuBuilder.MakeWidget(); // Tell tab-manager about the multi-box for platforms with a global menu bar TabManager->SetMenuMultiBox(MenuBuilder.GetMultiBox()); return MenuBarWidget; }