UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SResponsiveGridPanel.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5#include "Layout/Visibility.h"
7#include "SlotBase.h"
8#include "Widgets/SWidget.h"
9#include "Layout/Children.h"
10#include "Widgets/SPanel.h"
11
13class FPaintArgs;
15
21{
22 enum Type
23 {
24 Mobile = 0,
25 Tablet = 768,
28 };
29}
30
37{
39public:
40
41 class FSlot : public TBasicLayoutWidgetSlot< FSlot >
42 {
43 private:
45 struct FColumnLayout
46 {
47 float LayoutSize;
48 int32 Span;
49 int32 Offset;
50 };
51
52 public:
56 , RowParam(FMath::Max(0, Row))
58 { }
59
60
64 {
65 FColumnLayout ColumnLayout;
66 ColumnLayout.LayoutSize = LayoutSize;
67 ColumnLayout.Span = FMath::Max(0, ColumnSpan);
69
70 bool Inserted = false;
71 for (int32 Index = 0; Index < ColumnLayouts.Num(); Index++)
72 {
73 if (ColumnLayout.LayoutSize < ColumnLayouts[Index].LayoutSize)
74 {
76 Inserted = true;
77 break;
78 }
79 }
80
81 if (!Inserted)
82 {
84 }
85
86 return *this;
87 }
88
92
98
99 private:
102
104 int32 RowParam;
105
108 };
109
114 {
116 }
117
124
125 SLATE_ARGUMENT(float, ColumnGutter)
126 SLATE_ARGUMENT(float, RowGutter)
127
128 SLATE_SLOT_ARGUMENT(FSlot, Slots)
129
130
131 FArguments& FillRow(int32 RowId, float Coefficient)
132 {
134 {
136 }
137 RowFillCoefficients[RowId] = Coefficient;
138 return Me();
139 }
140
143
145
148
151
152 SLATE_API void Construct( const FArguments& InArgs, int32 TotalColumns );
153
156
158
159 SLATE_API void SetRowFill(int32 RowId, float Coefficient);
160
161public:
162
163 //~ SWidget interface
164
165 SLATE_API virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;
169
171 //~ Begin SWidget overrides.
173 //~ End SWidget overrides.
174
175private:
176
183 static SLATE_API void ComputePartialSums( TArray<float>& TurnMeIntoPartialSums );
184
186 static SLATE_API void DistributeSizeContributions( float SizeContribution, TArray<float>& DistributeOverMe, int32 StartIndex, int32 UpperBound );
187
191 SLATE_API int32 FindInsertSlotLocation(SResponsiveGridPanel::FSlot* InSlot) const;
192
194 SLATE_API void ComputeDesiredCellSizes(float AvailableWidth, TArray<float>& OutColumns, TArray<float>& OutRows, TArray<float>& OutRowToSlot) const;
195
197 SLATE_API int32 LayoutDebugPaint(const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId ) const;
198
199private:
200
202 TPanelChildren<FSlot> Slots;
203
204 int32 TotalColumns;
205 float ColumnGutter;
206 float RowGutter;
207
210
212 FVector2D TotalDesiredSizes;
213
214 mutable float PreviousWidth;
215};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
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_SLOT_ARGUMENT(SlotType, SlotName)
Definition DeclarativeSyntaxSupport.h:348
#define SLATE_SLOT_BEGIN_ARGS(SlotType, SlotParentType)
Definition DeclarativeSyntaxSupport.h:361
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_SLOT_END_ARGS()
Definition DeclarativeSyntaxSupport.h:386
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
#define SLATE_DECLARE_WIDGET_API(WidgetType, ParentType, ModuleApiDefine)
Definition SlateControlledConstruction.h:22
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ArrangedChildren.h:15
Definition ChildrenBase.h:27
Definition PaintArgs.h:23
Definition SlateRect.h:26
Definition DrawElements.h:220
Definition WidgetStyle.h:15
Definition SPanel.h:30
void Construct()
Definition SPanel.h:65
Definition SResponsiveGridPanel.h:42
FSlot::FSlotArguments & ColumnSpan(float LayoutSize, int32 ColumnSpan, int32 ColumnOffset=0)
Definition SResponsiveGridPanel.h:63
TArray< FColumnLayout > ColumnLayouts
Definition SResponsiveGridPanel.h:90
FSlot(int32 Row)
Definition SResponsiveGridPanel.h:54
Definition SResponsiveGridPanel.h:37
TArray< float > RowFillCoefficients
Definition SResponsiveGridPanel.h:142
static FSlot::FSlotArguments Slot(int32 Row)
Definition SResponsiveGridPanel.h:113
SLATE_API FScopedWidgetSlotArguments AddSlot(int32 Row)
Definition SResponsiveGridPanel.cpp:25
virtual SLATE_API FVector2D ComputeDesiredSize(float) const override
Definition SResponsiveGridPanel.cpp:324
virtual SLATE_API FChildren * GetChildren() override
Definition SResponsiveGridPanel.cpp:412
SLATE_API void ClearChildren()
Definition SResponsiveGridPanel.cpp:41
FArguments & FillRow(int32 RowId, float Coefficient)
Definition SResponsiveGridPanel.h:131
virtual SLATE_API void OnArrangeChildren(const FGeometry &AllottedGeometry, FArrangedChildren &ArrangedChildren) const override
Definition SResponsiveGridPanel.cpp:117
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
Definition SResponsiveGridPanel.cpp:77
SLATE_API bool RemoveSlot(const TSharedRef< SWidget > &SlotWidget)
Definition SResponsiveGridPanel.cpp:36
virtual SLATE_API void CacheDesiredSize(float) override
Definition SResponsiveGridPanel.cpp:296
SLATE_API void SetRowFill(int32 RowId, float Coefficient)
Definition SResponsiveGridPanel.cpp:433
SLATE_BEGIN_ARGS(SResponsiveGridPanel)
Definition SResponsiveGridPanel.h:118
Definition SWidget.h:165
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
SizeType AddZeroed()
Definition Array.h:2755
SizeType Insert(std::initializer_list< ElementType > InitList, const SizeType InIndex)
Definition Array.h:1875
Definition BasicLayoutWidgetSlot.h:599
FSlotArguments && InArgs
Definition BasicLayoutWidgetSlot.h:630
Definition Children.h:461
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
void Construct(const FChildren &SlotOwner, typename Super::FSlotArguments &&InArgs)
Definition WidgetSlotWithAttributeSupport.h:46
Definition SResponsiveGridPanel.h:21
Type
Definition SResponsiveGridPanel.h:23
@ LargeDevice
Definition SResponsiveGridPanel.h:27
@ MediumDevice
Definition SResponsiveGridPanel.h:26
@ Mobile
Definition SResponsiveGridPanel.h:24
@ Tablet
Definition SResponsiveGridPanel.h:25
U16 Index
Definition radfft.cpp:71
static SLATECORE_API const EVisibility SelfHitTestInvisible
Definition Visibility.h:26
Definition Geometry.h:40
Definition UnrealMathUtility.h:270
Definition SlotBase.h:25