// Copyright Epic Games, Inc. All Rights Reserved. #include "SLoadingProfilerToolbar.h" #include "EditorStyleSet.h" #include "Framework/Application/SlateApplication.h" #include "Framework/Docking/TabManager.h" #include "Framework/MultiBox/MultiBoxDefs.h" #include "Framework/MultiBox/MultiBoxBuilder.h" #include "Widgets/Docking/SDockTab.h" #include "Widgets/Input/SCheckBox.h" #include "Widgets/Layout/SBorder.h" #include "Widgets/SBoxPanel.h" #include "Widgets/SToolTip.h" // Insights #include "Insights/InsightsCommands.h" #include "Insights/InsightsManager.h" #include "Insights/LoadingProfiler/LoadingProfilerCommands.h" #include "Insights/LoadingProfiler/LoadingProfilerManager.h" //////////////////////////////////////////////////////////////////////////////////////////////////// #define LOCTEXT_NAMESPACE "SLoadingProfilerToolbar" //////////////////////////////////////////////////////////////////////////////////////////////////// SLoadingProfilerToolbar::SLoadingProfilerToolbar() { } //////////////////////////////////////////////////////////////////////////////////////////////////// SLoadingProfilerToolbar::~SLoadingProfilerToolbar() { } //////////////////////////////////////////////////////////////////////////////////////////////////// void SLoadingProfilerToolbar::Construct(const FArguments& InArgs) { struct Local { static void FillViewToolbar(FToolBarBuilder& ToolbarBuilder) { ToolbarBuilder.BeginSection("View"); { ToolbarBuilder.AddToolBarButton(FLoadingProfilerCommands::Get().ToggleTimingViewVisibility); ToolbarBuilder.AddToolBarButton(FLoadingProfilerCommands::Get().ToggleEventAggregationTreeViewVisibility); ToolbarBuilder.AddToolBarButton(FLoadingProfilerCommands::Get().ToggleObjectTypeAggregationTreeViewVisibility); ToolbarBuilder.AddToolBarButton(FLoadingProfilerCommands::Get().TogglePackageDetailsTreeViewVisibility); ToolbarBuilder.AddToolBarButton(FLoadingProfilerCommands::Get().ToggleExportDetailsTreeViewVisibility); ToolbarBuilder.AddToolBarButton(FLoadingProfilerCommands::Get().ToggleRequestsTreeViewVisibility); } ToolbarBuilder.EndSection(); } static void FillRightSideToolbar(FToolBarBuilder& ToolbarBuilder) { ToolbarBuilder.BeginSection("Debug"); { ToolbarBuilder.AddToolBarButton(FInsightsCommands::Get().ToggleDebugInfo); } ToolbarBuilder.EndSection(); } }; TSharedPtr CommandList = FInsightsManager::Get()->GetCommandList(); FToolBarBuilder ToolbarBuilder(CommandList.ToSharedRef(), FMultiBoxCustomization::None); Local::FillViewToolbar(ToolbarBuilder); FToolBarBuilder RightSideToolbarBuilder(CommandList.ToSharedRef(), FMultiBoxCustomization::None); Local::FillRightSideToolbar(RightSideToolbarBuilder); // Create the tool bar! ChildSlot [SNew(SHorizontalBox) + SHorizontalBox::Slot() .HAlign(HAlign_Left) .VAlign(VAlign_Center) .FillWidth(1.0) .Padding(0.0f) [SNew(SBorder) .Padding(0) .BorderImage(FEditorStyle::GetBrush("NoBorder")) .IsEnabled(FSlateApplication::Get().GetNormalExecutionAttribute()) [ToolbarBuilder.MakeWidget()]] + SHorizontalBox::Slot() .HAlign(HAlign_Right) .VAlign(VAlign_Center) .AutoWidth() .Padding(0.0f) [SNew(SBorder) .Padding(0) .BorderImage(FEditorStyle::GetBrush("NoBorder")) .IsEnabled(FSlateApplication::Get().GetNormalExecutionAttribute()) [RightSideToolbarBuilder.MakeWidget()]]]; } //////////////////////////////////////////////////////////////////////////////////////////////////// #undef LOCTEXT_NAMESPACE