34 TotalNum += Children->Num();
48 return Children->GetChildAt(
Index - TotalNum);
65 return Children->GetChildAt(
Index - TotalNum);
80 TotalNum += Children->NumSlot();
94 return Children->GetSlotAt(ChildIndex - TotalNum);
113 return Children->GetChildRefAt(
Index - TotalNum);
130 return Children->GetChildRefAt(
Index - TotalNum);
184 virtual const FSlotBase& GetSlotAt(
int32 ChildIndex)
const override
191 virtual FWidgetRef GetChildRefAt(
int32 Index)
override
197 virtual FConstWidgetRef GetChildRefAt(
int32 Index)
const override
210template <
typename ChildType>
218 return WidgetPtr.
IsValid() ? 1 : 0 ;
223 check(ChildIndex == 0);
229 check(ChildIndex == 0);
234 virtual int32 NumSlot()
const override
239 virtual const FSlotBase& GetSlotAt(
int32 ChildIndex)
const override
242 check(ChildIndex == 0);
246 virtual FWidgetRef GetChildRefAt(
int32 ChildIndex)
override
248 check(ChildIndex == 0);
252 virtual FConstWidgetRef GetChildRefAt(
int32 ChildIndex)
const override
254 check(ChildIndex == 0);
300template<
typename SlotType>
323 check(ChildIndex == 0);
329 check(ChildIndex == 0);
346 return static_cast<typename SlotType::FSlotArguments&
>(*this);
367 return static_cast<SlotType&
>(*this);
373 return static_cast<SlotType&
>(*this);
377 virtual const FSlotBase& GetSlotAt(
int32 ChildIndex)
const override
379 check(ChildIndex == 0);
383 virtual FWidgetRef GetChildRefAt(
int32 ChildIndex)
override
385 check(ChildIndex == 0);
388 virtual FConstWidgetRef GetChildRefAt(
int32 ChildIndex)
const override
390 check(ChildIndex == 0);
405template<EInval
idateW
idgetReason InPaddingInval
idationReason = EInval
idateW
idgetReason::Layout>
459template<
typename SlotType>
464 static constexpr bool bSupportSlotWithSlateAttribute = std::is_base_of<TWidgetSlotWithAttributeSupport<SlotType>, SlotType>::value;
469 return *Children[ChildIndex];
487 return Children.Num();
492 return Children[
Index]->GetWidget();
497 return Children[
Index]->GetWidget();
502 return bSupportSlotWithSlateAttribute;
532 Children.RemoveAt(
Index);
539 for (
int32 SlotIdx = 0; SlotIdx <
Num(); ++SlotIdx)
541 if (
SlotWidget == Children[SlotIdx]->GetWidget())
543 Children.RemoveAt(SlotIdx);
583 if constexpr (bSupportSlotWithSlateAttribute)
585 check(Children.Num() > 0);
586 Children[0]->RequestSortAttribute();
600 return Children.IsValidIndex(
Index );
605 return *Children[
Index];
609 return *Children[
Index];
612 template <
class PREDICATE_CLASS>
615 if (Children.Num() > 0)
619 return Predicate(*
One, *
Two);
622 if constexpr (bSupportSlotWithSlateAttribute)
624 Children[0]->RequestSortAttribute();
631 template <
class PREDICATE_CLASS>
634 if (Children.Num() > 0)
638 return Predicate(*
One, *
Two);
641 if constexpr (bSupportSlotWithSlateAttribute)
643 Children[0]->RequestSortAttribute();
652 Children.Swap(IndexA, IndexB);
654 if constexpr (bSupportSlotWithSlateAttribute)
656 check(Children.Num() > 0);
657 Children[0]->RequestSortAttribute();
689 if (
const SlotType*
SlotPtr = this->GetSlot())
714template<
typename SlotType>
768 return Container[
Index];
773 return &Container[
Index];
777 inline explicit operator bool()
const
779 return Container.IsValidIndex(
Index);
798 Index = Container.Num() - 1;
810 Index = Container.Num() - 1;
834template<
typename ChildType>
840 virtual int32 NumSlot()
const override
845 virtual const FSlotBase& GetSlotAt(
int32 ChildIndex)
const override
874 return Children.Num();
879 return Children[
Index];
884 return Children[
Index];
889 if (bChangesInvalidatePrepass)
906 for (
int32 ChildIndex = 0; ChildIndex < Children.Num(); ChildIndex++)
930 for (
int32 ChildIndex = 0; ChildIndex < Children.Num(); ChildIndex++)
954 if (bChangesInvalidatePrepass)
973 return Children.Remove(
Child );
985 Children.RemoveAt(
Index );
990 return Children.Find( Item );
1001 template <
class PREDICATE_CLASS>
1004 Children.Sort( Predicate );
1005 if (bChangesInvalidatePrepass)
1013 Children.Swap(IndexA, IndexB);
1014 if (bChangesInvalidatePrepass)
1021 bool bChangesInvalidatePrepass;
1026template<
typename SlotType>
1046 virtual int32 Num()
const override {
return AllChildren->Num() > 0 ? 1 : 0; }
1051 return AllChildren->GetChildAt(WidgetIndex->
Get());
1057 return AllChildren->GetChildAt(WidgetIndex->
Get());
1061 virtual const FSlotBase& GetSlotAt(
int32 ChildIndex)
const override
1063 return (*AllChildren)[ChildIndex];
1066 virtual FWidgetRef GetChildRefAt(
int32 ChildIndex)
override
1068 check(ChildIndex == 0);
1069 return static_cast<FChildren*
>(AllChildren)->GetChildRefAt(WidgetIndex->
Get());
1072 virtual FConstWidgetRef GetChildRefAt(
int32 ChildIndex)
const override
1074 check(ChildIndex == 0);
1075 return static_cast<const FChildren*
>(AllChildren)->GetChildRefAt(WidgetIndex->
Get());
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_SLOT_END_ARGS()
Definition DeclarativeSyntaxSupport.h:386
EFlowDirection
Definition FlowDirection.h:17
const bool
Definition NetworkReplayStreaming.h:178
@ Two
Definition PropertyPathHelpersTest.h:17
@ One
Definition PropertyPathHelpersTest.h:16
EHorizontalAlignment
Definition SlateEnums.h:174
EOrientation
Definition SlateEnums.h:261
EVerticalAlignment
Definition SlateEnums.h:194
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ChildrenBase.h:27
FChildren(SWidget *InOwner)
Definition ChildrenBase.h:29
@ CopyConstruct
Definition ChildrenBase.h:124
SWidget & GetOwner() const
Definition ChildrenBase.h:57
@ ReferenceConstruct
Definition ChildrenBase.h:125
virtual const FSlotBase & GetSlotAt(int32 ChildIndex) const override
Definition Children.h:86
virtual TSharedRef< SWidget > GetChildAt(int32 Index) override
Definition Children.h:40
virtual int32 NumSlot() const override
Definition Children.h:75
virtual FWidgetRef GetChildRefAt(int32 Index) override
Definition Children.h:105
virtual int32 Num() const override
Definition Children.h:29
virtual FConstWidgetRef GetChildRefAt(int32 Index) const override
Definition Children.h:122
virtual TSharedRef< const SWidget > GetChildAt(int32 Index) const override
Definition Children.h:57
void AddChildren(FChildren &InLinkedChildren)
Definition Children.h:23
TArray< FChildren * > LinkedChildren
Definition Children.h:140
Definition NameTypes.h:617
Definition Children.h:149
virtual int32 Num() const override
Definition Children.h:164
virtual TSharedRef< const SWidget > GetChildAt(int32) const override
Definition Children.h:174
static SLATECORE_API FNoChildren NoChildrenInstance
Definition Children.h:151
FNoChildren(SWidget *InOwner)
Definition Children.h:154
FNoChildren(SWidget *InOwner, FName InName)
Definition Children.h:159
virtual TSharedRef< SWidget > GetChildAt(int32) override
Definition Children.h:166
SLATECORE_API const TSharedPtr< SWidget > DetachWidget()
Definition SlotBase.cpp:46
SLATECORE_API SWidget * GetOwnerWidget() const
Definition SlotBase.cpp:29
void AttachWidget(TSharedRef< SWidget > &&InWidget)
Definition SlotBase.h:47
const TSharedRef< SWidget > & GetWidget() const
Definition SlotBase.h:65
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
Definition AndroidPlatformMisc.h:14
Definition Children.h:1028
virtual TSharedRef< const SWidget > GetChildAt(int32 Index) const override
Definition Children.h:1054
TOneDynamicChild(std::nullptr_t, std::nullptr_t, const TAttribute< int32 > *InWidgetIndex)=delete
virtual int32 Num() const override
Definition Children.h:1046
TOneDynamicChild(SWidget *InOwner, std::nullptr_t, std::nullptr_t)=delete
virtual TSharedRef< SWidget > GetChildAt(int32 Index) override
Definition Children.h:1048
TOneDynamicChild(std::nullptr_t, TPanelChildren< SlotType > *InAllChildren, std::nullptr_t)=delete
TOneDynamicChild(SWidget *InOwner, TPanelChildren< SlotType > *InAllChildren, const TAttribute< int32 > *InWidgetIndex)
Definition Children.h:1030
TOneDynamicChild(SWidget *InOwner, TPanelChildren< SlotType > *InAllChildren, std::nullptr_t)=delete
TOneDynamicChild(std::nullptr_t, std::nullptr_t, std::nullptr_t)=delete
TOneDynamicChild(SWidget *InOwner, std::nullptr_t, const TAttribute< int32 > *InWidgetIndex)=delete
Definition Children.h:716
void SetToEnd()
Definition Children.h:804
TPanelChildrenConstIterator< SlotType > & operator++()
Definition Children.h:733
const SlotType * operator->() const
Definition Children.h:771
TPanelChildrenConstIterator< SlotType > & operator--()
Definition Children.h:750
const SlotType & operator*() const
Definition Children.h:766
int32 GetIndex() const
Definition Children.h:783
TPanelChildrenConstIterator(const TPanelChildren< SlotType > &InContainer, EOrientation InOrientation, EFlowDirection InLayoutFlow)
Definition Children.h:725
TPanelChildrenConstIterator(const TPanelChildren< SlotType > &InContainer, EFlowDirection InLayoutFlow)
Definition Children.h:718
void Reset()
Definition Children.h:789
Definition Children.h:461
virtual TSharedRef< SWidget > GetChildAt(int32 Index) override
Definition Children.h:490
void AddSlots(TArray< typename SlotType::FSlotArguments > SlotArguments)
Definition Children.h:515
virtual int32 Num() const override
Definition Children.h:485
void Swap(int32 IndexA, int32 IndexB)
Definition Children.h:650
void Move(int32 IndexToMove, int32 IndexToDestination)
Definition Children.h:577
const SlotType & operator[](int32 Index) const
Definition Children.h:603
void StableSort(const PREDICATE_CLASS &Predicate)
Definition Children.h:632
void Empty(int32 Slack=0)
Definition Children.h:551
virtual FConstWidgetRef GetChildRefAt(int32 ChildIndex) const override
Definition Children.h:477
void Sort(const PREDICATE_CLASS &Predicate)
Definition Children.h:613
SlotType & operator[](int32 Index)
Definition Children.h:607
int32 Remove(const TSharedRef< SWidget > &SlotWidget)
Definition Children.h:537
virtual FWidgetRef GetChildRefAt(int32 ChildIndex) override
Definition Children.h:472
void InsertSlot(typename SlotType::FSlotArguments &&SlotArgument, int32 Index)
Definition Children.h:569
virtual TSharedRef< const SWidget > GetChildAt(int32 Index) const override
Definition Children.h:495
virtual bool SupportSlotWithSlateAttribute() const override
Definition Children.h:500
void Reserve(int32 NumToReserve)
Definition Children.h:593
void RemoveAt(int32 Index)
Definition Children.h:524
bool IsValidIndex(int32 Index) const
Definition Children.h:598
virtual const FSlotBase & GetSlotAt(int32 ChildIndex) const override
Definition Children.h:467
int32 AddSlot(typename SlotType::FSlotArguments &&SlotArgument)
Definition Children.h:506
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SlotBase.h:122
@ ConstructSlotIsFChildren
Definition SlotBase.h:145
void Construct(const FChildren &SlotOwner, FSlotArguments &&InArgs)
Definition SlotBase.h:212
Definition Children.h:836
void Swap(int32 IndexA, int32 IndexB)
Definition Children.h:1011
TSlotlessChildren(SWidget *InOwner, bool InbChangesInvalidatePrepass=true)
Definition Children.h:864
void RemoveAt(int32 Index)
Definition Children.h:976
void Insert(const TSharedRef< ChildType > &Child, int32 Index)
Definition Children.h:952
virtual TSharedRef< SWidget > GetChildAt(int32 Index) override
Definition Children.h:877
TSlotlessChildren(std::nullptr_t, bool InbChangesInvalidatePrepass=true)=delete
void Reset(int32 NewSize=0)
Definition Children.h:904
TSharedRef< ChildType > & operator[](int32 Index)
Definition Children.h:999
const TSharedRef< ChildType > & operator[](int32 Index) const
Definition Children.h:998
void Sort(const PREDICATE_CLASS &Predicate)
Definition Children.h:1002
int32 Add(const TSharedRef< ChildType > &Child)
Definition Children.h:887
virtual TSharedRef< const SWidget > GetChildAt(int32 Index) const override
Definition Children.h:882
TArray< TSharedRef< ChildType > > AsArrayCopy() const
Definition Children.h:993
void Empty(int32 Slack=0)
Definition Children.h:928
virtual int32 Num() const override
Definition Children.h:872
int32 Find(const TSharedRef< ChildType > &Item) const
Definition Children.h:988
int32 Remove(const TSharedRef< ChildType > &Child)
Definition Children.h:966
Definition UniquePtr.h:107
Definition Children.h:212
virtual TSharedRef< const SWidget > GetChildAt(int32 ChildIndex) const override
Definition Children.h:227
TSharedRef< SWidget > GetWidget() const
Definition Children.h:287
virtual int32 Num() const override
Definition Children.h:216
void AttachWidget(const TSharedPtr< SWidget > &InWidget)
Definition Children.h:260
virtual TSharedRef< SWidget > GetChildAt(int32 ChildIndex) override
Definition Children.h:221
void DetachWidget()
Definition Children.h:274
Definition SharedPointer.h:1295
UE_FORCEINLINE_HINT TSharedPtr< ObjectType, Mode > Pin() const &
Definition SharedPointer.h:1512
UE_FORCEINLINE_HINT bool IsValid() const
Definition SharedPointer.h:1535
UE_FORCEINLINE_HINT void Reset()
Definition SharedPointer.h:1544
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
U16 Index
Definition radfft.cpp:71
void AttachWidget(const TSharedRef< SWidget > &InChildWidget)
Definition SlotBase.h:184