37 template <
typename SlotType>
60 template <
typename SlotType,
bool CompareArranged = false>
229 return Container[
Index];
234 return Container[
Index];
239 return &Container[
Index];
244 return &Container[
Index];
248 inline explicit operator bool()
const
302 template <
typename SlotType,
typename =
void>
342 template <
typename SlotType>
343 struct TSlotAccessor<
346 std::is_base_of_v<TBasicLayoutWidgetSlot<SlotType>, std::decay_t<SlotType>>
347 && std::is_base_of_v<TResizingWidgetSlotMixin<SlotType>, std::decay_t<SlotType>>>>
358 return InSlot.GetWidget();
364 return InSlot.GetWidget()->GetVisibility();
370 return InSlot.GetPadding();
376 return InSlot.GetWidget()->GetDesiredSize();
382 return InSlot.GetWidget()->GetTickSpaceGeometry().
Size;
388 return InSlot.GetSizeRule();
394 return InSlot.GetSizeValue();
400 return InSlot.GetShrinkSizeValue();
406 return InSlot.GetMinSize();
412 return InSlot.GetMaxSize();
430 template <
typename SlotType>
431 struct TSlotAccessor<
433 std::
enable_if_t<std::is_base_of_v<FSlotProxy, std::decay_t<SlotType>>>>
462 return InSlot.DesiredSize;
468 return InSlot.ArrangedSize;
474 return InSlot.SizeParam.SizeRule;
480 return InSlot.SizeParam.Value.Get();
486 return InSlot.SizeParam.ShrinkValue.Get();
511 template <
typename SlotType,
typename =
void>
516 template <
typename SlotType>
517 struct TSlotIterator<
519 std::
enable_if_t<std::is_base_of_v<FSlotBase, std::decay_t<SlotType>>>>
524 template <
typename SlotType>
525 struct TSlotIterator<
527 std::
enable_if_t<std::is_base_of_v<FSlotProxy, std::decay_t<SlotType>>>>
536 template<EOrientation Orientation>
539 template<
typename SlotType>
546 template<
typename SlotType>
550 if constexpr (std::is_base_of_v<FSlotProxy, std::decay_t<SlotType>>)
552 HorizontalAlignment =
InSlot.HorizontalAlignment;
556 HorizontalAlignment =
InSlot.GetHorizontalAlignment();
563 return static_cast<int32>(HorizontalAlignment);
565 switch (HorizontalAlignment)
572 return static_cast<int32>(HorizontalAlignment);
581 template<
typename SlotType>
585 if constexpr (std::is_base_of_v<FSlotProxy, std::decay_t<SlotType>>)
587 VerticalAlignment =
InSlot.VerticalAlignment;
591 VerticalAlignment =
InSlot.GetVerticalAlignment();
595 return static_cast<int32>(VerticalAlignment);
603 template<EOrientation Orientation>
606 const FMargin& Margin = SlotPadding;
616 template<EOrientation Orientation>
619 const FMargin& Margin = SlotPadding;
641template<EOrientation Orientation,
typename SlotType>
644 const FMargin& Margin = SlotPadding;
673template<EOrientation Orientation,
typename SlotType>
679template<EOrientation Orientation,
typename SlotType>
682 const FMargin& Margin = SlotPadding;
696 if constexpr (std::is_base_of_v<FSlotProxy, std::decay_t<SlotType>>)
725template<EOrientation Orientation,
typename SlotType>
736template<
typename SlotType>
742template<
typename SlotType>
754 ChildSlot.GetWidget(),
761template<
typename SlotType>
767template<
typename SlotType>
779 ChildSlot.GetWidget(),
838 bool bFrozen =
false;
849 UE::Slate::TSlotAccessor<std::decay_t<InputSlotType>>
SlotAccessor;
853 for (
int32 ChildIndex = 0; ChildIndex <
InChildren.Num(); ++ChildIndex)
886 Item.ShrinkStretchValue = Item.GrowStretchValue;
888 Item.BasisSize = 0.0f;
916 Item.GrowStretchValue = 0.0f;
917 Item.ShrinkStretchValue = 0.0f;
943 float UsedSpace = 0.0f;
952 Item.Size = ClampSize(
Size, Item.MinSize, Item.MaxSize);
954 UsedSpace += Item.Size;
1033 float ConsumedSpace = 0.0f;
1047 Item.bFrozen =
true;
1051 const float MinSize = Item.MinSize;
1052 const float MaxSize = Item.MaxSize;
1058 ConsumedSpace +=
MinSize - Item.Size;
1060 Item.bFrozen =
true;
1066 ConsumedSpace +=
MaxSize - Item.Size;
1068 Item.bFrozen =
true;
1089 using SlotIteratorType =
typename UE::Slate::TSlotIterator<InputSlotType>::Type;
1132 if constexpr (std::is_same_v<TArrayView<InputSlotType>, std::decay_t<InputChildrenType>>
1133 && !std::is_const_v<typename TArrayView<InputSlotType>::ElementType>)
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EFlowDirection
Definition FlowDirection.h:17
SLATECORE_API UE::Slate::FDeprecateVector2DResult ComputePopupFitInRect(const FSlateRect &InAnchor, const FSlateRect &PopupRect, const EOrientation &Orientation, const FSlateRect &RectToFit, bool bAllowFlip=true)
Definition LayoutUtils.cpp:61
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
UE::Math::TVector2< double > FVector2D
Definition MathFwd.h:48
const bool
Definition NetworkReplayStreaming.h:178
#define UE_REQUIRES(...)
Definition Requires.h:86
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
EHorizontalAlignment
Definition SlateEnums.h:174
EOrientation
Definition SlateEnums.h:261
EVerticalAlignment
Definition SlateEnums.h:194
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
uint32 Size
Definition VulkanMemory.cpp:4034
Definition ArrangedChildren.h:15
Definition SlateRect.h:26
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
UE_FORCEINLINE_HINT constexpr bool IsValidIndex(SizeType Index) const
Definition ArrayView.h:359
void Init(const ElementType &Element, SizeType Number)
Definition Array.h:3043
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
Definition Children.h:716
Definition Children.h:461
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition LayoutUtils.h:177
void SetToEnd()
Definition LayoutUtils.h:275
TSlotProxyIterator & operator--()
Definition LayoutUtils.h:211
SlotProxyType * operator->()
Definition LayoutUtils.h:242
TSlotProxyIterator(const TArrayView< SlotProxyType > &InContainer, EFlowDirection InLayoutFlow)
Definition LayoutUtils.h:179
int32 GetIndex() const
Definition LayoutUtils.h:254
const SlotProxyType & operator*() const
Definition LayoutUtils.h:227
TSlotProxyIterator & operator++()
Definition LayoutUtils.h:194
TSlotProxyIterator(const TArrayView< SlotProxyType > &InContainer, EOrientation InOrientation, EFlowDirection InLayoutFlow)
Definition LayoutUtils.h:186
void Reset()
Definition LayoutUtils.h:260
const SlotProxyType * operator->() const
Definition LayoutUtils.h:237
Definition LayoutUtils.h:534
Type
Definition PawnAction_Move.h:11
void GetVisibility(const SceneViewOrGizmoViewContext *View, const FVector &ViewDirection, const FVector &GizmoPlaneWorldNormal, const FVector &WorldOrigin, bool &bRenderVisibilityOut, bool &bIsViewPlaneParallelOut)
Definition GizmoCircleComponent.cpp:19
Definition DockingUtilsPrivate.h:8
FDeprecateSlateVector2D FDeprecateVector2DResult
Definition SlateVector2.h:469
U16 Index
Definition radfft.cpp:71
Definition LayoutUtils.h:17
float Size
Definition LayoutUtils.h:25
AlignmentArrangeResult(float InOffset, float InSize)
Definition LayoutUtils.h:18
float Offset
Definition LayoutUtils.h:24
static int32 AsInt(EFlowDirection InFlowDirection, const SlotType &InSlot)
Definition LayoutUtils.h:547
static int32 AsInt(EFlowDirection InFlowDirection, const SlotType &InSlot)
Definition LayoutUtils.h:582
Definition LayoutUtils.h:538
static int32 AsInt(EFlowDirection InFlowDirection, const SlotType &InSlot)
Definition Visibility.h:12
static SLATECORE_API const EVisibility Visible
Definition Visibility.h:14
static SLATECORE_API const EVisibility Collapsed
Definition Visibility.h:17
Definition SlateStructs.h:184
FGeometry MakeChild(const UE::Slate::FDeprecateVector2DParameter &InLocalSize, const FSlateLayoutTransform &LayoutTransform, const FSlateRenderTransform &RenderTransform, const UE::Slate::FDeprecateVector2DParameter &RenderTransformPivot) const
Definition Geometry.h:225
UE::Slate::FDeprecateVector2DResult GetLocalSize() const
Definition Geometry.h:510
float Right
Definition Margin.h:30
float Left
Definition Margin.h:22
float GetTotalSpaceAlong() const
Definition Margin.h:210
static UE_FORCEINLINE_HINT bool IsNearlyEqual(float A, float B, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:388
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
static UE_FORCEINLINE_HINT bool IsNearlyZero(float Value, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:407
Definition SlateStructs.h:96
ESizeRule SizeRule
Definition SlateStructs.h:105
TAttribute< float > Value
Definition SlateStructs.h:112
ESizeRule
Definition SlateStructs.h:98
@ SizeRule_Stretch
Definition SlateStructs.h:100
@ SizeRule_Auto
Definition SlateStructs.h:99
@ SizeRule_StretchContent
Definition SlateStructs.h:101
TAttribute< float > ShrinkValue
Definition SlateStructs.h:120
Definition LayoutUtils.h:33
TOptional< FSlateRenderTransform > RenderTransform
Definition LayoutUtils.h:164
float MaxSize
Definition LayoutUtils.h:152
TSharedPtr< SWidget > Widget
Definition LayoutUtils.h:170
bool operator==(const int32 InSlotIndex) const
Definition LayoutUtils.h:115
EVerticalAlignment VerticalAlignment
Definition LayoutUtils.h:161
FMargin Padding
Definition LayoutUtils.h:137
EHorizontalAlignment HorizontalAlignment
Definition LayoutUtils.h:158
FSizeParam SizeParam
Definition LayoutUtils.h:146
bool operator<(const FSlotProxy &InOtherSlot) const
Definition LayoutUtils.h:121
FVector2f ArrangedSize
Definition LayoutUtils.h:143
FSlotProxy(const int32 InSlotIndex, const SlotType &InSlot)
Definition LayoutUtils.h:38
FVector2f RenderTransformPivot
Definition LayoutUtils.h:167
int32 SlotIndex
Definition LayoutUtils.h:134
float MinSize
Definition LayoutUtils.h:149
FVector2f DesiredSize
Definition LayoutUtils.h:140
EVisibility Visibility
Definition LayoutUtils.h:155
SLATECORE_API FGeometry MakeGeometry(const FGeometry &InParentGeometry, const FVector2f &InChildOffset, const FVector2f &InLocalSize) const
Definition LayoutUtils.cpp:45
bool UpdateFromSlot(const int32 InSlotIndex, const SlotType &InSlot)
Definition LayoutUtils.h:61
Definition Optional.h:131
static UE_FORCEINLINE_HINT TVector2< double > Min(const TVector2< double > &A, const TVector2< double > &B)
Definition Vector2D.h:959
bool Equals(const TVector2< T > &V, T Tolerance=UE_KINDA_SMALL_NUMBER) const
Definition Vector2D.h:1007
T Size() const
Definition Vector2D.h:1111
float FReal
Definition Vector2D.h:42
T Y
Definition Vector2D.h:52
static UE_FORCEINLINE_HINT TVector2< double > Max(const TVector2< double > &A, const TVector2< double > &B)
Definition Vector2D.h:953
T X
Definition Vector2D.h:49
static CORE_API const TVector2< float > ZeroVector
Definition Vector2D.h:63