UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ArrangedChildren.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"
6#include "Layout/Visibility.h"
8
15{
16 private:
17
18 EVisibility VisibilityFilter;
19
20 public:
21
23
32 : VisibilityFilter( InVisibilityFilter )
33 , bAllow3DWidgets( bInAllow3DWidgets )
34 {
35 }
36
37 // @todo hittest2.0 : we should get rid of this eventually.
39 {
41 Temp.Array.Reserve(InWidgets.Num());
43 {
44 Temp.Array.Add(WidgetAndPointer);
45 }
46 return Temp;
47 }
48
50 void Reverse()
51 {
52 int32 LastElementIndex = Array.Num() - 1;
53 for (int32 WidgetIndex = 0; WidgetIndex < Array.Num()/2; ++WidgetIndex )
54 {
55 Array.Swap( WidgetIndex, LastElementIndex - WidgetIndex );
56 }
57 }
58
66 inline void AddWidget(EVisibility VisibilityOverride, const FArrangedWidget& InWidgetGeometry)
67 {
68 if ( Accepts(VisibilityOverride) )
69 {
70 Array.Add(InWidgetGeometry);
71 }
72 }
73
74 inline void InsertWidget(EVisibility VisibilityOverride, const FArrangedWidget& InWidgetGeometry, int32 Index)
75 {
76 if (Accepts(VisibilityOverride))
77 {
79 }
80 }
81
84 {
85 Array.Reserve(Number);
86 }
87
93
95
97 {
98 VisibilityFilter = InVisibility;
99 }
100
101 inline EVisibility GetFilter() const
102 {
103 return VisibilityFilter;
104 }
105
107 {
108 return EVisibility::DoesVisibilityPassFilter(InVisibility, VisibilityFilter);
109 }
110
111 inline bool Allows3DWidgets() const
112 {
113 return bAllow3DWidgets;
114 }
115
116 // We duplicate parts of TArray's interface here!
117 // Inheriting from "public TArray<FArrangedWidget>"
118 // saves us this boilerplate, but causes instantiation of
119 // many template combinations that we do not want.
120
121private:
124
125 bool bAllow3DWidgets;
126public:
127
129 {
130 return Array;
131 }
132
134 {
135 return Array;
136 }
137
138 inline int32 Num() const
139 {
140 return Array.Num();
141 }
142
143 inline const FArrangedWidget& operator[]( int32 Index ) const
144 {
145 return Array[Index];
146 }
147
149 {
150 return Array[Index];
151 }
152
153 inline const FArrangedWidget& Last() const
154 {
155 return Array.Last();
156 }
157
159 {
160 return Array.Last();
161 }
162
164 {
165 return Array.Find(ItemToFind);
166 }
167
168 template<typename PredicateType>
170 {
171 return Array.IndexOfByPredicate( Pred );
172 }
173
174 template<typename PredicateType>
176 {
177 return Array.FindLastByPredicate(Pred);
178 }
179
180 inline void Remove(int32 Index, int32 Count=1)
181 {
182 Array.RemoveAt(Index, Count);
183 }
184
185 inline void Append(const FArrangedChildren& Source)
186 {
187 Array.Append( Source.Array );
188 }
189
190 inline void Empty()
191 {
192 Array.Reset();
193 }
194
196 {
197 return Array.IsValidIndex(Index);
198 }
199};
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
Definition ArrangedChildren.h:15
void SetFilter(EVisibility InVisibility)
Definition ArrangedChildren.h:96
bool Allows3DWidgets() const
Definition ArrangedChildren.h:111
FArrangedWidget & operator[](int32 Index)
Definition ArrangedChildren.h:148
void Append(const FArrangedChildren &Source)
Definition ArrangedChildren.h:185
int32 Num() const
Definition ArrangedChildren.h:138
static FArrangedChildren Hittest2_FromArray(const TArrayView< FWidgetAndPointer > InWidgets)
Definition ArrangedChildren.h:38
EVisibility GetFilter() const
Definition ArrangedChildren.h:101
int32 FindItemIndex(const FArrangedWidget &ItemToFind) const
Definition ArrangedChildren.h:163
const FArrangedWidget & operator[](int32 Index) const
Definition ArrangedChildren.h:143
void InsertWidget(EVisibility VisibilityOverride, const FArrangedWidget &InWidgetGeometry, int32 Index)
Definition ArrangedChildren.h:74
TArray< FArrangedWidget, TInlineAllocator< 4 > > FArrangedWidgetArray
Definition ArrangedChildren.h:22
FArrangedWidgetArray & GetInternalArray()
Definition ArrangedChildren.h:128
bool IsValidIndex(int32 Index)
Definition ArrangedChildren.h:195
void AddWidget(EVisibility VisibilityOverride, const FArrangedWidget &InWidgetGeometry)
Definition ArrangedChildren.h:66
const FArrangedWidget & Last() const
Definition ArrangedChildren.h:153
void Reserve(FArrangedWidgetArray::SizeType Number)
Definition ArrangedChildren.h:83
int32 IndexOfByPredicate(const PredicateType &Pred) const
Definition ArrangedChildren.h:169
FArrangedWidget & Last()
Definition ArrangedChildren.h:158
int32 FindLastByPredicate(const PredicateType &Pred) const
Definition ArrangedChildren.h:175
const FArrangedWidgetArray & GetInternalArray() const
Definition ArrangedChildren.h:133
bool Accepts(EVisibility InVisibility) const
Definition ArrangedChildren.h:106
void Reverse()
Definition ArrangedChildren.h:50
void Empty()
Definition ArrangedChildren.h:190
void Remove(int32 Index, int32 Count=1)
Definition ArrangedChildren.h:180
FArrangedChildren(EVisibility InVisibilityFilter, bool bInAllow3DWidgets=false)
Definition ArrangedChildren.h:31
Definition ArrangedWidget.h:18
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
typename InAllocatorType::SizeType SizeType
Definition Array.h:675
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_FORCEINLINE_HINT void Swap(SizeType FirstIndexToSwap, SizeType SecondIndexToSwap)
Definition Array.h:3300
SizeType Insert(std::initializer_list< ElementType > InitList, const SizeType InIndex)
Definition Array.h:1875
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
U16 Index
Definition radfft.cpp:71
Definition Visibility.h:12
static SLATECORE_API const EVisibility All
Definition Visibility.h:29
static bool DoesVisibilityPassFilter(const EVisibility InVisibility, const EVisibility InVisibilityFilter)
Definition Visibility.h:71
Definition ArrangedWidget.h:66