UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SSplitter Class Reference

#include <SSplitter.h>

+ Inheritance diagram for SSplitter:

Classes

class  FSlot
 

Public Types

enum  ESizeRule { SizeToContent , FractionOfParent }
 
using FScopedWidgetSlotArguments = TPanelChildren< FSlot >::FScopedWidgetSlotArguments
 

Public Member Functions

 DECLARE_DELEGATE_OneParam (FOnSlotResized, float)
 
 DECLARE_DELEGATE_RetVal_OneParam (FVector2D, FOnGetMaxSlotSize, int32)
 
SLATE_API FScopedWidgetSlotArguments AddSlot (int32 AtIndex=INDEX_NONE)
 
 DECLARE_DELEGATE_OneParam (FOnHandleHovered, int32)
 
 SLATE_BEGIN_ARGS (SSplitter)
 
SLATE_API SSplitter ()
 
SLATE_API void Construct (const FArguments &InArgs)
 
SLATE_API SSplitter::FSlotSlotAt (int32 SlotIndex)
 
SLATE_API int32 RemoveSlot (const TSharedRef< SWidget > &SlotWidget)
 
SLATE_API void RemoveAt (int32 IndexToRemove)
 
SLATE_API void ClearChildren ()
 
SLATE_API int32 NumSlots () const
 
SLATE_API bool IsValidSlotIndex (int32 Index) const
 
virtual SLATE_API void OnArrangeChildren (const FGeometry &AllottedGeometry, FArrangedChildren &ArrangedChildren) const override
 
virtual SLATE_API int32 OnPaint (const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
 
virtual SLATE_API FVector2D ComputeDesiredSize (float) const override
 
virtual SLATE_API FChildrenGetChildren () override
 
virtual SLATE_API FReply OnMouseButtonDown (const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
 
virtual SLATE_API FReply OnMouseButtonUp (const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
 
virtual SLATE_API FReply OnMouseButtonDoubleClick (const FGeometry &InMyGeometry, const FPointerEvent &InMouseEvent) override
 
virtual SLATE_API FReply OnMouseMove (const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
 
virtual SLATE_API void OnMouseLeave (const FPointerEvent &MouseEvent) override
 
virtual SLATE_API FCursorReply OnCursorQuery (const FGeometry &MyGeometry, const FPointerEvent &CursorEvent) const override
 
SLATE_API void SetOrientation (EOrientation NewOrientation)
 
SLATE_API EOrientation GetOrientation () const
 
- Public Member Functions inherited from SPanel
void Construct ()
 
virtual SLATECORE_API void SetVisibility (TAttribute< EVisibility > InVisibility) override final
 
- Public Member Functions inherited from SWidget
SLATECORE_API int32 Paint (const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const
 
virtual SLATECORE_API void Tick (const FGeometry &AllottedGeometry, const double InCurrentTime, const float InDeltaTime)
 
virtual SLATECORE_API FReply OnFocusReceived (const FGeometry &MyGeometry, const FFocusEvent &InFocusEvent)
 
virtual SLATECORE_API void OnFocusLost (const FFocusEvent &InFocusEvent)
 
virtual SLATECORE_API void OnFocusChanging (const FWeakWidgetPath &PreviousFocusPath, const FWidgetPath &NewWidgetPath, const FFocusEvent &InFocusEvent)
 
virtual SLATECORE_API FReply OnKeyChar (const FGeometry &MyGeometry, const FCharacterEvent &InCharacterEvent)
 
virtual SLATECORE_API FReply OnPreviewKeyDown (const FGeometry &MyGeometry, const FKeyEvent &InKeyEvent)
 
virtual SLATECORE_API FReply OnKeyDown (const FGeometry &MyGeometry, const FKeyEvent &InKeyEvent)
 
virtual SLATECORE_API FReply OnKeyUp (const FGeometry &MyGeometry, const FKeyEvent &InKeyEvent)
 
virtual SLATECORE_API FReply OnAnalogValueChanged (const FGeometry &MyGeometry, const FAnalogInputEvent &InAnalogInputEvent)
 
virtual SLATECORE_API FReply OnPreviewMouseButtonDown (const FGeometry &MyGeometry, const FPointerEvent &MouseEvent)
 
virtual SLATECORE_API void OnMouseEnter (const FGeometry &MyGeometry, const FPointerEvent &MouseEvent)
 
virtual SLATECORE_API FReply OnMouseWheel (const FGeometry &MyGeometry, const FPointerEvent &MouseEvent)
 
virtual SLATECORE_API TOptional< TSharedRef< SWidget > > OnMapCursor (const FCursorReply &CursorReply) const
 
virtual SLATECORE_API bool OnVisualizeTooltip (const TSharedPtr< SWidget > &TooltipContent)
 
virtual SLATECORE_API TSharedPtr< FPopupLayerOnVisualizePopup (const TSharedRef< SWidget > &PopupContent)
 
virtual SLATECORE_API FReply OnDragDetected (const FGeometry &MyGeometry, const FPointerEvent &MouseEvent)
 
virtual SLATECORE_API void OnDragEnter (const FGeometry &MyGeometry, const FDragDropEvent &DragDropEvent)
 
virtual SLATECORE_API void OnDragLeave (const FDragDropEvent &DragDropEvent)
 
virtual SLATECORE_API FReply OnDragOver (const FGeometry &MyGeometry, const FDragDropEvent &DragDropEvent)
 
virtual SLATECORE_API FReply OnDrop (const FGeometry &MyGeometry, const FDragDropEvent &DragDropEvent)
 
virtual SLATECORE_API FReply OnTouchGesture (const FGeometry &MyGeometry, const FPointerEvent &GestureEvent)
 
virtual SLATECORE_API FReply OnTouchStarted (const FGeometry &MyGeometry, const FPointerEvent &InTouchEvent)
 
virtual SLATECORE_API FReply OnTouchMoved (const FGeometry &MyGeometry, const FPointerEvent &InTouchEvent)
 
virtual SLATECORE_API FReply OnTouchEnded (const FGeometry &MyGeometry, const FPointerEvent &InTouchEvent)
 
virtual SLATECORE_API FReply OnTouchForceChanged (const FGeometry &MyGeometry, const FPointerEvent &TouchEvent)
 
virtual SLATECORE_API FReply OnTouchFirstMove (const FGeometry &MyGeometry, const FPointerEvent &TouchEvent)
 
virtual SLATECORE_API FReply OnMotionDetected (const FGeometry &MyGeometry, const FMotionEvent &InMotionEvent)
 
virtual SLATECORE_API TOptional< boolOnQueryShowFocus (const EFocusCause InFocusCause) const
 
virtual SLATECORE_API FPopupMethodReply OnQueryPopupMethod () const
 
virtual SLATECORE_API TOptional< FVirtualPointerPositionTranslateMouseCoordinateForCustomHitTestChild (const SWidget &ChildWidget, const FGeometry &MyGeometry, const FVector2D ScreenSpaceMouseCoordinate, const FVector2D LastScreenSpaceMouseCoordinate) const
 
virtual SLATECORE_API void OnFinishedPointerInput ()
 
virtual SLATECORE_API void OnFinishedKeyInput ()
 
virtual SLATECORE_API FNavigationReply OnNavigation (const FGeometry &MyGeometry, const FNavigationEvent &InNavigationEvent)
 
virtual SLATECORE_API EWindowZone::Type GetWindowZoneOverride () const
 
bool NeedsPrepass () const
 
SLATECORE_API void SlatePrepass ()
 
SLATECORE_API void SlatePrepass (float InLayoutScaleMultiplier)
 
void SetCanTick (bool bInCanTick)
 
bool GetCanTick () const
 
bool HasRegisteredSlateAttribute () const
 
bool IsAttributesUpdatesEnabled () const
 
const FSlateWidgetPersistentStateGetPersistentState () const
 
const FWidgetProxyHandle GetProxyHandle () const
 
SLATECORE_API UE::Slate::FDeprecateVector2DResult GetDesiredSize () const
 
SLATECORE_API void AssignParentWidget (TSharedPtr< SWidget > InParent)
 
SLATECORE_API bool ConditionallyDetatchParentWidget (SWidget *InExpectedParent)
 
virtual bool ValidatePathToChild (SWidget *InChild)
 
bool IsParentValid () const
 
TSharedPtr< SWidgetGetParentWidget () const
 
TSharedPtr< SWidgetAdvanced_GetPaintParentWidget () const
 
SLATECORE_API FSlateRect CalculateCullingAndClippingRules (const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, bool &bClipToBounds, bool &bAlwaysClip, bool &bIntersectClipBounds) const
 
bool HasAnyUpdateFlags (EWidgetUpdateFlags FlagsToCheck) const
 
TStatId GetStatID (bool bForDeferredUse=false) const
 
virtual SLATECORE_API float GetRelativeLayoutScale (const int32 ChildIndex, float LayoutScaleMultiplier) const
 
SLATECORE_API void ArrangeChildren (const FGeometry &AllottedGeometry, FArrangedChildren &ArrangedChildren, bool bUpdateAttributes=false) const
 
virtual FChildrenGetAllChildren ()
 
virtual SLATECORE_API bool SupportsKeyboardFocus () const
 
virtual SLATECORE_API bool HasKeyboardFocus () const
 
SLATECORE_API TOptional< EFocusCauseHasUserFocus (int32 UserIndex) const
 
SLATECORE_API TOptional< EFocusCauseHasAnyUserFocus () const
 
SLATECORE_API bool HasUserFocusedDescendants (int32 UserIndex) const
 
SLATECORE_API bool HasFocusedDescendants () const
 
SLATECORE_API bool HasAnyUserFocusOrFocusedDescendants () const
 
SLATECORE_API bool HasMouseCapture () const
 
SLATECORE_API bool HasMouseCaptureByUser (int32 UserIndex, TOptional< int32 > PointerIndex=TOptional< int32 >()) const
 
virtual SLATECORE_API void OnMouseCaptureLost (const FCaptureLostEvent &CaptureLostEvent)
 
void SetEnabled (TAttribute< bool > InEnabledState)
 
bool IsEnabled () const
 
virtual bool IsInteractable () const
 
virtual SLATECORE_API TSharedPtr< IToolTipGetToolTip ()
 
virtual SLATECORE_API void OnToolTipClosing ()
 
SLATECORE_API void EnableToolTipForceField (const bool bEnableForceField)
 
bool HasToolTipForceField () const
 
bool IsHovered () const
 
SLATECORE_API bool IsDirectlyHovered () const
 
EVisibility GetVisibility () const
 
bool IsVolatile () const
 
bool IsVolatileIndirectly () const
 
void ForceVolatile (bool bForce)
 
bool ShouldInvalidatePrepassDueToVolatility ()
 
SLATECORE_API void Invalidate (EInvalidateWidgetReason InvalidateReason)
 
void CacheVolatility ()
 
void MarkPrepassAsDirty ()
 
float GetRenderOpacity () const
 
void SetRenderOpacity (float InRenderOpacity)
 
void SetTag (FName InTag)
 
const TOptional< FSlateRenderTransform > & GetRenderTransform () const
 
TOptional< FSlateRenderTransformGetRenderTransformWithRespectToFlowDirection () const
 
UE::Slate::FDeprecateVector2DResult GetRenderTransformPivotWithRespectToFlowDirection () const
 
void SetRenderTransform (TAttribute< TOptional< FSlateRenderTransform > > InTransform)
 
UE::Slate::FDeprecateVector2DResult GetRenderTransformPivot () const
 
void SetRenderTransformPivot (TAttribute< FVector2D > InTransformPivot)
 
SLATECORE_API void SetClipping (EWidgetClipping InClipping)
 
EWidgetClipping GetClipping () const
 
SLATECORE_API void SetPixelSnapping (EWidgetPixelSnapping InPixelSnappingMethod)
 
EWidgetPixelSnapping GetPixelSnapping () const
 
void SetCullingBoundsExtension (const FMargin &InCullingBoundsExtension)
 
FMargin GetCullingBoundsExtension () const
 
void SetFlowDirectionPreference (EFlowDirectionPreference InFlowDirectionPreference)
 
EFlowDirectionPreference GetFlowDirectionPreference () const
 
SLATECORE_API void SetToolTipText (const TAttribute< FText > &ToolTipText)
 
SLATECORE_API void SetToolTipText (const FText &InToolTipText)
 
SLATECORE_API void SetToolTip (const TAttribute< TSharedPtr< IToolTip > > &InToolTip)
 
SLATECORE_API void SetCursor (const TAttribute< TOptional< EMouseCursor::Type > > &InCursor)
 
template<typename MetaDataType >
TSharedPtr< MetaDataType > GetMetaData () const
 
template<typename MetaDataType >
TArray< TSharedRef< MetaDataType > > GetAllMetaData () const
 
template<typename MetaDataType >
void AddMetadata (const TSharedRef< MetaDataType > &AddMe)
 
template<typename MetaDataType >
int32 RemoveMetaData (const TSharedRef< MetaDataType > &RemoveMe)
 
SLATECORE_API void SetOnMouseButtonDown (FPointerEventHandler EventHandler)
 
SLATECORE_API void SetOnMouseButtonUp (FPointerEventHandler EventHandler)
 
SLATECORE_API void SetOnMouseMove (FPointerEventHandler EventHandler)
 
SLATECORE_API void SetOnMouseDoubleClick (FPointerEventHandler EventHandler)
 
SLATECORE_API void SetOnMouseEnter (FNoReplyPointerEventHandler EventHandler)
 
SLATECORE_API void SetOnMouseLeave (FSimpleNoReplyPointerEventHandler EventHandler)
 
virtual SLATECORE_API FString ToString () const
 
SLATECORE_API FString GetTypeAsString () const
 
SLATECORE_API FName GetType () const
 
virtual SLATECORE_API FString GetReadableLocation () const
 
SLATECORE_API FName GetCreatedInLocation () const
 
virtual SLATECORE_API FName GetTag () const
 
virtual SLATECORE_API FSlateColor GetForegroundColor () const
 
virtual SLATECORE_API FSlateColor GetDisabledForegroundColor () const
 
SLATECORE_API const FGeometryGetCachedGeometry () const
 
SLATECORE_API const FGeometryGetTickSpaceGeometry () const
 
SLATECORE_API const FGeometryGetPaintSpaceGeometry () const
 
const TOptional< FSlateClippingState > & GetCurrentClippingState () const
 
virtual bool Advanced_IsWindow () const
 
virtual bool Advanced_IsInvalidationRoot () const
 
virtual const FSlateInvalidationRootAdvanced_AsInvalidationRoot () const
 
SLATECORE_API TSharedRef< FActiveTimerHandleRegisterActiveTimer (float TickPeriod, FWidgetActiveTimerDelegate TickFunction)
 
SLATECORE_API void UnRegisterActiveTimer (const TSharedRef< FActiveTimerHandle > &ActiveTimerHandle)
 
bool HasActiveTimers () const
 
- Public Member Functions inherited from FSlateControlledConstruction
 FSlateControlledConstruction ()=default
 
virtual ~FSlateControlledConstruction ()=default
 
virtual const FSlateWidgetClassDataGetWidgetClass () const =0
 
void operator delete (void *mem)
 
- Public Member Functions inherited from TSharedFromThis< SWidget >
TSharedRef< SWidget, Mode > AsShared ()
 
TSharedRef< SWidget const, Mode > AsShared () const
 
TSharedRef< SubobjectType, Mode > AsSharedSubobject (SubobjectType *SubobjectPtr) const
 
TWeakPtr< SWidget, Mode > AsWeak ()
 
TWeakPtr< SWidget const, Mode > AsWeak () const
 
TWeakPtr< SubobjectType, Mode > AsWeakSubobject (SubobjectType *SubobjectPtr) const
 
void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const
 
void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const
 
UE_FORCEINLINE_HINT bool DoesSharedInstanceExist () const
 

Static Public Member Functions

static SLATE_API FSlot::FSlotArguments Slot ()
 
- Static Public Member Functions inherited from FSlateControlledConstruction
static const FSlateWidgetClassDataStaticWidgetClass ()
 

Protected Member Functions

SLATE_API void HandleResizingByMousePosition (EOrientation Orientation, const float PhysicalSplitterHandleSize, const ESplitterResizeMode::Type ResizeMode, int32 DraggedHandle, const FVector2D &LocalMousePos, TPanelChildren< FSlot > &Children, const TArray< FLayoutGeometry > &ChildGeometries)
 
SLATE_API void HandleResizingDelta (EOrientation Orientation, const float PhysicalSplitterHandleSize, const ESplitterResizeMode::Type ResizeMode, int32 DraggedHandle, float Delta, TPanelChildren< FSlot > &Children, const TArray< FLayoutGeometry > &ChildGeometries)
 
SLATE_API void HandleResizingBySize (EOrientation Orientation, const float PhysicalSplitterHandleSize, const ESplitterResizeMode::Type ResizeMode, int32 DraggedHandle, const FVector2D &DesiredSize, TPanelChildren< FSlot > &Children, const TArray< FLayoutGeometry > &ChildGeometries)
 
SLATE_API float ClampChild (const FSlot &ChildSlot, float ProposedSize) const
 
- Protected Member Functions inherited from SPanel
SLATECORE_API int32 PaintArrangedChildren (const FPaintArgs &Args, const FArrangedChildren &ArrangedChildren, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const
 
SLATECORE_API SPanel ()
 
virtual SLATECORE_API ~SPanel ()
 
- Protected Member Functions inherited from SWidget
void SetVolatilePrepass (bool bVolatile)
 
virtual bool CustomPrepass (float LayoutScaleMultiplier)
 
virtual SLATECORE_API void CacheDesiredSize (float InLayoutScaleMultiplier)
 
void SetHover (TAttribute< bool > InHovered)
 
bool IsChildWidgetCulled (const FSlateRect &, const FArrangedWidget &) const
 
SLATECORE_API void InvalidateChildRemovedFromTree (SWidget &Child)
 
bool Advanced_InvalidateVolatility ()
 
EFlowDirection ComputeFlowDirection () const
 
SLATECORE_API void SetDebugInfo (const ANSICHAR *InType, const ANSICHAR *InFile, int32 OnLine, size_t InAllocSize)
 
virtual SLATECORE_API TOptional< EMouseCursor::TypeGetCursor () const
 
SLATECORE_API SWidget ()
 
SLATECORE_API void SWidgetConstruct (const FSlateBaseNamedArgs &Args)
 
bool IsConstructed () const
 
SLATECORE_API bool FindChildGeometries (const FGeometry &MyGeometry, const TSet< TSharedRef< SWidget > > &WidgetsToFind, TMap< TSharedRef< SWidget >, FArrangedWidget > &OutResult) const
 
SLATECORE_API void FindChildGeometries_Helper (const FGeometry &MyGeometry, const TSet< TSharedRef< SWidget > > &WidgetsToFind, TMap< TSharedRef< SWidget >, FArrangedWidget > &OutResult) const
 
SLATECORE_API FGeometry FindChildGeometry (const FGeometry &MyGeometry, TSharedRef< SWidget > WidgetToFind) const
 
bool ShouldBeEnabled (bool InParentEnabled) const
 
virtual SLATECORE_API const FSlateBrushGetFocusBrush () const
 
virtual bool ComputeVolatility () const
 
virtual SLATECORE_API void OnClippingChanged ()
 
float GetPrepassLayoutScaleMultiplier () const
 
SLATECORE_API void Prepass_ChildLoop (float InLayoutScaleMultiplier, FChildren *MyChildren)
 
template<typename TargetValueType , typename SourceValueType >
bool SetAttribute (TAttribute< TargetValueType > &TargetValue, const TAttribute< SourceValueType > &SourceValue, EInvalidateWidgetReason BaseInvalidationReason)
 
TSlateAttributeRef< boolGetEnabledStateAttribute () const
 
TSlateAttributeRef< boolGetHoveredAttribute () const
 
TSlateAttributeRef< EVisibilityGetVisibilityAttribute () const
 
TSlateAttributeRef< TOptional< FSlateRenderTransform > > GetRenderTransformAttribute () const
 
TSlateAttributeRef< FVector2DGetRenderTransformPivotAttribute () const
 
virtual SLATECORE_API ~SWidget ()
 
- Protected Member Functions inherited from TSharedFromThis< SWidget >
 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
UE_FORCEINLINE_HINT TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 

Static Protected Member Functions

static SLATE_API int32 FindResizeableSlotBeforeHandle (int32 DraggedHandle, const TPanelChildren< FSlot > &Children)
 
static SLATE_API int32 FindResizeableSlotAfterHandle (int32 DraggedHandle, const TPanelChildren< FSlot > &Children)
 
static SLATE_API void FindAllResizeableSlotsAfterHandle (int32 DraggedHandle, const TPanelChildren< FSlot > &Children, TArray< int32, FConcurrentLinearArrayAllocator > &OutSlotIndicies)
 
template<EOrientation SplitterOrientation>
static int32 GetHandleBeingResizedFromMousePosition (float PhysicalSplitterHandleSize, float HitDetectionSplitterHandleSize, FVector2D LocalMousePos, const TArray< FLayoutGeometry > &ChildGeometries)
 
- Static Protected Member Functions inherited from SWidget
static SLATECORE_API int32 FindChildUnderMouse (const FArrangedChildren &Children, const FPointerEvent &MouseEvent)
 
static SLATECORE_API int32 FindChildUnderPosition (const FArrangedChildren &Children, const UE::Slate::FDeprecateVector2DParameter &ArrangedSpacePosition)
 
static TAttribute< EVisibilityAccessWidgetVisibilityAttribute (const TSharedRef< SWidget > &Widget)
 
- Static Protected Member Functions inherited from TSharedFromThis< SWidget >
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
static UE_FORCEINLINE_HINT TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 

Protected Attributes

TPanelChildren< FSlotChildren
 
int32 HoveredHandleIndex
 
TSlateAttribute< int32, EInvalidateWidgetReason::PaintHighlightedHandleIndex
 
bool bIsResizing
 
EOrientation Orientation
 
ESplitterResizeMode::Type ResizeMode
 
FSimpleDelegate OnSplitterFinishedResizing
 
FOnGetMaxSlotSize OnGetMaxSlotSize
 
FOnHandleHovered OnHandleHovered
 
float MinSplitterChildLength
 
float PhysicalSplitterHandleSize
 
float HitDetectionSplitterHandleSize
 
const FSplitterStyleStyle
 
- Protected Attributes inherited from SWidget
uint8 bCanSupportFocus: 1
 
uint8 bCanHaveChildren: 1
 
uint8 bClippingProxy: 1
 
uint8 bHasCustomPrepass: 1
 
uint8 bHasRelativeLayoutScale: 1
 
uint8 bVolatilityAlwaysInvalidatesPrepass: 1
 
EWidgetClipping Clipping
 
EWidgetPixelSnapping PixelSnappingMethod
 
FMargin CullingBoundsExtension
 
float RenderOpacity
 

Detailed Description

SSplitter divides its allotted area into N segments, where N is the number of children it has. It allows the users to resize the children along the splitters axis: that is, horizontally or vertically.

Member Typedef Documentation

◆ FScopedWidgetSlotArguments

using SSplitter::FScopedWidgetSlotArguments = TPanelChildren<FSlot>::FScopedWidgetSlotArguments

Member Enumeration Documentation

◆ ESizeRule

How should a child's size be determined

Enumerator
SizeToContent 

Get the DesiredSize() of the content

FractionOfParent 

Use a fraction of the parent's size

Constructor & Destructor Documentation

◆ SSplitter()

SSplitter::SSplitter ( )

Style used to draw this splitter

Member Function Documentation

◆ AddSlot()

SSplitter::FScopedWidgetSlotArguments SSplitter::AddSlot ( int32  AtIndex = INDEX_NONE)

Add a slot to the splitter at the specified index Sample usage: SomeSplitter->AddSlot() [ SNew(SSomeWidget) ];

Returns
the new slot.

◆ ClampChild()

float SSplitter::ClampChild ( const FSlot ChildSlot,
float  ProposedSize 
) const
protected
Parameters
ProposedSizeA size that a child would like to be
Returns
A size that is clamped against the minimum size allowed for children.

◆ ClearChildren()

void SSplitter::ClearChildren ( )

Removes all children from the splitter.

◆ ComputeDesiredSize()

FVector2D SSplitter::ComputeDesiredSize ( float  ) const
overridevirtual

A Panel's desired size in the space required to arrange of its children on the screen while respecting all of the children's desired sizes and any layout-related options specified by the user. See StackPanel for an example.

Implements SPanel.

◆ Construct()

void SSplitter::Construct ( const FArguments &  InArgs)

Construct this widget

Parameters
InArgsThe declaration data for this widget

◆ DECLARE_DELEGATE_OneParam() [1/2]

SSplitter::DECLARE_DELEGATE_OneParam ( FOnHandleHovered  ,
int32   
)

◆ DECLARE_DELEGATE_OneParam() [2/2]

SSplitter::DECLARE_DELEGATE_OneParam ( FOnSlotResized  ,
float   
)

◆ DECLARE_DELEGATE_RetVal_OneParam()

SSplitter::DECLARE_DELEGATE_RetVal_OneParam ( FVector2D  ,
FOnGetMaxSlotSize  ,
int32   
)

◆ FindAllResizeableSlotsAfterHandle()

void SSplitter::FindAllResizeableSlotsAfterHandle ( int32  DraggedHandle,
const TPanelChildren< FSlot > &  Children,
TArray< int32, FConcurrentLinearArrayAllocator > &  OutSlotIndicies 
)
staticprotected

◆ FindResizeableSlotAfterHandle()

int32 SSplitter::FindResizeableSlotAfterHandle ( int32  DraggedHandle,
const TPanelChildren< FSlot > &  Children 
)
staticprotected

Given the index of the dragged handle and the children, find a child below/right_of the dragged handle that can be resized

Returns
Children.Num() if no such child can be found.

◆ FindResizeableSlotBeforeHandle()

int32 SSplitter::FindResizeableSlotBeforeHandle ( int32  DraggedHandle,
const TPanelChildren< FSlot > &  Children 
)
staticprotected

Given the index of the dragged handle and the children, find a child above/left_of of the dragged handle that can be resized.

Returns
INDEX_NONE if no such child can be found.

◆ GetChildren()

FChildren * SSplitter::GetChildren ( )
overridevirtual

All widgets must provide a way to access their children in a layout-agnostic way. Panels store their children in Slots, which creates a dilemma. Most panels can store their children in a TPanelChildren<Slot>, where the Slot class provides layout information about the child it stores. In that case GetChildren should simply return the TPanelChildren<Slot>. See StackPanel for an example.

Implements SPanel.

◆ GetHandleBeingResizedFromMousePosition()

template<EOrientation SplitterOrientation>
int32 SSplitter::GetHandleBeingResizedFromMousePosition ( float  PhysicalSplitterHandleSize,
float  HitDetectionSplitterHandleSize,
FVector2D  LocalMousePos,
const TArray< FLayoutGeometry > &  ChildGeometries 
)
staticprotected

Given a mouse position within the splitter, figure out which resize handle we are hovering (if any).

Parameters
LocalMousePosThe mouse position within this splitter.
ChildGeometrisThe arranged children and their geometries; we need to test the mouse against them.
Returns
The index of the handle being hovered, or INDEX_NONE if we are not hovering a handle.

◆ GetOrientation()

EOrientation SSplitter::GetOrientation ( ) const
Returns
the current orientation of the splitter.

◆ HandleResizingByMousePosition()

void SSplitter::HandleResizingByMousePosition ( EOrientation  Orientation,
const float  PhysicalSplitterHandleSize,
const ESplitterResizeMode::Type  ResizeMode,
int32  DraggedHandle,
const FVector2D LocalMousePos,
TPanelChildren< FSlot > &  Children,
const TArray< FLayoutGeometry > &  ChildGeometries 
)
protected

Resizes the children based on user input. The template parameter Orientation corresponds to the splitter being horizontal or vertical.

Parameters
DraggedHandleThe index of the handle that the user is dragging.
LocalMousePosThe position of the mouse in this widgets local space.
ChildrenA reference to this splitter's children array; we will modify the children's layout values.
ChildGeometriesThe arranged children; we need their sizes and positions so that we can perform a resizing.

◆ HandleResizingBySize()

void SSplitter::HandleResizingBySize ( EOrientation  Orientation,
const float  PhysicalSplitterHandleSize,
const ESplitterResizeMode::Type  ResizeMode,
int32  DraggedHandle,
const FVector2D DesiredSize,
TPanelChildren< FSlot > &  Children,
const TArray< FLayoutGeometry > &  ChildGeometries 
)
protected

◆ HandleResizingDelta()

void SSplitter::HandleResizingDelta ( EOrientation  Orientation,
const float  PhysicalSplitterHandleSize,
const ESplitterResizeMode::Type  ResizeMode,
int32  DraggedHandle,
float  Delta,
TPanelChildren< FSlot > &  Children,
const TArray< FLayoutGeometry > &  ChildGeometries 
)
protected

◆ IsValidSlotIndex()

bool SSplitter::IsValidSlotIndex ( int32  Index) const
Returns
if it's a valid index slot index.

◆ NumSlots()

int32 SSplitter::NumSlots ( ) const
Returns
the number of slots.

◆ OnArrangeChildren()

void SSplitter::OnArrangeChildren ( const FGeometry AllottedGeometry,
FArrangedChildren ArrangedChildren 
) const
overridevirtual

Panels arrange their children in a space described by the AllottedGeometry parameter. The results of the arrangement should be returned by appending a FArrangedWidget pair for every child widget. See StackPanel for an example

Implements SPanel.

◆ OnCursorQuery()

FCursorReply SSplitter::OnCursorQuery ( const FGeometry MyGeometry,
const FPointerEvent CursorEvent 
) const
overridevirtual

The system asks each widget under the mouse to provide a cursor. This event is bubbled.

Returns
FCursorReply::Unhandled() if the event is not handled; return FCursorReply::Cursor() otherwise.

Reimplemented from SWidget.

◆ OnMouseButtonDoubleClick()

FReply SSplitter::OnMouseButtonDoubleClick ( const FGeometry InMyGeometry,
const FPointerEvent InMouseEvent 
)
overridevirtual

Called when a mouse button is double clicked. Override this in derived classes.

Parameters
InMyGeometryWidget geometry
InMouseEventMouse button event
Returns
Returns whether the event was handled, along with other possible actions

Reimplemented from SWidget.

◆ OnMouseButtonDown()

FReply SSplitter::OnMouseButtonDown ( const FGeometry MyGeometry,
const FPointerEvent MouseEvent 
)
overridevirtual

The system calls this method to notify the widget that a mouse button was pressed within it. This event is bubbled.

Parameters
MyGeometryThe Geometry of the widget receiving the event
MouseEventInformation about the input event
Returns
Whether the event was handled along with possible requests for the system to take action.

Reimplemented from SWidget.

◆ OnMouseButtonUp()

FReply SSplitter::OnMouseButtonUp ( const FGeometry MyGeometry,
const FPointerEvent MouseEvent 
)
overridevirtual

The system calls this method to notify the widget that a mouse button was release within it. This event is bubbled.

Parameters
MyGeometryThe Geometry of the widget receiving the event
MouseEventInformation about the input event
Returns
Whether the event was handled along with possible requests for the system to take action.

Reimplemented from SWidget.

◆ OnMouseLeave()

void SSplitter::OnMouseLeave ( const FPointerEvent MouseEvent)
overridevirtual

The system will use this event to notify a widget that the cursor has left it. This event is uses a custom bubble strategy.

Parameters
MouseEventInformation about the input event

Reimplemented from SWidget.

◆ OnMouseMove()

FReply SSplitter::OnMouseMove ( const FGeometry MyGeometry,
const FPointerEvent MouseEvent 
)
overridevirtual

The system calls this method to notify the widget that a mouse moved within it. This event is bubbled.

Parameters
MyGeometryThe Geometry of the widget receiving the event
MouseEventInformation about the input event
Returns
Whether the event was handled along with possible requests for the system to take action.

Reimplemented from SWidget.

◆ OnPaint()

int32 SSplitter::OnPaint ( const FPaintArgs Args,
const FGeometry AllottedGeometry,
const FSlateRect MyCullingRect,
FSlateWindowElementList OutDrawElements,
int32  LayerId,
const FWidgetStyle InWidgetStyle,
bool  bParentEnabled 
) const
overridevirtual

The widget should respond by populating the OutDrawElements array with FDrawElements that represent it and any of its children. Called by the non-virtual OnPaint to enforce pre/post conditions during OnPaint.

Parameters
ArgsAll the arguments necessary to paint this widget (
AllottedGeometryThe FGeometry that describes an area in which the widget should appear.
MyCullingRectThe rectangle representing the bounds currently being used to completely cull widgets. Unless IsChildWidgetCulled(...) returns true, you should paint the widget.
OutDrawElementsA list of FDrawElements to populate with the output.
LayerIdThe Layer onto which this widget should be rendered.
InColorAndOpacityColor and Opacity to be applied to all the descendants of the widget being painted
bParentEnabledTrue if the parent of this widget is enabled.
Returns
The maximum layer ID attained by this widget or any of its children.

Reimplemented from SPanel.

◆ RemoveAt()

void SSplitter::RemoveAt ( int32  IndexToRemove)

Remove the child at IndexToRemove

Parameters
IndexToRemoveRemove the slot and child at this index.

◆ RemoveSlot()

int32 SSplitter::RemoveSlot ( const TSharedRef< SWidget > &  SlotWidget)

Removes a slot from this splitter panel which contains the specified SWidget

Parameters
SlotWidgetThe widget to match when searching through the slots
Returns
The index in the children array where the slot was removed and -1 if no slot was found matching the widget

◆ SetOrientation()

void SSplitter::SetOrientation ( EOrientation  NewOrientation)

Change the orientation of the splitter

Parameters
NewOrientationShould the splitter be horizontal or vertical

◆ SLATE_BEGIN_ARGS()

SSplitter::SLATE_BEGIN_ARGS ( SSplitter  )
inline

◆ Slot()

SSplitter::FSlot::FSlotArguments SSplitter::Slot ( )
static
Returns
Add a new FSlot()

◆ SlotAt()

SSplitter::FSlot & SSplitter::SlotAt ( int32  SlotIndex)

Get the slot at the specified index

Parameters
SlotIndexReplace the child at this index.
Returns
Slot at the index specified by SlotIndex

Member Data Documentation

◆ bIsResizing

bool SSplitter::bIsResizing
protected

◆ Children

TPanelChildren< FSlot > SSplitter::Children
protected

◆ HighlightedHandleIndex

TSlateAttribute<int32, EInvalidateWidgetReason::Paint> SSplitter::HighlightedHandleIndex
protected

◆ HitDetectionSplitterHandleSize

float SSplitter::HitDetectionSplitterHandleSize
protected

◆ HoveredHandleIndex

int32 SSplitter::HoveredHandleIndex
protected

◆ MinSplitterChildLength

float SSplitter::MinSplitterChildLength
protected

The user is not allowed to make any of the splitter's children smaller than this.

◆ OnGetMaxSlotSize

FOnGetMaxSlotSize SSplitter::OnGetMaxSlotSize
protected

◆ OnHandleHovered

FOnHandleHovered SSplitter::OnHandleHovered
protected

◆ OnSplitterFinishedResizing

FSimpleDelegate SSplitter::OnSplitterFinishedResizing
protected

◆ Orientation

EOrientation SSplitter::Orientation
protected

◆ PhysicalSplitterHandleSize

float SSplitter::PhysicalSplitterHandleSize
protected

The thickness of the grip area that the user uses to resize a splitter

◆ ResizeMode

ESplitterResizeMode::Type SSplitter::ResizeMode
protected

◆ Style

const FSplitterStyle* SSplitter::Style
protected

The documentation for this class was generated from the following files: