TSharedRef<SDockTab> FCurveAssetEditor::SpawnTab_CurveAsset( const FSpawnTabArgs& Args ) { check( Args.GetTabId().TabType == CurveTabId ); ViewMinInput=0.f; ViewMaxInput=5.f; InputSnap = 0.1f; OutputSnap = 0.05f; TSharedRef<SDockTab> NewDockTab = SNew(SDockTab) .Icon( FEditorStyle::GetBrush("CurveAssetEditor.Tabs.Properties") ) .Label( FText::Format(LOCTEXT("CurveAssetEditorTitle", "{0} Curve Asset"), FText::FromString(GetTabPrefix()))) .TabColorScale( GetTabColorScale() ) [ SNew(SBorder) .BorderImage( FEditorStyle::GetBrush("ToolPanel.GroupBorder") ) .Padding(0.0f) [ SAssignNew(TrackWidget, SCurveEditor) .ViewMinInput(this, &FCurveAssetEditor::GetViewMinInput) .ViewMaxInput(this, &FCurveAssetEditor::GetViewMaxInput) .InputSnap(this, &FCurveAssetEditor::GetInputSnap) .OutputSnap(this, &FCurveAssetEditor::GetOutputSnap) .TimelineLength(this, &FCurveAssetEditor::GetTimelineLength) .OnSetInputViewRange(this, &FCurveAssetEditor::SetInputViewRange) .HideUI(false) .AlwaysDisplayColorCurves(true) .ShowZoomButtons(false) ] ]; UCurveBase* Curve = Cast<UCurveBase>(GetEditingObject()); UCurveFloat* FloatCurve = Cast<UCurveFloat>(Curve); UCurveVector* VectorCurve = Cast<UCurveVector>(Curve); UCurveLinearColor* LinearColorCurve = Cast<UCurveLinearColor>(Curve); FCurveOwnerInterface* CurveOwner = NULL; if(FloatCurve != NULL) { CurveOwner = FloatCurve; } else if(LinearColorCurve != NULL) { CurveOwner = LinearColorCurve; } else { CurveOwner = VectorCurve; } if (CurveOwner != NULL) { check(TrackWidget.IsValid()); // Set this curve as the SCurveEditor's selected curve TrackWidget->SetCurveOwner(CurveOwner); } return NewDockTab; }
TSharedRef<SDockTab> FContentBrowserSingleton::SpawnContentBrowserTab( const FSpawnTabArgs& SpawnTabArgs, int32 BrowserIdx ) { TAttribute<FText> Label = TAttribute<FText>::Create( TAttribute<FText>::FGetter::CreateRaw( this, &FContentBrowserSingleton::GetContentBrowserTabLabel, BrowserIdx ) ); TSharedRef<SDockTab> NewTab = SNew(SDockTab) .TabRole(ETabRole::NomadTab) .Label( Label ) .ToolTip( IDocumentation::Get()->CreateToolTip( Label, nullptr, "Shared/ContentBrowser", "Tab" ) ); TSharedRef<SContentBrowser> NewBrowser = SNew( SContentBrowser, SpawnTabArgs.GetTabId().TabType ) .IsEnabled( FSlateApplication::Get().GetNormalExecutionAttribute() ) .ContainingTab( NewTab ); AllContentBrowsers.Add(NewBrowser); if ( !PrimaryContentBrowser.IsValid() ) { ChooseNewPrimaryBrowser(); } // Add wrapper for tutorial highlighting TSharedRef<STutorialWrapper> Wrapper = SNew(STutorialWrapper) .Name(FName(TEXT("ContentBrowser"))) .Content() [ NewBrowser ]; NewTab->SetContent( Wrapper ); return NewTab; }
TSharedRef<SDockTab> FSubstanceEditor::SpawnTab_SubstanceEditor( const FSpawnTabArgs& Args ) { check( Args.GetTabId().TabType == SubstanceTabId ); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) .TabRole( ETabRole::NomadTab ) .Label(FText::FromString(GetTabPrefix() + TEXT("Substance Editor"))) [ SubstanceEditorPanel.ToSharedRef() ]; AddToSpawnedToolPanels( Args.GetTabId().TabType, SpawnedTab ); return SpawnedTab; }
TSharedRef<SDockTab> FPropertyEditorToolkit::SpawnTab_PropertyTable( const FSpawnTabArgs& Args ) { check( Args.GetTabId() == GridTabId ); FPropertyEditorModule& PropertyEditorModule = FModuleManager::GetModuleChecked<FPropertyEditorModule>( "PropertyEditor" ); TSharedRef<SDockTab> GridToolkitTab = SNew(SDockTab) .Icon( FEditorStyle::GetBrush("PropertyEditor.Grid.TabIcon") ) .Label( LOCTEXT("GenericGridTitle", "Grid") ) .TabColorScale( GetTabColorScale() ) .Content() [ SNew( SOverlay ) +SOverlay::Slot() [ PropertyEditorModule.CreatePropertyTableWidget( PropertyTable.ToSharedRef() ) ] +SOverlay::Slot() .HAlign( HAlign_Right ) .VAlign( VAlign_Top ) .Padding( FMargin( 0, 3, 0, 0 ) ) [ SNew( SHorizontalBox ) +SHorizontalBox::Slot() .AutoWidth() .HAlign( HAlign_Center ) .VAlign( VAlign_Center ) [ SNew( SImage ) .Image( FEditorStyle::GetBrush( "PropertyEditor.AddColumnOverlay" ) ) .Visibility( this, &FPropertyEditorToolkit::GetAddColumnInstructionsOverlayVisibility ) ] +SHorizontalBox::Slot() .AutoWidth() .HAlign( HAlign_Center ) .VAlign( VAlign_Center ) [ SNew( SImage ) .Image( FEditorStyle::GetBrush( "PropertyEditor.RemoveColumn" ) ) .Visibility( this, &FPropertyEditorToolkit::GetAddColumnInstructionsOverlayVisibility ) ] +SHorizontalBox::Slot() .AutoWidth() .HAlign( HAlign_Center ) .VAlign( VAlign_Center ) .Padding( FMargin( 0, 0, 3, 0 ) ) [ SNew( STextBlock ) .Font( FEditorStyle::GetFontStyle( "PropertyEditor.AddColumnMessage.Font" ) ) .Text( LOCTEXT("GenericPropertiesTitle", "Pin Properties to Add Columns") ) .Visibility( this, &FPropertyEditorToolkit::GetAddColumnInstructionsOverlayVisibility ) .ColorAndOpacity( FEditorStyle::GetColor( "PropertyEditor.AddColumnMessage.ColorAndOpacity" ) ) ] ] ]; return GridToolkitTab; }
TSharedRef<SDockTab> FSoundCueEditor::SpawnTab_Properties(const FSpawnTabArgs& Args) { check( Args.GetTabId() == PropertiesTabId ); return SNew(SDockTab) .Icon(FEditorStyle::GetBrush("LevelEditor.Tabs.Details")) .Label(LOCTEXT("SoundCueDetailsTitle", "Details")) [ SoundCueProperties.ToSharedRef() ]; }
TSharedRef<SDockTab> FSoundCueEditor::SpawnTab_Palette(const FSpawnTabArgs& Args) { check( Args.GetTabId() == PaletteTabId ); return SNew(SDockTab) .Icon(FEditorStyle::GetBrush("Kismet.Tabs.Palette")) .Label(LOCTEXT("SoundCuePaletteTitle", "Palette")) [ Palette.ToSharedRef() ]; }
TSharedRef<SDockTab> SpawnWebBrowserTab(const FSpawnTabArgs& Args) { return SNew(SDockTab) .Label(LOCTEXT("WebBrowserTab", "Web Browser")) .ToolTipText(LOCTEXT("WebBrowserTabToolTip", "Switches to the Web Browser to test its features.")) .TabRole(ETabRole::NomadTab) [ SNew(SWebBrowser) .ParentWindow(Args.GetOwnerWindow()) ]; }
TSharedRef<SDockTab> FNiagaraEffectEditor::SpawnTab_Sequencer(const FSpawnTabArgs& Args) { check(Args.GetTabId().TabType == SequencerTabID); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) [ Sequencer->GetSequencerWidget() ]; return SpawnedTab; }
TSharedRef<SDockTab> FSimpleAssetEditor::SpawnPropertiesTab( const FSpawnTabArgs& Args ) { check( Args.GetTabId() == PropertiesTabId ); return SNew(SDockTab) .Icon( FEditorStyle::GetBrush("GenericEditor.Tabs.Properties") ) .Label( LOCTEXT("GenericDetailsTitle", "Details") ) .TabColorScale( GetTabColorScale() ) [ DetailsView.ToSharedRef() ]; }
TSharedRef<SDockTab> FSoundClassEditor::SpawnTab_GraphCanvas(const FSpawnTabArgs& Args) { check( Args.GetTabId() == GraphCanvasTabId ); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) .Label(LOCTEXT("GraphCanvasTitle", "Graph")) [ GraphEditor.ToSharedRef() ]; return SpawnedTab; }
TSharedRef<SDockTab> FSequencerAssetEditor::SpawnTab_SequencerMain(const FSpawnTabArgs& Args) { check(Args.GetTabId() == SequencerMainTabId); return SNew(SDockTab) .Icon( FEditorStyle::GetBrush("Sequencer.Tabs.SequencerMain") ) .Label( LOCTEXT("SequencerMainTitle", "Sequencer") ) .TabColorScale( GetTabColorScale() ) [ Sequencer->GetSequencerWidget() ]; }
TSharedRef<SDockTab> FNiagaraEffectEditor::SpawnTab_CurveEd(const FSpawnTabArgs& Args) { check(Args.GetTabId().TabType == CurveEditorTabID); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) [ SAssignNew(TimeLine, SNiagaraTimeline) ]; return SpawnedTab; }
TSharedRef<SDockTab> FLogVisualizerModule::SpawnLogVisualizerTab(const FSpawnTabArgs& SpawnTabArgs) { const TSharedRef<SDockTab> MajorTab = SNew(SDockTab) .TabRole(ETabRole::NomadTab); TSharedPtr<SWidget> TabContent; TabContent = SNew(SVisualLogger, MajorTab, SpawnTabArgs.GetOwnerWindow()); MajorTab->SetContent(TabContent.ToSharedRef()); return MajorTab; }
TSharedRef<SDockTab> FSoundClassEditor::SpawnTab_Properties(const FSpawnTabArgs& Args) { check( Args.GetTabId() == PropertiesTabId ); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) .Icon( FEditorStyle::GetBrush("SoundClassEditor.Tabs.Properties") ) .Label( LOCTEXT( "SoundClassPropertiesTitle", "Details" ) ) [ DetailsView.ToSharedRef() ]; return SpawnedTab; }
TSharedRef<SDockTab> FNiagaraEffectEditor::SpawnTab_DevEmitterList(const FSpawnTabArgs& Args) { check(Args.GetTabId().TabType == DevEmitterEditorTabID); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) [ SAssignNew(DevEmitterEditorWidget, SNiagaraEffectEditorWidget).EffectInstance(EffectInstance).EffectEditor(this).bForDev(true) ]; return SpawnedTab; }
TSharedRef<SDockTab> FSoundCueEditor::SpawnTab_GraphCanvas(const FSpawnTabArgs& Args) { check( Args.GetTabId() == GraphCanvasTabId ); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) .Label(LOCTEXT("SoundCueGraphCanvasTitle", "Viewport")); if (SoundCueGraphEditor.IsValid()) { SpawnedTab->SetContent(SoundCueGraphEditor.ToSharedRef()); } return SpawnedTab; }
TSharedRef<SDockTab> FNiagaraEditor::SpawnTab_NodeGraph( const FSpawnTabArgs& Args ) { check( Args.GetTabId().TabType == NodeGraphTabId ); TSharedRef<SGraphEditor> NodeGraphEditor = CreateGraphEditorWidget(Source->NodeGraph); NodeGraphEditorPtr = NodeGraphEditor; // Keep pointer to editor return SNew(SDockTab) .Label( LOCTEXT("NodeGraph", "Node Graph") ) .TabColorScale( GetTabColorScale() ) [ NodeGraphEditor ]; }
TSharedRef<SDockTab> FNiagaraEffectEditor::SpawnTab(const FSpawnTabArgs& Args) { check(Args.GetTabId().TabType == UpdateTabId); TSharedRef<SNiagaraEffectEditorWidget> Editor = CreateEditorWidget(Effect); UpdateEditorPtr = Editor; // Keep pointer to editor return SNew(SDockTab) .Label(LOCTEXT("NiagaraEffect", "Niagara Effect")) .TabColorScale(GetTabColorScale()) [ Editor ]; }
TSharedRef<SDockTab> FNiagaraEffectEditor::SpawnTab_Viewport(const FSpawnTabArgs& Args) { check(Args.GetTabId().TabType == ViewportTabID); Viewport = SNew(SNiagaraEffectEditorViewport); TSharedRef<SDockTab> SpawnedTab = SNew(SDockTab) [ Viewport.ToSharedRef() ]; Viewport->SetPreviewEffect(EffectInstance); Viewport->OnAddedToTab(SpawnedTab); return SpawnedTab; }
/** * Creates a new session launcher tab. * * @param SpawnTabArgs The arguments for the tab to spawn. * @return The spawned tab. */ TSharedRef<SDockTab> SpawnProjectLauncherTab(const FSpawnTabArgs& SpawnTabArgs) { const TSharedRef<SDockTab> DockTab = SNew(SDockTab) .Icon(FEditorStyle::GetBrush("Launcher.TabIcon")) .TabRole(ETabRole::NomadTab); ILauncherServicesModule& ProjectLauncherServicesModule = FModuleManager::LoadModuleChecked<ILauncherServicesModule>("LauncherServices"); ITargetDeviceServicesModule& TargetDeviceServicesModule = FModuleManager::LoadModuleChecked<ITargetDeviceServicesModule>("TargetDeviceServices"); FProjectLauncherModelRef Model = MakeShareable(new FProjectLauncherModel( TargetDeviceServicesModule.GetDeviceProxyManager(), ProjectLauncherServicesModule.CreateLauncher(), ProjectLauncherServicesModule.GetProfileManager() )); DockTab->SetContent(SNew(SProjectLauncher, DockTab, SpawnTabArgs.GetOwnerWindow(), Model)); return DockTab; }
TSharedRef<SDockTab> FPropertyEditorToolkit::SpawnTab_PropertyTree( const FSpawnTabArgs& Args ) { check( Args.GetTabId() == TreeTabId ); TSharedRef<SDockTab> TreeToolkitTab = SNew(SDockTab) .Icon( FEditorStyle::GetBrush("PropertyEditor.Properties.TabIcon") ) .Label( LOCTEXT("GenericDetailsTitle", "Details") ) .TabColorScale( GetTabColorScale() ) .Content() [ SNew(SBorder) .Padding(4) .BorderImage( FEditorStyle::GetBrush( "ToolPanel.GroupBorder" ) ) .Content() [ PropertyTree.ToSharedRef() ] ]; return TreeToolkitTab; }
TSharedRef<SDockTab> FAssetEditorToolkit::SpawnTab_Toolbar( const FSpawnTabArgs& Args ) { check( Args.GetTabId() == ToolbarTabId ); TSharedRef<SDockTab> DockTab = SNew(SDockTab) .Label( NSLOCTEXT("AssetEditorToolkit", "Toolbar_TabTitle", "Toolbar") ) .Icon(FEditorStyle::GetBrush("LevelEditor.Tabs.Toolbar")) .ShouldAutosize(true) [ SAssignNew(ToolbarWidgetContent, SBorder) .Padding(0) .BorderImage(FEditorStyle::GetBrush("NoBorder")) ]; if (Toolbar.IsValid()) { ToolbarWidgetContent->SetContent(Toolbar.ToSharedRef()); } return DockTab; }
/** * Creates a new messaging debugger tab. * * @param SpawnTabArgs - The arguments for the tab to spawn. * * @return The spawned tab. */ TSharedRef<SDockTab> SpawnMessagingDebuggerTab( const FSpawnTabArgs& SpawnTabArgs ) { const TSharedRef<SDockTab> MajorTab = SNew(SDockTab) .TabRole(ETabRole::MajorTab); TSharedPtr<SWidget> TabContent; IMessageBusPtr MessageBus = IMessagingModule::Get().GetDefaultBus(); if (MessageBus.IsValid()) { TabContent = SNew(SMessagingDebugger, MajorTab, SpawnTabArgs.GetOwnerWindow(), MessageBus->GetTracer(), Style.ToSharedRef()); } else { TabContent = SNew(STextBlock) .Text(LOCTEXT("MessagingSystemUnavailableError", "Sorry, the Messaging system is not available right now")); } MajorTab->SetContent(TabContent.ToSharedRef()); return MajorTab; }