UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SClippingHorizontalBox.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
8#include "Styling/CoreStyle.h"
10#include "Widgets/SBoxPanel.h"
11
13class FPaintArgs;
15class SComboButton;
16
18
19namespace UE::Slate
20{
21
23{
26 double X = 0.0;
27 double Width = 0.0;
28 bool bIsStretchable = false;
29 bool bAppearsInOverflow = false;
30 bool bWasClipped = false;
31};
32
34 float InAllottedWidth,
40);
41
42}; // namespace UE::Slate
43
46{
47public:
54 SLATE_ARGUMENT(FOnGetContent, OnWrapButtonClicked)
55 SLATE_ARGUMENT(const ISlateStyle*, StyleSet)
56 SLATE_ARGUMENT(FName, StyleName)
57 SLATE_ARGUMENT(bool, IsFocusable)
58 SLATE_ARGUMENT(FOnGetWidgetResizeParams, OnGetWidgetResizeParams)
60
61
62 virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;
64
66 virtual void OnArrangeChildren( const FGeometry& AllottedGeometry, FArrangedChildren& ArrangedChildren ) const override;
67
69 void Construct( const FArguments& InArgs );
70
72 void AddWrapButton();
73
75 {
76 return ClippedWidgets;
77 }
78
79private:
80 void OnWrapButtonOpenChanged(bool bIsOpen);
81 EActiveTimerReturnType UpdateWrapButtonStatus(double CurrentTime, float DeltaTime);
82
84 TSharedPtr<SComboButton> WrapButton;
85
87 bool bAllowWrapButton = true;
88
90 FOnGetContent OnWrapButtonClicked;
91
92 TSharedPtr<FActiveTimerHandle> WrapButtonOpenTimer;
93
95 bool bIsFocusable = true;
96
97 float WrapButtonWidth = 0.0f; // Fixed width, initialized after button creation
98 int32 WrapButtonIndex = -1; // 0 is left-most index, -1 is right-most index (Python style).
99
101 const ISlateStyle* StyleSet = nullptr;
102 FName StyleName;
103
104 FOnGetWidgetResizeParams OnGetWidgetResizeParams;
105
106 mutable TArray<TWeakPtr<SWidget>> ClippedWidgets;
107};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
#define DECLARE_DELEGATE_RetVal_OneParam(ReturnValueType, DelegateName, Param1Type)
Definition DelegateCombinations.h:54
return true
Definition ExternalRpcRegistry.cpp:601
EActiveTimerReturnType
Definition SlateEnums.h:329
Definition ArrangedChildren.h:15
Definition CoreStyle.h:15
Definition NameTypes.h:617
Definition PaintArgs.h:23
Definition SlateRect.h:26
Definition DrawElements.h:220
Definition WidgetStyle.h:15
Definition ISlateStyle.h:18
Definition SClippingHorizontalBox.h:46
SLATE_BEGIN_ARGS(SClippingHorizontalBox)
Definition SClippingHorizontalBox.h:48
virtual int32 OnPaint(const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
Definition SClippingHorizontalBox.cpp:397
virtual void OnArrangeChildren(const FGeometry &AllottedGeometry, FArrangedChildren &ArrangedChildren) const override
Definition SClippingHorizontalBox.cpp:247
TArray< TWeakPtr< SWidget > > GetClippedWidgets() const
Definition SClippingHorizontalBox.h:74
void AddWrapButton()
Definition SClippingHorizontalBox.cpp:426
virtual FVector2D ComputeDesiredSize(float) const override
Definition SClippingHorizontalBox.cpp:402
Definition SComboButton.h:25
Definition SBoxPanel.h:171
void Construct()
Definition SPanel.h:65
Definition SWidget.h:165
Definition Array.h:670
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition DockingUtilsPrivate.h:8
void PrioritizedResize(float InAllottedWidth, float InWrapButtonWidth, const FMargin &InWrapButtonPadding, int32 InWrapButtonIndex, TArray< FClippingInfo > &InOutClippingInfos, TOptional< float > &OutWrapButtonX)
Definition SClippingHorizontalBox.cpp:16
Definition Geometry.h:40
Definition Margin.h:17
Definition MultiBoxDefs.h:267
Definition Optional.h:131
Definition SClippingHorizontalBox.h:23
double X
Definition SClippingHorizontalBox.h:26
bool bIsStretchable
Definition SClippingHorizontalBox.h:28
bool bAppearsInOverflow
Definition SClippingHorizontalBox.h:29
double Width
Definition SClippingHorizontalBox.h:27
bool bWasClipped
Definition SClippingHorizontalBox.h:30
FMenuEntryResizeParams ResizeParams
Definition SClippingHorizontalBox.h:25
TSharedPtr< SWidget > Widget
Definition SClippingHorizontalBox.h:24