void SLevelEditorModeContent::Construct( const FArguments& InArgs, const TSharedRef< class ILevelEditor >& InOwningLevelEditor, const TSharedRef< class SDockTab >& InOwningDocTab, FEdMode* InEditorMode ) { LevelEditor = InOwningLevelEditor; DocTab = InOwningDocTab; EditorMode = InEditorMode; InOwningDocTab->SetOnTabClosed( SDockTab::FOnTabClosedCallback::CreateSP(this, &SLevelEditorModeContent::HandleParentClosed ) ); GLevelEditorModeTools().OnEditorModeChanged().AddSP( this, &SLevelEditorModeContent::HandleEditorModeChanged ); GEditor->AccessEditorUserSettings().OnUserSettingChanged().AddSP( this, &SLevelEditorModeContent::HandleUserSettingsChange ); ChildSlot [ SNew( SHorizontalBox ) // The Current Creation Tool + SHorizontalBox::Slot() .FillWidth( 1.0 ) .Padding( 2, 0, 0, 0 ) [ SNew( SVerticalBox ) + SVerticalBox::Slot() [ SAssignNew(InlineContentHolder, SBorder) .BorderImage( FEditorStyle::GetBrush("NoBorder") ) .Padding(0.f) .Visibility( this, &SLevelEditorModeContent::GetInlineContentHolderVisibility ) ] ] ]; UpdateModeToolBar(); }
void SLevelEditorToolBox::Construct( const FArguments& InArgs, const TSharedRef< class ILevelEditor >& OwningLevelEditor ) { LevelEditor = OwningLevelEditor; // Important: We use a raw binding here because we are releasing our binding in our destructor (where a weak pointer would be invalid) // It's imperative that our delegate is removed in the destructor for the level editor module to play nicely with reloading. GEditor->AccessEditorUserSettings().OnUserSettingChanged().AddRaw( this, &SLevelEditorToolBox::HandleUserSettingsChange ); ChildSlot [ SNew( SVerticalBox ) + SVerticalBox::Slot() .AutoHeight() .HAlign( HAlign_Left ) .Padding(0, 0, 0, 0) [ SAssignNew( ModeToolBarContainer, SBorder ) .BorderImage( FEditorStyle::GetBrush( "NoBorder" ) ) .Padding( FMargin(4, 0, 0, 0) ) ] + SVerticalBox::Slot() .FillHeight( 1.0f ) .Padding( 2, 0, 0, 0 ) [ SNew( SVerticalBox ) + SVerticalBox::Slot() [ SAssignNew(InlineContentHolder, SBorder) .BorderImage( FEditorStyle::GetBrush( "ToolPanel.GroupBorder" ) ) .Padding(0.f) .Visibility( this, &SLevelEditorToolBox::GetInlineContentHolderVisibility ) ] + SVerticalBox::Slot() .AutoHeight() .HAlign( HAlign_Center ) .Padding( 2.0f, 14.0f, 2.0f, 2.0f ) [ SNew( STextBlock ) .Text( LOCTEXT("NoToolSelected", "Select a tool to display its options.") ) .Visibility( this, &SLevelEditorToolBox::GetNoToolSelectedTextVisibility ) ] ] ]; UpdateModeToolBar(); }
void SLevelEditorToolBox::Construct( const FArguments& InArgs, const TSharedRef< class ILevelEditor >& OwningLevelEditor ) { LevelEditor = OwningLevelEditor; GEditor->AccessEditorUserSettings().OnUserSettingChanged().AddSP( this, &SLevelEditorToolBox::HandleUserSettingsChange ); ChildSlot [ SNew( SVerticalBox ) + SVerticalBox::Slot() .AutoHeight() .HAlign( HAlign_Left ) .Padding(0, 0, 0, 0) [ SAssignNew( ModeToolBarContainer, SBorder ) .BorderImage( FEditorStyle::GetBrush( "NoBorder" ) ) .Padding( FMargin(4, 0, 0, 0) ) ] + SVerticalBox::Slot() .FillHeight( 1.0f ) .Padding( 2, 0, 0, 0 ) [ SNew( SVerticalBox ) + SVerticalBox::Slot() [ SAssignNew(InlineContentHolder, SBorder) .BorderImage( FEditorStyle::GetBrush( "ToolPanel.GroupBorder" ) ) .Padding(0.f) .Visibility( this, &SLevelEditorToolBox::GetInlineContentHolderVisibility ) ] + SVerticalBox::Slot() .AutoHeight() .HAlign( HAlign_Center ) .Padding( 2.0f, 14.0f, 2.0f, 2.0f ) [ SNew( STextBlock ) .Text( LOCTEXT("NoToolSelected", "Select a tool to display its options.") ) .Visibility( this, &SLevelEditorToolBox::GetNoToolSelectedTextVisibility ) ] ] ]; UpdateModeToolBar(); }
void SLevelEditorToolBox::HandleUserSettingsChange( FName PropertyName ) { UpdateModeToolBar(); }
void SLevelEditorToolBox::OnEditorModeCommandsChanged() { UpdateModeToolBar(); }