void SLevelEditorModeContent::UpdateModeToolBar() { const TArray< TSharedPtr< IToolkit > >& HostedToolkits = LevelEditor.Pin()->GetHostedToolkits(); for( auto HostedToolkitIt = HostedToolkits.CreateConstIterator(); HostedToolkitIt; ++HostedToolkitIt ) { UpdateInlineContent( ( *HostedToolkitIt )->GetInlineContent() ); break; } }
void SLevelEditorToolBox::OnToolkitHostingStarted( const TSharedRef< class IToolkit >& Toolkit ) { if( ToolkitArea.IsValid() ) { ToolkitArea->OnToolkitHostingStarted( Toolkit ); } UpdateInlineContent( Toolkit->GetInlineContent() ); }
void SLevelEditorToolBox::UpdateModeToolBar() { FLevelEditorModule& LevelEditorModule = FModuleManager::GetModuleChecked<FLevelEditorModule>( "LevelEditor"); const TSharedPtr< const FUICommandList > CommandList = LevelEditorModule.GetGlobalLevelEditorActions(); const TSharedPtr<FExtender> ModeBarExtenders = LevelEditorModule.GetModeBarExtensibilityManager()->GetAllExtenders(); FToolBarBuilder EditorModeTools( CommandList, FMultiBoxCustomization::None, ModeBarExtenders ); { EditorModeTools.SetStyle(&FEditorStyle::Get(), "EditorModesToolbar"); EditorModeTools.SetLabelVisibility( EVisibility::Collapsed ); const FLevelEditorModesCommands& Commands = LevelEditorModule.GetLevelEditorModesCommands(); for ( const FEditorModeInfo& Mode : FEditorModeRegistry::Get().GetSortedModeInfo() ) { // If the mode isn't visible don't create a menu option for it. if ( !Mode.bVisible ) { continue; } FName EditorModeCommandName = FName( *( FString( "EditorMode." ) + Mode.ID.ToString() ) ); TSharedPtr<FUICommandInfo> EditorModeCommand = FInputBindingManager::Get().FindCommandInContext( Commands.GetContextName(), EditorModeCommandName ); // If a command isn't yet registered for this mode, we need to register one. if ( !EditorModeCommand.IsValid() ) { continue; } const FUIAction* UIAction = EditorModeTools.GetTopCommandList()->GetActionForCommand( EditorModeCommand ); if ( ensure( UIAction ) ) { EditorModeTools.AddToolBarButton( EditorModeCommand, Mode.ID, Mode.Name, Mode.Name, Mode.IconBrush, Mode.ID );// , EUserInterfaceActionType::ToggleButton ); } } } ModeToolBarContainer->SetContent( EditorModeTools.MakeWidget() ); const TArray< TSharedPtr< IToolkit > >& HostedToolkits = LevelEditor.Pin()->GetHostedToolkits(); for( auto HostedToolkitIt = HostedToolkits.CreateConstIterator(); HostedToolkitIt; ++HostedToolkitIt ) { UpdateInlineContent( ( *HostedToolkitIt )->GetInlineContent() ); break; } }
void SLevelEditorToolBox::OnToolkitHostingFinished( const TSharedRef< class IToolkit >& Toolkit ) { if( ToolkitArea.IsValid() ) { ToolkitArea->OnToolkitHostingFinished( Toolkit ); } bool FoundAnotherToolkit = false; const TArray< TSharedPtr< IToolkit > >& HostedToolkits = LevelEditor.Pin()->GetHostedToolkits(); for( auto HostedToolkitIt = HostedToolkits.CreateConstIterator(); HostedToolkitIt; ++HostedToolkitIt ) { if ( ( *HostedToolkitIt ) != Toolkit ) { UpdateInlineContent( ( *HostedToolkitIt )->GetInlineContent() ); FoundAnotherToolkit = true; break; } } if ( !FoundAnotherToolkit ) { UpdateInlineContent( SNullWidget::NullWidget ); } }