// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Widgets/SWidget.h" #include "EditorViewportLayout.h" #include "Widgets/Layout/SSplitter.h" #include "AssetEditorViewportLayout.h" class FEditorViewportLayoutFourPanes: public FAssetEditorViewportLayout { protected: /** * Creates the viewports and splitter for the four-pane layout */ virtual TSharedRef MakeViewportLayout(TFunction(void)>& Func, const FString& LayoutString) override; virtual TSharedRef MakeFourPanelWidget( TMap>& ViewportWidgets, TSharedRef Viewport0, TSharedRef Viewport1, TSharedRef Viewport2, TSharedRef Viewport3, float PrimarySplitterPercentage, float SecondarySplitterPercentage0, float SecondarySplitterPercentage1) = 0; protected: /** The splitter widgets */ TSharedPtr PrimarySplitterWidget; TSharedPtr SecondarySplitterWidget; }; // FEditorlViewportLayoutFourPanesLeft ///////////////////////////// class FEditorViewportLayoutFourPanesLeft: public FEditorViewportLayoutFourPanes { public: virtual const FName& GetLayoutTypeName() const override { return EditorViewportConfigurationNames::FourPanesLeft; } virtual TSharedRef MakeFourPanelWidget( TMap>& ViewportWidgets, TSharedRef Viewport0, TSharedRef Viewport1, TSharedRef Viewport2, TSharedRef Viewport3, float PrimarySplitterPercentage, float SecondarySplitterPercentage0, float SecondarySplitterPercentage1) override; }; // FEditorViewportLayoutFourPanesRight ///////////////////////////// class FEditorViewportLayoutFourPanesRight: public FEditorViewportLayoutFourPanes { public: virtual const FName& GetLayoutTypeName() const override { return EditorViewportConfigurationNames::FourPanesRight; } virtual TSharedRef MakeFourPanelWidget( TMap>& ViewportWidgets, TSharedRef Viewport0, TSharedRef Viewport1, TSharedRef Viewport2, TSharedRef Viewport3, float PrimarySplitterPercentage, float SecondarySplitterPercentage0, float SecondarySplitterPercentage1) override; }; // FEditorViewportLayoutFourPanesTop ///////////////////////////// class FEditorViewportLayoutFourPanesTop: public FEditorViewportLayoutFourPanes { public: virtual const FName& GetLayoutTypeName() const override { return EditorViewportConfigurationNames::FourPanesTop; } virtual TSharedRef MakeFourPanelWidget( TMap>& ViewportWidgets, TSharedRef Viewport0, TSharedRef Viewport1, TSharedRef Viewport2, TSharedRef Viewport3, float PrimarySplitterPercentage, float SecondarySplitterPercentage0, float SecondarySplitterPercentage1) override; }; // FEditorViewportLayoutFourPanesBottom ///////////////////////////// class FEditorViewportLayoutFourPanesBottom: public FEditorViewportLayoutFourPanes { public: virtual const FName& GetLayoutTypeName() const override { return EditorViewportConfigurationNames::FourPanesBottom; } virtual TSharedRef MakeFourPanelWidget( TMap>& ViewportWidgets, TSharedRef Viewport0, TSharedRef Viewport1, TSharedRef Viewport2, TSharedRef Viewport3, float PrimarySplitterPercentage, float SecondarySplitterPercentage0, float SecondarySplitterPercentage1) override; };