37#define SNew( WidgetType, ... ) \
38 MakeTDecl<WidgetType>( #WidgetType, __FILE__, __LINE__, RequiredArgs::MakeRequiredArgs(__VA_ARGS__) ) <<= TYPENAME_OUTSIDE_TEMPLATE WidgetType::FArguments()
41#define SAssignNew( ExposeAs, WidgetType, ... ) \
42 MakeTDecl<WidgetType>( #WidgetType, __FILE__, __LINE__, RequiredArgs::MakeRequiredArgs(__VA_ARGS__) ) . Expose( ExposeAs ) <<= TYPENAME_OUTSIDE_TEMPLATE WidgetType::FArguments()
44#define SArgumentNew( InArgs, WidgetType, ... ) \
45 MakeTDecl<WidgetType>( #WidgetType, __FILE__, __LINE__, RequiredArgs::MakeRequiredArgs(__VA_ARGS__) ) <<= InArgs
63#define SLATE_BEGIN_ARGS( InWidgetType ) \
65 struct FArguments : public TSlateBaseNamedArgs<InWidgetType> \
67 typedef FArguments WidgetArgsType; \
68 typedef InWidgetType WidgetType; \
69 FORCENOINLINE FArguments()
107#define SLATE_USER_ARGS( WidgetType ) \
109 static TSharedRef<WidgetType> New(); \
111 struct FArguments : public TSlateBaseNamedArgs<WidgetType> \
113 typedef FArguments WidgetArgsType; \
114 FORCENOINLINE FArguments()
116#define SLATE_END_ARGS() \
120#define SLATE_PRIVATE_ATTRIBUTE_VARIABLE( AttrType, AttrName ) \
121 TAttribute< AttrType > _##AttrName
123#define SLATE_PRIVATE_ATTRIBUTE_FUNCTION( AttrType, AttrName ) \
124 WidgetArgsType& AttrName( TAttribute< AttrType > InAttribute ) \
126 _##AttrName = MoveTemp(InAttribute); \
127 return static_cast<WidgetArgsType*>(this)->Me(); \
132 template< typename... VarTypes > \
133 WidgetArgsType& AttrName##_Static( TIdentity_T< typename TAttribute< AttrType >::FGetter::template TFuncPtr<VarTypes...> > InFunc, VarTypes... Vars ) \
135 _##AttrName.BindStatic( InFunc, Vars... ); \
136 return static_cast<WidgetArgsType*>(this)->Me(); \
141 WidgetArgsType& AttrName##_Lambda(TFunction< AttrType(void) >&& InFunctor) \
143 _##AttrName.BindLambda(InFunctor); \
144 return static_cast<WidgetArgsType*>(this)->Me(); \
148 template< class UserClass, typename... VarTypes > \
149 WidgetArgsType& AttrName##_Raw( UserClass* InUserObject, typename TAttribute< AttrType >::FGetter::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
151 _##AttrName.BindRaw( InUserObject, InFunc, Vars... ); \
152 return static_cast<WidgetArgsType*>(this)->Me(); \
156 template< class UserClass, typename... VarTypes > \
157 WidgetArgsType& AttrName( TSharedRef< UserClass > InUserObjectRef, typename TAttribute< AttrType >::FGetter::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
159 _##AttrName.Bind( InUserObjectRef, InFunc, Vars... ); \
160 return static_cast<WidgetArgsType*>(this)->Me(); \
164 template< class UserClass, typename... VarTypes > \
165 WidgetArgsType& AttrName( UserClass* InUserObject, typename TAttribute< AttrType >::FGetter::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
167 _##AttrName.Bind( InUserObject, InFunc, Vars... ); \
168 return static_cast<WidgetArgsType*>(this)->Me(); \
172 template< class UserClass, typename... VarTypes > \
173 WidgetArgsType& AttrName##_UObject( UserClass* InUserObject, typename TAttribute< AttrType >::FGetter::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
175 _##AttrName.BindUObject( InUserObject, InFunc, Vars... ); \
176 return static_cast<WidgetArgsType*>(this)->Me(); \
179#define SLATE_PRIVATE_ARGUMENT_VARIABLE( ArgType, ArgName ) \
183#define SLATE_PRIVATE_ARGUMENT_FUNCTION( ArgType, ArgName ) \
184 WidgetArgsType& ArgName( ArgType InArg ) \
186 _##ArgName = InArg; \
187 return static_cast<WidgetArgsType*>(this)->Me(); \
194#define SLATE_ATTRIBUTE( AttrType, AttrName ) \
195 SLATE_PRIVATE_ATTRIBUTE_VARIABLE( AttrType, AttrName ); \
196 SLATE_PRIVATE_ATTRIBUTE_FUNCTION( AttrType, AttrName )
201#define SLATE_ATTRIBUTE_DEPRECATED( AttrType, AttrName, DeprecationVersion, DeprecationMessage) \
202 SLATE_PRIVATE_ATTRIBUTE_VARIABLE( AttrType, AttrName ); \
203 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
204 SLATE_PRIVATE_ATTRIBUTE_FUNCTION( AttrType, AttrName )
210#define SLATE_ARGUMENT( ArgType, ArgName ) \
211 SLATE_PRIVATE_ARGUMENT_VARIABLE( ArgType, ArgName ); \
212 SLATE_PRIVATE_ARGUMENT_FUNCTION ( ArgType, ArgName )
217#define SLATE_ARGUMENT_DEPRECATED( ArgType, ArgName, DeprecationVersion, DeprecationMessage) \
218 SLATE_PRIVATE_ARGUMENT_VARIABLE( ArgType, ArgName ); \
219 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
220 SLATE_PRIVATE_ARGUMENT_FUNCTION ( ArgType, ArgName )
227#define SLATE_ARGUMENT_DEFAULT( ArgType, ArgName ) \
228 SLATE_PRIVATE_ARGUMENT_FUNCTION(ArgType, ArgName) \
229 SLATE_PRIVATE_ARGUMENT_VARIABLE(ArgType, ArgName)
231#define SLATE_PRIVATE_STYLE_ARGUMENT_VARIABLE( ArgType, ArgName ) \
232 const ArgType* _##ArgName; \
234#define SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_ARGTYPE_PTR( ArgType, ArgName ) \
235 WidgetArgsType& ArgName( const ArgType* InArg ) \
237 _##ArgName = InArg; \
238 return static_cast<WidgetArgsType*>(this)->Me(); \
240#define SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_WIDGETSTYLE_PTR( ArgType, ArgName ) \
241 WidgetArgsType& ArgName( const class USlateWidgetStyleAsset* const InSlateStyleAsset ) \
243 _##ArgName = InSlateStyleAsset->GetStyleChecked< ArgType >(); \
244 return static_cast<WidgetArgsType*>(this)->Me(); \
246#define SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_WIDGETSTYLE_WEAKPTR( ArgType, ArgName ) \
247 WidgetArgsType& ArgName( const TWeakObjectPtr< const class USlateWidgetStyleAsset >& InSlateStyleAsset ) \
249 _##ArgName = InSlateStyleAsset.Get()->GetStyleChecked< ArgType >(); \
250 return static_cast<WidgetArgsType*>(this)->Me(); \
252#define SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_PTR( ArgType, ArgName ) \
253 WidgetArgsType& ArgName( const class ISlateStyle* InSlateStyle, const FName& StyleName, const ANSICHAR* Specifier = nullptr ) \
255 check( InSlateStyle != nullptr ); \
256 _##ArgName = &InSlateStyle->GetWidgetStyle< ArgType >( StyleName, Specifier ); \
257 return static_cast<WidgetArgsType*>(this)->Me(); \
259#define SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_REF( ArgType, ArgName ) \
260 WidgetArgsType& ArgName( const class ISlateStyle& InSlateStyle, const FName& StyleName, const ANSICHAR* Specifier = nullptr ) \
262 _##ArgName = &InSlateStyle.GetWidgetStyle< ArgType >( StyleName, Specifier ); \
263 return static_cast<WidgetArgsType*>(this)->Me(); \
265#define SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_WEAKPTR( ArgType, ArgName ) \
266 WidgetArgsType& ArgName( const TWeakObjectPtr< const class ISlateStyle >& InSlateStyle, const FName& StyleName, const ANSICHAR* Specifier = nullptr ) \
268 _##ArgName = &InSlateStyle.Get()->GetWidgetStyle< ArgType >( StyleName, Specifier ); \
269 return static_cast<WidgetArgsType*>(this)->Me(); \
271#define SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_SHAREDPTR( ArgType, ArgName ) \
272 WidgetArgsType& ArgName( const TSharedPtr< const class ISlateStyle >& InSlateStyle, const FName& StyleName, const ANSICHAR* Specifier = nullptr ) \
274 _##ArgName = &InSlateStyle->GetWidgetStyle< ArgType >( StyleName, Specifier ); \
275 return static_cast<WidgetArgsType*>(this)->Me(); \
282#define SLATE_STYLE_ARGUMENT( ArgType, ArgName ) \
283 SLATE_PRIVATE_STYLE_ARGUMENT_VARIABLE( ArgType, ArgName ); \
284 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_ARGTYPE_PTR( ArgType, ArgName ) \
285 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_WIDGETSTYLE_PTR( ArgType, ArgName ) \
286 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_WIDGETSTYLE_WEAKPTR( ArgType, ArgName ) \
287 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_PTR( ArgType, ArgName ) \
288 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_REF( ArgType, ArgName ) \
289 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_WEAKPTR( ArgType, ArgName ) \
290 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_SHAREDPTR( ArgType, ArgName )
295#define SLATE_STYLE_ARGUMENT_DEPRECATED( ArgType, ArgName, DeprecationVersion, DeprecationMessage) \
296 SLATE_PRIVATE_STYLE_ARGUMENT_VARIABLE( ArgType, ArgName ); \
297 PRAGMA_DISABLE_DEPRECATION_WARNINGS\
298 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
299 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_ARGTYPE_PTR( ArgType, ArgName ) \
300 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
301 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_WIDGETSTYLE_PTR( ArgType, ArgName ) \
302 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
303 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_WIDGETSTYLE_WEAKPTR( ArgType, ArgName ) \
304 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
305 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_PTR( ArgType, ArgName ) \
306 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
307 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_REF( ArgType, ArgName ) \
308 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
309 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_WEAKPTR( ArgType, ArgName ) \
310 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
311 SLATE_PRIVATE_STYLE_ARGUMENT_FUNCTION_SLATESTYLE_SHAREDPTR( ArgType, ArgName )\
312 PRAGMA_ENABLE_DEPRECATION_WARNINGS
318#define SLATE_SUPPORTS_SLOT( SlotType ) \
319 UE_DEPRECATED(5.0, "SLATE_SUPPORTS_SLOT is deprecated. Use SLATE_SLOT_ARGUMENT") \
320 TArray< SlotType* > Slots; \
321 WidgetArgsType& operator + (SlotType& SlotToAdd) \
323 Slots.Add( &SlotToAdd ); \
324 return static_cast<WidgetArgsType*>(this)->Me(); \
332#define SLATE_SUPPORTS_SLOT_WITH_ARGS( SlotType ) \
333 TArray< SlotType* > Slots; \
334 WidgetArgsType& operator + (const typename SlotType::FArguments& ArgumentsForNewSlot) \
336 Slots.Add( new SlotType( ArgumentsForNewSlot ) ); \
337 return static_cast<WidgetArgsType*>(this)->Me(); \
341#define SLATE_PRIVATE_SLOT_BEGIN_ARGS( SlotType, SlotParentType ) \
343 using WidgetArgsType = SlotType::FSlotArguments; \
344 using SlotParentType::FSlotArguments::FSlotArguments;
350#define SLATE_SLOT_ARGUMENT( SlotType, SlotName ) \
351 TArray<typename SlotType::FSlotArguments> _##SlotName; \
352 WidgetArgsType& operator + (typename SlotType::FSlotArguments& SlotToAdd) \
354 _##SlotName.Add( MoveTemp(SlotToAdd) ); \
355 return static_cast<WidgetArgsType*>(this)->Me(); \
357 WidgetArgsType& operator + (typename SlotType::FSlotArguments&& SlotToAdd) \
359 _##SlotName.Add( MoveTemp(SlotToAdd) ); \
360 return static_cast<WidgetArgsType*>(this)->Me(); \
363#define SLATE_SLOT_BEGIN_ARGS( SlotType, SlotParentType ) \
365 struct FSlotArguments : public SlotParentType::FSlotArguments \
366 SLATE_PRIVATE_SLOT_BEGIN_ARGS( SlotType, SlotParentType )
368#define SLATE_SLOT_BEGIN_ARGS_OneMixin( SlotType, SlotParentType, Mixin1 ) \
370 struct FSlotArguments : public SlotParentType::FSlotArguments, public Mixin1::FSlotArgumentsMixin \
371 SLATE_PRIVATE_SLOT_BEGIN_ARGS( SlotType, SlotParentType )
373#define SLATE_SLOT_BEGIN_ARGS_TwoMixins( SlotType, SlotParentType, Mixin1, Mixin2 ) \
375 struct FSlotArguments : public SlotParentType::FSlotArguments, public Mixin1::FSlotArgumentsMixin, public Mixin2::FSlotArgumentsMixin \
376 SLATE_PRIVATE_SLOT_BEGIN_ARGS( SlotType, SlotParentType )
378#define SLATE_SLOT_BEGIN_ARGS_ThreeMixins( SlotType, SlotParentType, Mixin1, Mixin2, Mixin3 ) \
380 struct FSlotArguments : public SlotParentType::FSlotArguments, public Mixin1::FSlotArgumentsMixin, public Mixin2::FSlotArgumentsMixin, public Mixin3::FSlotArgumentsMixin \
381 SLATE_PRIVATE_SLOT_BEGIN_ARGS( SlotType, SlotParentType )
383#define SLATE_SLOT_BEGIN_ARGS_FourMixins( SlotType, SlotParentType, Mixin1, Mixin2, Mixin3, Mixin4 ) \
385 struct FSlotArguments : public SlotParentType::FSlotArguments, public Mixin1::FSlotArgumentsMixin, public Mixin2::FSlotArgumentsMixin, public Mixin3::FSlotArgumentsMixin, public Mixin4::FSlotArgumentsMixin \
386 SLATE_PRIVATE_SLOT_BEGIN_ARGS( SlotType, SlotParentType )
388#define SLATE_SLOT_END_ARGS() \
414template<
class DeclarationType>
439#define SLATE_NAMED_SLOT( DeclarationType, SlotName ) \
440 NamedSlotProperty< DeclarationType > SlotName() \
442 return NamedSlotProperty< DeclarationType >( *this, _##SlotName ); \
444 TAlwaysValidWidget _##SlotName; \
446#define SLATE_DEFAULT_SLOT( DeclarationType, SlotName ) \
447 SLATE_NAMED_SLOT(DeclarationType, SlotName) ; \
448 DeclarationType & operator[]( const TSharedRef<SWidget>& InChild ) \
450 _##SlotName.Widget = InChild; \
451 return static_cast<WidgetArgsType*>(this)->Me(); \
460#define SLATE_EVENT( DelegateName, EventName ) \
461 WidgetArgsType& EventName( const DelegateName& InDelegate ) \
463 _##EventName = InDelegate; \
464 return static_cast<WidgetArgsType*>(this)->Me(); \
467 WidgetArgsType& EventName( DelegateName&& InDelegate ) \
469 _##EventName = MoveTemp(InDelegate); \
470 return static_cast<WidgetArgsType*>(this)->Me(); \
475 template< typename StaticFuncPtr, typename... VarTypes > \
476 WidgetArgsType& EventName##_Static( StaticFuncPtr InFunc, VarTypes... Vars ) \
478 _##EventName.BindStatic( InFunc, Vars... ); \
479 return static_cast<WidgetArgsType*>(this)->Me(); \
484 template<typename FunctorType, typename... VarTypes> \
485 WidgetArgsType& EventName##_Lambda(FunctorType&& InFunctor, VarTypes... Vars) \
487 _##EventName.BindLambda( Forward<FunctorType>(InFunctor), Vars... ); \
488 return static_cast<WidgetArgsType*>(this)->Me(); \
492 template< class UserClass, typename... VarTypes > \
493 WidgetArgsType& EventName##_Raw( UserClass* InUserObject, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
495 _##EventName.BindRaw( InUserObject, InFunc, Vars... ); \
496 return static_cast<WidgetArgsType*>(this)->Me(); \
498 template< class UserClass, typename... VarTypes > \
499 WidgetArgsType& EventName##_Raw( UserClass* InUserObject, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
501 _##EventName.BindRaw( InUserObject, InFunc, Vars... ); \
502 return static_cast<WidgetArgsType*>(this)->Me(); \
506 template< class UserClass, typename... VarTypes > \
507 WidgetArgsType& EventName( TSharedRef< UserClass > InUserObjectRef, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
509 _##EventName.BindSP( InUserObjectRef, InFunc, Vars... ); \
510 return static_cast<WidgetArgsType*>(this)->Me(); \
512 template< class UserClass, typename... VarTypes > \
513 WidgetArgsType& EventName( TSharedRef< UserClass > InUserObjectRef, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
515 _##EventName.BindSP( InUserObjectRef, InFunc, Vars... ); \
516 return static_cast<WidgetArgsType*>(this)->Me(); \
520 template< class UserClass, typename... VarTypes > \
521 WidgetArgsType& EventName( UserClass* InUserObject, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
523 _##EventName.BindSP( InUserObject, InFunc, Vars... ); \
524 return static_cast<WidgetArgsType*>(this)->Me(); \
526 template< class UserClass, typename... VarTypes > \
527 WidgetArgsType& EventName( UserClass* InUserObject, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
529 _##EventName.BindSP( InUserObject, InFunc, Vars... ); \
530 return static_cast<WidgetArgsType*>(this)->Me(); \
534 template< class UserClass, typename... VarTypes > \
535 WidgetArgsType& EventName##_UObject( UserClass* InUserObject, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
537 _##EventName.BindUObject( InUserObject, InFunc, Vars... ); \
538 return static_cast<WidgetArgsType*>(this)->Me(); \
540 template< class UserClass, typename... VarTypes > \
541 WidgetArgsType& EventName##_UObject( UserClass* InUserObject, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
543 _##EventName.BindUObject( InUserObject, InFunc, Vars... ); \
544 return static_cast<WidgetArgsType*>(this)->Me(); \
547 DelegateName _##EventName; \
549#define SLATE_EVENT_DEPRECATED( DeprecationVersion, DeprecationMessage, DelegateName, EventName, UpgradedEventName, UpgradeFuncName) \
550 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
551 WidgetArgsType& EventName( const DelegateName& InDeprecatedDelegate ) \
553 if (InDeprecatedDelegate.IsBound()) \
555 _##UpgradedEventName = UpgradeFuncName(InDeprecatedDelegate); \
557 return static_cast<WidgetArgsType*>(this)->Me(); \
560 template <typename StaticFuncPtr, typename... VarTypes> \
561 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
562 WidgetArgsType& EventName##_Static( StaticFuncPtr InFunc, VarTypes... Vars ) \
566 DelegateName DeprecatedDelegate = DelegateName::CreateStatic(InFunc, Vars...); \
567 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
569 return static_cast<WidgetArgsType*>(this)->Me(); \
572 template <typename FunctorType, typename... VarTypes> \
573 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
574 WidgetArgsType& EventName##_Lambda(FunctorType&& InFunctor, VarTypes... Vars) \
576 DelegateName DeprecatedDelegate = DelegateName::CreateLambda(Forward<FunctorType>(InFunctor), Vars...); \
577 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
578 return static_cast<WidgetArgsType*>(this)->Me(); \
581 template <typename UserClass, typename... VarTypes> \
582 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
583 WidgetArgsType& EventName##_Raw( UserClass* InUserObject, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
585 DelegateName DeprecatedDelegate = DelegateName::CreateRaw(InUserObject, InFunc, Vars...); \
586 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
587 return static_cast<WidgetArgsType*>(this)->Me(); \
590 template <typename UserClass, typename... VarTypes> \
591 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
592 WidgetArgsType& EventName##_Raw( UserClass* InUserObject, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
594 DelegateName DeprecatedDelegate = DelegateName::CreateRaw(InUserObject, InFunc, Vars...); \
595 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
596 return static_cast<WidgetArgsType*>(this)->Me(); \
599 template <typename UserClass, typename... VarTypes> \
600 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
601 WidgetArgsType& EventName( TSharedRef< UserClass > InUserObjectRef, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
603 DelegateName DeprecatedDelegate = DelegateName::CreateSP(InUserObjectRef, InFunc, Vars...); \
604 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
605 return static_cast<WidgetArgsType*>(this)->Me(); \
608 template <typename UserClass, typename... VarTypes> \
609 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
610 WidgetArgsType& EventName( TSharedRef< UserClass > InUserObjectRef, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
612 DelegateName DeprecatedDelegate = DelegateName::CreateSP(InUserObjectRef, InFunc, Vars...); \
613 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
614 return static_cast<WidgetArgsType*>(this)->Me(); \
617 template <typename UserClass, typename... VarTypes> \
618 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
619 WidgetArgsType& EventName( UserClass* InUserObject, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
621 DelegateName DeprecatedDelegate = DelegateName::CreateSP(InUserObject, InFunc, Vars...); \
622 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
623 return static_cast<WidgetArgsType*>(this)->Me(); \
626 template <typename UserClass, typename... VarTypes> \
627 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
628 WidgetArgsType& EventName( UserClass* InUserObject, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
630 DelegateName DeprecatedDelegate = DelegateName::CreateSP(InUserObject, InFunc, Vars...); \
631 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
632 return static_cast<WidgetArgsType*>(this)->Me(); \
635 template <typename UserClass, typename... VarTypes> \
636 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
637 WidgetArgsType& EventName##_UObject( UserClass* InUserObject, typename DelegateName::template TMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
639 DelegateName DeprecatedDelegate = DelegateName::CreateUObject(InUserObject, InFunc, Vars...); \
640 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
641 return static_cast<WidgetArgsType*>(this)->Me(); \
644 template <typename UserClass, typename... VarTypes> \
645 UE_DEPRECATED(DeprecationVersion, DeprecationMessage) \
646 WidgetArgsType& EventName##_UObject( UserClass* InUserObject, typename DelegateName::template TConstMethodPtr< UserClass, VarTypes... > InFunc, VarTypes... Vars ) \
648 DelegateName DeprecatedDelegate = DelegateName::CreateUObject(InUserObject, InFunc, Vars...); \
649 _##UpgradedEventName = UpgradeFuncName(DeprecatedDelegate); \
650 return static_cast<WidgetArgsType*>(this)->Me(); \
682template<
typename InW
idgetType>
718 template<
typename MetaDataType,
typename Arg0Type>
726 template<
typename MetaDataType,
typename Arg0Type,
typename Arg1Type>
742 template<
class W
idgetType>
750 template<
typename Arg0Type>
758 template<
class W
idgetType>
768 template<
typename Arg0Type,
typename Arg1Type>
777 template<
class W
idgetType>
788 template<
typename Arg0Type,
typename Arg1Type,
typename Arg2Type>
798 template<
class W
idgetType>
810 template<
typename Arg0Type,
typename Arg1Type,
typename Arg2Type,
typename Arg3Type>
821 template<
class W
idgetType>
834 template<
typename Arg0Type,
typename Arg1Type,
typename Arg2Type,
typename Arg3Type,
typename Arg4Type>
846 template<
class W
idgetType>
862 return T0RequiredArgs();
865 template<
typename Arg0Type>
871 template<
typename Arg0Type,
typename Arg1Type>
877 template<
typename Arg0Type,
typename Arg1Type,
typename Arg2Type>
883 template<
typename Arg0Type,
typename Arg1Type,
typename Arg2Type,
typename Arg3Type>
889 template<
typename Arg0Type,
typename Arg1Type,
typename Arg2Type,
typename Arg3Type,
typename Arg4Type>
906template<
class W
idgetType,
typename RequiredArgsPayloadType>
912 if constexpr (std::is_base_of_v<SUserWidget, WidgetType>)
929#if UE_SLATE_WITH_DYNAMIC_INVALIDATION
938 template<
class ExposeAsW
idgetType>
950 template<
class ExposeAsW
idgetType>
962 template<
class ExposeAsW
idgetType>
979 _Widget->SWidgetConstruct(InArgs);
982 _Widget->bIsDeclarativeSyntaxConstructionCompleted =
true;
992template<
typename W
idgetType,
typename RequiredArgsPayloadType>
EWidgetClipping
Definition Clipping.h:20
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
TSlateDecl< WidgetType, RequiredArgsPayloadType > MakeTDecl(const ANSICHAR *InType, const ANSICHAR *InFile, int32 OnLine, RequiredArgsPayloadType &&InRequiredArgs)
Definition DeclarativeSyntaxSupport.h:990
#define SLATE_PRIVATE_ATTRIBUTE_FUNCTION(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:123
#define SLATE_PRIVATE_ATTRIBUTE_VARIABLE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:120
#define SLATE_PRIVATE_ARGUMENT_VARIABLE(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:177
#define SLATE_PRIVATE_ARGUMENT_FUNCTION(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:181
EFlowDirectionPreference
Definition FlowDirection.h:30
#define LLM_SCOPE_BYTAG(...)
Definition LowLevelMemTracker.h:1099
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition NameTypes.h:617
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT TWeakPtr< ObjectType, Mode > ToWeakPtr() const
Definition SharedPointer.h:1055
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
TSharedRef< ObjectType, Mode > ToSharedRef() const &
Definition SharedPointer.h:1028
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition DeclarativeSyntaxSupport.h:732
FORCEINLINE T0RequiredArgs MakeRequiredArgs()
Definition DeclarativeSyntaxSupport.h:857
Definition Visibility.h:12
static SLATECORE_API const EVisibility Visible
Definition Visibility.h:14
Definition DeclarativeSyntaxSupport.h:654
TArray< TSharedRef< ISlateMetaData > > MetaData
Definition DeclarativeSyntaxSupport.h:674
SLATE_PRIVATE_ARGUMENT_VARIABLE(EWidgetClipping, Clipping)
SLATE_PRIVATE_ARGUMENT_VARIABLE(float, RenderOpacity)
SLATE_PRIVATE_ATTRIBUTE_VARIABLE(EVisibility, Visibility)
SLATE_PRIVATE_ARGUMENT_VARIABLE(EFlowDirectionPreference, FlowDirectionPreference)
SLATE_PRIVATE_ATTRIBUTE_VARIABLE(FText, AccessibleText)
FSlateBaseNamedArgs()=default
SLATE_PRIVATE_ATTRIBUTE_VARIABLE(bool, IsEnabled)
SLATE_PRIVATE_ARGUMENT_VARIABLE(FName, Tag)
Definition DeclarativeSyntaxSupport.h:414
DeclarationType & operator[](const TSharedRef< SWidget > &InChild)
Definition DeclarativeSyntaxSupport.h:420
TAlwaysValidWidget & SlotContent
Definition DeclarativeSyntaxSupport.h:427
DeclarationType & OwnerDeclaration
Definition DeclarativeSyntaxSupport.h:426
Definition DeclarativeSyntaxSupport.h:734
T0RequiredArgs()
Definition DeclarativeSyntaxSupport.h:735
void CallConstruct(WidgetType *OnWidget, const typename WidgetType::FArguments &WithNamedArgs) const
Definition DeclarativeSyntaxSupport.h:740
Definition DeclarativeSyntaxSupport.h:749
Arg0Type & Arg0
Definition DeclarativeSyntaxSupport.h:762
void CallConstruct(WidgetType *OnWidget, const typename WidgetType::FArguments &WithNamedArgs) const
Definition DeclarativeSyntaxSupport.h:756
Definition DeclarativeSyntaxSupport.h:767
void CallConstruct(WidgetType *OnWidget, const typename WidgetType::FArguments &WithNamedArgs) const
Definition DeclarativeSyntaxSupport.h:775
Arg1Type & Arg1
Definition DeclarativeSyntaxSupport.h:782
Arg0Type & Arg0
Definition DeclarativeSyntaxSupport.h:781
Definition DeclarativeSyntaxSupport.h:787
Arg2Type & Arg2
Definition DeclarativeSyntaxSupport.h:804
Arg0Type & Arg0
Definition DeclarativeSyntaxSupport.h:802
void CallConstruct(WidgetType *OnWidget, const typename WidgetType::FArguments &WithNamedArgs) const
Definition DeclarativeSyntaxSupport.h:796
Arg1Type & Arg1
Definition DeclarativeSyntaxSupport.h:803
Definition DeclarativeSyntaxSupport.h:809
Arg1Type & Arg1
Definition DeclarativeSyntaxSupport.h:826
Arg2Type & Arg2
Definition DeclarativeSyntaxSupport.h:827
Arg0Type & Arg0
Definition DeclarativeSyntaxSupport.h:825
void CallConstruct(WidgetType *OnWidget, const typename WidgetType::FArguments &WithNamedArgs) const
Definition DeclarativeSyntaxSupport.h:819
Arg3Type & Arg3
Definition DeclarativeSyntaxSupport.h:828
Definition DeclarativeSyntaxSupport.h:833
Arg1Type & Arg1
Definition DeclarativeSyntaxSupport.h:851
void CallConstruct(WidgetType *OnWidget, const typename WidgetType::FArguments &WithNamedArgs) const
Definition DeclarativeSyntaxSupport.h:844
Arg3Type & Arg3
Definition DeclarativeSyntaxSupport.h:853
Arg2Type & Arg2
Definition DeclarativeSyntaxSupport.h:852
Arg0Type & Arg0
Definition DeclarativeSyntaxSupport.h:850
Arg4Type & Arg4
Definition DeclarativeSyntaxSupport.h:854
Definition Optional.h:131
Definition DeclarativeSyntaxSupport.h:681
WidgetArgsType & Me()
Definition DeclarativeSyntaxSupport.h:702
InWidgetType WidgetType
Definition DeclarativeSyntaxSupport.h:682
WidgetArgsType & AddMetaData(TSharedRef< ISlateMetaData > InMetaData)
Definition DeclarativeSyntaxSupport.h:708
WidgetType::FArguments WidgetArgsType
Definition DeclarativeSyntaxSupport.h:683
Definition DeclarativeSyntaxSupport.h:905
TSharedRef< WidgetType > operator<<=(const typename WidgetType::FArguments &InArgs) &&
Definition DeclarativeSyntaxSupport.h:974
RequiredArgsPayloadType & _RequiredArgs
Definition DeclarativeSyntaxSupport.h:985
TSlateDecl && Expose(TSharedPtr< ExposeAsWidgetType > &OutVarToInit) &&
Definition DeclarativeSyntaxSupport.h:936
TSharedPtr< WidgetType > _Widget
Definition DeclarativeSyntaxSupport.h:984
static CORE_API const TVector2< double > ZeroVector
Definition Vector2D.h:63