5#include "Containers/Array.h"
76 return Getter.IsBound();
106 struct FContainerInitializer;
177 return AttributeType;
182 return bAffectVisibility;
187 OnValueChanged.ExecuteIfBound(
Widget);
196 uint8 ContainerIndex;
200 bool bAffectVisibility;
239 int32 AttributeIndex;
301 int32 AttributeIndex;
328 return Attributes.Num();
380#define SLATE_ADD_MEMBER_ATTRIBUTE_DEFINITION_WITH_NAME(_Initializer, _Name, _Property, _Reason) \
381 static_assert(decltype(_Property)::AttributeType == SlateAttributePrivate::ESlateAttributeType::Member, "The SlateProperty is not a TSlateAttribute. Do not use SLATE_ADD_MEMBER_ATTRIBUTE_DEFINITION"); \
382 static_assert(!decltype(_Property)::HasDefinedInvalidationReason, "When implementing the SLATE_DECLARE_WIDGET pattern, use TSlateAttribute without the invalidation reason."); \
383 static_assert(!std::is_same<decltype(_Reason), EInvalidateWidgetReason>::value || FSlateAttributeBase::IsInvalidateWidgetReasonSupported(_Reason), "The invalidation is not supported by the SlateAttribute system."); \
384 _Initializer.AddMemberAttribute(_Name, STRUCT_OFFSET(PrivateThisType, _Property), FSlateAttributeDescriptor::FInvalidateWidgetReasonAttribute{_Reason})
386#define SLATE_ADD_MEMBER_ATTRIBUTE_DEFINITION(_Initializer, _Property, _Reason) \
387 SLATE_ADD_MEMBER_ATTRIBUTE_DEFINITION_WITH_NAME(_Initializer, GET_MEMBER_NAME_CHECKED(PrivateThisType, _Property), _Property, _Reason)
389#define SLATE_ADD_PANELCHILDREN_DEFINITION_WITH_NAME(_Initializer, _Name, _Container) \
390 _Initializer.AddContainer(_Name, STRUCT_OFFSET(PrivateThisType, _Container))
392#define SLATE_ADD_PANELCHILDREN_DEFINITION(_Initializer, _Container) \
393 SLATE_ADD_PANELCHILDREN_DEFINITION_WITH_NAME(_Initializer, GET_MEMBER_NAME_CHECKED(PrivateThisType, _Container), _Container)
395#define SLATE_ADD_SLOT_ATTRIBUTE_DEFINITION_WITH_NAME(_SlotType, _Initializer, _Name, _Property, _Reason) \
396 static_assert(decltype(_Property)::AttributeType == SlateAttributePrivate::ESlateAttributeType::Contained, "The SlateProperty is not a TSlateAttribute. Do not use SLATE_ADD_CONTAINED_ATTRIBUTE_DEFINITION"); \
397 static_assert(!decltype(_Property)::HasDefinedInvalidationReason, "When implementing the SLATE_DECLARE_WIDGET pattern, use TSlateSlotAttribute without the invalidation reason."); \
398 static_assert(!std::is_same<decltype(_Reason), EInvalidateWidgetReason>::value || FSlateAttributeBase::IsInvalidateWidgetReasonSupported(_Reason), "The invalidation is not supported by the SlateAttribute system."); \
400 _Initializer.AddContainedAttribute(_Name, ((SIZE_T)(&(((_SlotType*)(0x1000))->_Property)) - (SIZE_T)(static_cast<SlateAttributePrivate::ISlateAttributeContainer*>((_SlotType*)(0x1000)))), FSlateAttributeDescriptor::FInvalidateWidgetReasonAttribute{_Reason})
402#define SLATE_ADD_SLOT_ATTRIBUTE_DEFINITION(_SlotType, _Initializer, _Property, _Reason) \
403 SLATE_ADD_SLOT_ATTRIBUTE_DEFINITION_WITH_NAME(_SlotType, _Initializer, GET_MEMBER_NAME_CHECKED(_SlotType, _Property), _Property, _Reason)
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename TIdentity< T >::Type TIdentity_T
Definition Identity.h:24
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition NameTypes.h:617
FORCEINLINE bool IsNone() const
Definition NameTypes.h:827
Definition SlateAttributeDescriptor.h:32
SLATECORE_API const FAttribute & GetAttributeAtIndex(int32 Index) const
Definition SlateAttributeDescriptor.cpp:408
ECallbackOverrideType
Definition SlateAttributeDescriptor.h:94
TDelegate< void(SWidget &), FNotThreadSafeNotCheckedDelegateUserPolicy > FAttributeValueChangedDelegate
Definition SlateAttributeDescriptor.h:90
int32 GetAttributeNum() const
Definition SlateAttributeDescriptor.h:326
SLATECORE_API const FAttribute * FindMemberAttribute(OffsetType AttributeOffset) const
Definition SlateAttributeDescriptor.cpp:434
static constexpr OffsetType DefaultSortOrder(OffsetType Offset)
Definition SlateAttributeDescriptor.h:112
SLATECORE_API const FAttribute * FindContainedAttribute(FName ContainerName, OffsetType AttributeOffset) const
Definition SlateAttributeDescriptor.cpp:446
SLATECORE_API const FContainer * FindContainer(FName ContainerName) const
Definition SlateAttributeDescriptor.cpp:416
SLATECORE_API const FAttribute * FindAttribute(FName AttributeName) const
Definition SlateAttributeDescriptor.cpp:422
uint32 OffsetType
Definition SlateAttributeDescriptor.h:109
SLATECORE_API int32 IndexOfContainedAttribute(FName ContainerName, OffsetType AttributeOffset) const
Definition SlateAttributeDescriptor.cpp:483
SLATECORE_API int32 IndexOfContainer(FName AttributeName) const
Definition SlateAttributeDescriptor.cpp:459
SLATECORE_API int32 IndexOfMemberAttribute(OffsetType AttributeOffset) const
Definition SlateAttributeDescriptor.cpp:471
SLATECORE_API int32 IndexOfAttribute(FName AttributeName) const
Definition SlateAttributeDescriptor.cpp:465
Definition SlateAttribute.cpp:11
ESlateAttributeType
Definition SlateAttributeDefinition.inl:27
U16 Index
Definition radfft.cpp:71
Definition DelegateBase.h:179
Definition SlateAttributeDescriptor.h:151
friend FSlateAttributeDescriptor
Definition SlateAttributeDescriptor.h:152
void ExecuteOnValueChangedIfBound(SWidget &Widget) const
Definition SlateAttributeDescriptor.h:185
friend FInitializer
Definition SlateAttributeDescriptor.h:153
bool DoesAffectVisibility() const
Definition SlateAttributeDescriptor.h:180
uint32 GetSortOrder() const
Definition SlateAttributeDescriptor.h:165
friend FContainerInitializer
Definition SlateAttributeDescriptor.h:154
FName GetName() const
Definition SlateAttributeDescriptor.h:160
EInvalidateWidgetReason GetInvalidationReason(const SWidget &Widget) const
Definition SlateAttributeDescriptor.h:170
SlateAttributePrivate::ESlateAttributeType GetAttributeType() const
Definition SlateAttributeDescriptor.h:175
Definition SlateAttributeDescriptor.h:217
SLATECORE_API FAttributeEntry & OnValueChanged(FAttributeValueChangedDelegate Callback)
Definition SlateAttributeDescriptor.cpp:56
SLATECORE_API FAttributeEntry & UpdatePrerequisite(FName Prerequisite)
Definition SlateAttributeDescriptor.cpp:46
Definition SlateAttributeDescriptor.h:205
FContainerInitializer & operator=(const FContainerInitializer &)=delete
FContainerInitializer(const FContainerInitializer &)=delete
SLATECORE_API void OverrideOnValueChanged(FName AttributeName, ECallbackOverrideType OverrideType, FAttributeValueChangedDelegate Callback)
Definition SlateAttributeDescriptor.cpp:155
FContainerInitializer()=delete
SLATECORE_API FAttributeEntry AddContainedAttribute(FName AttributeName, OffsetType Offset, const FInvalidateWidgetReasonAttribute &ReasonGetter)
Definition SlateAttributeDescriptor.cpp:131
SLATECORE_API void OverrideInvalidationReason(FName AttributeName, const FInvalidateWidgetReasonAttribute &Reason)
Definition SlateAttributeDescriptor.cpp:143
Definition SlateAttributeDescriptor.h:117
bool IsValid() const
Definition SlateAttributeDescriptor.h:127
FContainer(FName InName, OffsetType InOffset)
Definition SlateAttributeDescriptor.h:122
friend FInitializer
Definition SlateAttributeDescriptor.h:118
FName GetName() const
Definition SlateAttributeDescriptor.h:132
uint32 GetSortOrder() const
Definition SlateAttributeDescriptor.h:137
Definition SlateAttributeDescriptor.h:273
SLATECORE_API FAttributeEntry & UpdatePrerequisite(FName Prerequisite)
Definition SlateAttributeDescriptor.cpp:73
SLATECORE_API FAttributeEntry & AffectVisibility()
Definition SlateAttributeDescriptor.cpp:83
SLATECORE_API FAttributeEntry & OnValueChanged(FAttributeValueChangedDelegate Callback)
Definition SlateAttributeDescriptor.cpp:93
Definition SlateAttributeDescriptor.h:261
SLATECORE_API void OverrideOnValueChanged(FName AttributeName, ECallbackOverrideType OverrideType, FAttributeValueChangedDelegate Callback)
Definition SlateAttributeDescriptor.cpp:391
SLATECORE_API void OverrideInvalidationReason(FName AttributeName, const FInvalidateWidgetReasonAttribute &Reason)
Definition SlateAttributeDescriptor.cpp:379
SLATECORE_API FAttributeEntry AddMemberAttribute(FName AttributeName, OffsetType Offset, const FInvalidateWidgetReasonAttribute &ReasonGetter)
Definition SlateAttributeDescriptor.cpp:363
SLATECORE_API ~FInitializer()
Definition SlateAttributeDescriptor.cpp:175
SLATECORE_API void SetAffectVisibility(FName AttributeName, bool bAffectVisibility)
Definition SlateAttributeDescriptor.cpp:397
SLATECORE_API FContainerInitializer AddContainer(FName ContainerName, OffsetType Offset)
Definition SlateAttributeDescriptor.cpp:374