description: Append another element list to this element list.

code: void Append ( const [TTypedElementListConstRef](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementList\TTypedElementLis-_1) & InElementList )


description: Append the given element handles to this element list.

module: TypedElementFramework

code: void Append ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const HandleType > InElementHandles )


description: Append the given element owners to this element list.

code: template<typename ElementDataType> void Append ( const [TArray](API\Runtime\Core\Containers\TArray)< [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType >> & InElementOwners )


code: template<typename ElementDataType> void Append ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType >> InElementOwners )


description: Only copies elements; does not copy any bindings!


description: Does this element list contain an entry for the given element ID?

code: bool Contains ( const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InElementId ) const


description: Does this element list contain an entry for the given element handle?

code: bool Contains ( const HandleType & InElementHandle ) const


description: Does this element list contain an entry for the given element owner?

code: template<typename ElementDataType> bool Contains ( const [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > & InElementOwner )


description: Count the number of elements in this list, optionally filtering to elements that implement the given interface.

code: int32 CountElements ( const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


description: Count the number of elements in this list of the given type.

code: int32 CountElementsOfType ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName ) const


code: int32 CountElementsOfType ( const FTypedHandleTypeId InElementTypeId ) const


description: Remove all entries from this element list, potentially leaving space allocated for the given number of entries.

code: void Empty ( const int32 InSlack )


className: FHandleType

code: typedef HandleType FHandleType


className: EChangeType

code: enum EChangeType { Added, Removed, Cleared, }


code: void BeginBatchOperation&40;&41;


className: ESyncType

code: enum ESyncType { Added, Removed, Modified, Cleared, BatchComplete, }


className: FOnSyncEvent

code: class FOnSyncEvent : public TBaseMulticastDelegate_FourParams< void, const TTypedElementList &, ESyncType, const HandleType &, bool >


code: void EndBatchOperation &40; const bool InNotify &41;


code: void ForceBatchOperationDirty&40;&41;


code: FOnSyncEvent & OnSyncEvent&40;&41;


code: FLegacySync &40; const TTypedElementList & InElementList &41;


className: FLegacySync

description: Interface to allow external systems (such asUSelection) to receive immediate sync notifications as an element list is changed. This exists purely as a bridging mechanism and shouldn't be relied on for new code. It is lazily created as needed.

code: class FLegacySync


code: bool IsDirty&40;&41; const


code: void ForceDirty&40;&41;


code: FLegacySyncScopedBatch & operator&61; &40; const FLegacySyncScopedBatch & &41;


code: FLegacySyncScopedBatch & operator&61; &40; FLegacySyncScopedBatch && &41;


code: FLegacySyncScopedBatch &40; const FLegacySyncScopedBatch & &41;


code: FLegacySyncScopedBatch &40; FLegacySyncScopedBatch && &41;


code: FLegacySyncScopedBatch &40; const TTypedElementList & InElementList, const bool InNotify &41;


className: FLegacySyncScopedBatch

description: Helper to batch immediate sync notifications for legacy code. Does nothing if no legacy sync has been created for the given instance.

code: class FLegacySyncScopedBatch


className: FOnChanged

description: This is called automatically at the end of each frame, but can also be manually invoked by NotifyPendingChanges.

code: class FOnChanged : public TBaseMulticastDelegate_OneParam< void, const TTypedElementList & >


code: void Private_EmitSyncEvent &40; const ESyncType InSyncType, const HandleType & InElementHandle &41;


className: FOnPreChange

description: This may be called even if no actual change happens, so may be called multiple times without a corresponding OnChanged notification.

code: class FOnPreChange : public TBaseMulticastDelegate_OneParam< void, const TTypedElementList & >


description: Return true from the callback to continue enumeration.

code: template<typename BaseInterfaceType> void ForEachElement ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > &)> InCallback ) const


code: void ForEachElementHandle ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const HandleType &)> InCallback, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


code: FScopedClearNewPendingChange & operator&61; &40; const FScopedClearNewPendingChange & &41;


code: FScopedClearNewPendingChange & operator&61; &40; FScopedClearNewPendingChange && Other &41;


code: FScopedClearNewPendingChange &40; TTypedElementList & InTypeElementList &41;


code: FScopedClearNewPendingChange &40; const FScopedClearNewPendingChange & &41;


code: FScopedClearNewPendingChange &40; FScopedClearNewPendingChange && Other &41;


className: FScopedClearNewPendingChange

description: A utility struct that help to cancel any new pending notification that happened in a scope. Note: it won't cancel a notification if there is a legacy batch operation ongoing

code: struct FScopedClearNewPendingChange


description: Get the last element implementing the given interface.

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetBottomElement() const


description: Get the last element that implement the given interface and pass the predicate.  A function that return should true when the element is desirable

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetBottomElement ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > &)> Predicate ) const


description: Get the counter for the elements within the list.

code: const [FTypedElementCounter](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementCounter) & GetCounter() const


description: Get the element from the given handle.

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetElement ( const HandleType & InElementHandle ) const


description: Get the element from the given handle.

code: template<typename BaseInterfaceType> void GetElement ( const HandleType & InElementHandle, [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > & OutElement ) const


description: Use IsValidIndex to test for validity.

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetElementAt ( const int32 InIndex ) const


description: Use IsValidIndex to test for validity.

code: template<typename BaseInterfaceType> void GetElementAt ( const int32 InIndex, [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > & OutElement ) const


description: Use IsValidIndex to test for validity.

code: HandleType GetElementHandleAt ( const int32 InIndex ) const


description: Get the handle of every element in this list, optionally filtering to elements that implement the given interface.

code: [TArray](API\Runtime\Core\Containers\TArray)< HandleType > GetElementHandles ( const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


code: template<typename ArrayAllocator> void GetElementHandles ( [TArray](API\Runtime\Core\Containers\TArray)< HandleType, ArrayAllocator > & OutArray, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


description: Get the element interface from the given handle.

code: template<typename BaseInterfaceType> BaseInterfaceType * GetElementInterface ( const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) & InElementHandle ) const


code: [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetElementInterface ( const HandleType & InElementHandle, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


description: Get a scoped object that when destroyed it clear a pending change notification without emitting the notification if it happened during its lifecycle.


description: Get the first element implementing the given interface.

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetTopElement() const


description: Get the first element that implement the given interface and pass the predicate  A function that should return true when the element is desirable

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetTopElement ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > &)> Predicate ) const


description: Test whether there are elements in this list of the given type.

code: bool HasElementsOfType ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName ) const


description: Test whether there are elements in this list, optionally filtering to elements that implement the given interface.

code: bool HasElements ( const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


code: bool HasElementsOfType ( const FTypedHandleTypeId InElementTypeId ) const


description: Is the given index a valid entry within this element list?

code: bool IsValidIndex ( const int32 InIndex ) const


description: Access the interface to allow external systems (such asUSelection) to receive immediate sync notifications as an element list is changed. This exists purely as a bridging mechanism and shouldn't be relied on for new code. It is lazily created as needed.


description: Access the interface to allow external systems (such asUSelection) to receive immediate sync notifications as an element list is changed. This exists purely as a bridging mechanism and shouldn't be relied on for new code. This will return null if no legacy sync has been created for this instance.


description:
Invoke the delegate called whenever this element list has been changed.
true if a change notification was emitted

code: bool NotifyPendingChanges()


description: Get the number of entries within this element list.

code: int32 Num() const


description: Use IsValidIndex to test for validity.

code: HandleType operator[] ( const int32 InIndex ) const


description: Internal function used by the element registry to create an element list instance.

code: static [TTypedElementListRef](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementList\TTypedElementLis-) Private_CreateElementList ( [UTypedElementRegistry](API\Runtime\TypedElementFramework\Elements\Framework\UTypedElementRegistry) * InRegistry )


description:
Remove the given element ID from this element list, if it is in the list.
True if the element ID was removed, false if it isn't in the list.

code: bool Remove ( const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InElementId )


description:
Remove the given element owner from this element list, if it is in the list.
True if the element owner was removed, false if it isn't in the list.

code: template<typename ElementDataType> bool Remove ( const [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > & InElementOwner )


description:
Remove the given element handle from this element list, if it is in the list.
True if the element handle was removed, false if it isn't in the list.

code: bool Remove ( const HandleType & InElementHandle )


description:
Remove any element handles that match the given predicate from this element list.
The number of element handles removed.

code: int32 RemoveAll ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const HandleType &)> InPredicate )


description:
Remove any elements that match the given predicate from this element list.
The number of elements removed.

code: template<typename BaseInterfaceType> int32 RemoveAll ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > &)> InPredicate )


description: Remove all entries from this element list, preserving existing allocations.

code: void Reset()


description: Pre-allocate enough memory in this element list to store the given number of entries.

code: void Reserve ( const int32 InSize )


className: TTypedElementListRef


description: Shrink this element list storage to avoid slack.

code: void Shrink()


className: TTypedElementListConstRef

code: typedef [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< const [TTypedElementList](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementList) > TTypedElementListConstRef


code: ~TTypedElementList()


className: TTypedElementList

description: No constructors are accessible with public or protected access.

code: template<class HandleType> class TTypedElementList : public [TSharedFromThis< TTypedElementList< HandleType > >](API\Runtime\Core\Templates\TSharedFromThis)


code: ElementOwnerType * operator->() const


code: operator bool() const


code: [TTypedElementOwnerScopedAccessImpl](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwn-) & operator= ( [TTypedElementOwnerScopedAccessImpl](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwn-) && )


code: [TTypedElementOwnerScopedAccessImpl](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwn-) & operator= ( const [TTypedElementOwnerScopedAccessImpl](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwn-) & )


code: ElementOwnerType & operator*() const


code: void Private_SetElementOwner ( ElementOwnerType * InElementOwner )


code: TTypedElementOwnerScopedAccessImpl ( FCriticalSection * InSynchObject )


code: TTypedElementOwnerScopedAccessImpl ( [TTypedElementOwnerScopedAccessImpl](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwn-) && InOther )


code: TTypedElementOwnerScopedAccessImpl ( const [TTypedElementOwnerScopedAccessImpl](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwn-) & )


description: This must be paired with a call to ReleaseHandle (or a call to Release on the handle instance).


description: This must be paired with a call to ReleaseId.


description: Attempt to access the mutable data stored within this owner, asserting if it isn't possible.

code: template<typename U, std::enable_if_t<!std::is_void< U >::value > *> U & GetDataChecked() const


description: Get the ID that this element represents.

code: const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & GetId() const


description: Attempt to access the mutable data stored within this owner, returning null if it isn't possible.

code: template<typename U, std::enable_if_t<!std::is_void< U >::value > *> U * GetData() const


code: ~TTypedElementOwnerScopedAccessImpl()


className: TTypedElementOwnerScopedAccessImpl

description: Type to keep a lock on theTTypedElementOwnerStorefor the duration of time that aTTypedElementOwneris being externally referenced. This avoids invalid memory access if the map is reallocated.

code: template<typename ElementOwnerType> struct TTypedElementOwnerScopedAccessImpl


className: TTypedElementOwner::operator bool


code: [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner) & operator= ( [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner) && InOther )


code: [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner) & operator= ( const [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner) & )


code: void Private_DestroyNoRef()


code: void Private_DestroyReleaseRef()


description: Has this owner been initialized to a valid element?

code: bool IsSet() const


code: const [TTypedElementInternalData](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementInternalData)< ElementDataType > * Private_GetInternalData() const


code: void Private_InitializeNoRef ( [TTypedElementInternalData](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementInternalData)< ElementDataType > & InData )


code: void Private_InitializeAddRef ( [TTypedElementInternalData](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementInternalData)< ElementDataType > & InData )


description: This should have come from a call to AcquireHandle.

code: void ReleaseHandle ( [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) & InOutElementHandle ) const


description: This should have come from a call to AcquireId.

code: void ReleaseId ( [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InOutElementId ) const


code: TTypedElementOwner ( const [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner) & )


code: TTypedElementOwner()


code: TTypedElementOwner ( [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner) && InOther )


code: ~TTypedElementOwner()


className: TTypedElementOwner

description: Owners do not auto-release on destruction, and must be manually destroyed via their owner element registry.

code: template<typename ElementDataType> struct TTypedElementOwner


description: Test to see whether the store has an entry for the given element owner.

code: bool ContainsElementOwner ( const KeyDataType & InKey ) const


description: This will lock the store for writes until the scoped access struct is no longer being used. The returned struct may be unset if the key was not registered.

code: TTypedElementOwnerScopedAccess< ElementDataType > FindElementOwner ( const KeyDataType & InKey ) const


code: TTypedElementOwnerScopedMutableAccess< ElementDataType > FindMutableElementOwner ( const KeyDataType & InKey )


description: This must be paired with a call to UnregisterElementOwner if a new element owner is created.

code: TTypedElementOwnerScopedAccess< ElementDataType > FindOrRegisterElementOwner ( const KeyDataType & InKey, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType >()> InCreateElement )


description: This must be paired with a call to UnregisterElementOwner.

code: TTypedElementOwnerScopedAccess< ElementDataType > RegisterElementOwner ( const KeyDataType & InKey, [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > && InElementOwner )


description: The returned owner may be unset if the key was not registered.

code: [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > UnregisterElementOwner ( const KeyDataType & InKey )


code: TTypedElementOwnerStore()


description: Unregister any given element owners that match the given predicate, transferring ownership of the owner instance to the given callback.

code: void UnregisterElementOwners ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > &)> InShouldUnregisterElement, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void([TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > &&)> InOnUnregisterElement )


code: ~TTypedElementOwnerStore()


className: TTypedElementOwnerStore

description: A store of element owners tied to their corresponding owner instance. This can be used to track element owners for an instance without having to add new data to the type itself.

code: template<typename ElementDataType, typename KeyDataType> struct TTypedElementOwnerStore


code: void IncrementCountersForElement &40; FTypedElementCounter & InOutCounter &41; const


code: void DecrementCountersForElement &40; FTypedElementCounter & InOutCounter &41; const


code: template<> struct TTypedElement< ITypedElementCounterInterface > : public [TTypedElementBase< ITypedElementCounterInterface >](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementBase)


code: namespace TypedElementList_Private { template<typename BaseInterfaceType, class HandleType> void TypedElementList_Private::GetElement ( const [UTypedElementRegistry](API\Runtime\TypedElementFramework\Elements\Framework\UTypedElementRegistry) * InRegistry, const HandleType & InElementHandle, [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > & OutElement ) }


code: namespace TypedElementList_Private { template<typename BaseInterfaceType, class HandleType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > TypedElementList_Private::GetElement ( const [UTypedElementRegistry](API\Runtime\TypedElementFramework\Elements\Framework\UTypedElementRegistry) * InRegistry, const HandleType & InElementHandle ) }


description: External query bindings

code: namespace TypedElementQueryBuilder { template<typename Function> [TypedElementDataStorage::DirectQueryCallback](API\Runtime\TypedElementFramework\Elements\Common\DirectQueryCallback) TypedElementQueryBuilder::CreateDirectQueryCallbackBinding ( Function && Callback ) }


description: External query bindings

code: namespace TypedElementQueryBuilder { template<typename Function> [ITypedElementDataStorageInterface::DirectQueryCallback](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1\DirectQueryCallb-) TypedElementQueryBuilder::CreateDirectQueryCallbackBinding ( Function && Callback ) }


code: namespace TypedElementQueryBuilder { template<typename Function> [ITypedElementDataStorageInterface::DirectQueryCallback](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1\DirectQueryCallb-) TypedElementQueryBuilder::CreateSubqueryCallbackBinding ( Function && Callback ) }


code: namespace TypedElementQueryBuilder { template<typename Function> [TypedElementDataStorage::DirectQueryCallback](API\Runtime\TypedElementFramework\Elements\Common\DirectQueryCallback) TypedElementQueryBuilder::CreateSubqueryCallbackBinding ( Function && Callback ) }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, bool ValidateColumns, typename... Args> void TypedElementQueryBuilder::Internal::BindQueryFunction ( [TypedElementDataStorage::QueryCallback](API\Runtime\TypedElementFramework\Elements\Common\QueryCallback) & Function, void(*)(Args...) Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, bool ValidateColumns, typename Functor> void TypedElementQueryBuilder::Internal::BindQueryFunction ( [TypedElementDataStorage::QueryCallback](API\Runtime\TypedElementFramework\Elements\Common\QueryCallback) & Function, Functor && Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, bool ValidateColumns, typename Functor, typename Class, typename... Args> void TypedElementQueryBuilder::Internal::BindQueryFunction_Expand ( [TypedElementDataStorage::QueryCallback](API\Runtime\TypedElementFramework\Elements\Common\QueryCallback) & Function, Functor && CallbackObject, void(Class::*)(Args...) const Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<bool ValidateColumns, SourceQueryContext SourceContext, typename Functor> void TypedElementQueryBuilder::Internal::CallQueryFunction ( const [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Description, SourceContext & Context, const Functor & Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, bool ValidateColumns, typename Class, typename... Args> void TypedElementQueryBuilder::Internal::BindQueryFunction ( [TypedElementDataStorage::QueryCallback](API\Runtime\TypedElementFramework\Elements\Common\QueryCallback) & Function, Class * Target, void(Class::*)(Args...) Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<bool ValidateColumns, SourceQueryContext SourceContext, typename... Args> void TypedElementQueryBuilder::Internal::CallQueryFunction ( const [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Description, SourceContext & Context, [TypedElementDataStorage::QueryCallback](API\Runtime\TypedElementFramework\Elements\Common\QueryCallback) & Function, void(*)(Args...) Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<bool ValidateColumns, SourceQueryContext SourceContext, typename Class, typename... Args> void TypedElementQueryBuilder::Internal::CallQueryFunction ( const [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Description, SourceContext & Context, Class * Target, void(Class::*)(Args...) Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename Arg> void TypedElementQueryBuilder::Internal::AddColumnToSelect ( [Select](API\Runtime\TypedElementFramework\Elements\Framework\Select) & Target ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<bool ValidateColumns, SourceQueryContext SourceContext, typename Functor, typename Class, typename... Args> void TypedElementQueryBuilder::Internal::CallQueryFunction_Expand ( const [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Description, SourceContext & Context, const Functor & CallbackObject, void(Class::*)(Args...) const Callback ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename ContextType> void TypedElementQueryBuilder::Internal::RegisterDependencies ( [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, typename... Args> void TypedElementQueryBuilder::Internal::RegisterFunctionArguments ( [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query, [Select](API\Runtime\TypedElementFramework\Elements\Framework\Select) & Target, void(*)(Args...) ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, typename Class, typename... Args> void TypedElementQueryBuilder::Internal::RegisterFunctionArguments ( [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query, [Select](API\Runtime\TypedElementFramework\Elements\Framework\Select) & Target, void(Class::*)(Args...) ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, typename Functor> void TypedElementQueryBuilder::Internal::RegisterFunctionArguments ( [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query, [Select](API\Runtime\TypedElementFramework\Elements\Framework\Select) & Target, Functor ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<SourceQueryContext SourceContext, typename T> constexpr bool TypedElementQueryBuilder::Internal::IsValidSelectFunctionSignature() } }


code: namespace TypedElementQueryBuilder { namespace Internal { void TypedElementQueryBuilder::Internal::PrepareForQueryBinding ( [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query, const [FProcessor](API\Runtime\TypedElementFramework\Elements\Framework\FProcessor) & Processor ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { void TypedElementQueryBuilder::Internal::PrepareForQueryBinding ( [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query, const [FPhaseAmble](API\Runtime\TypedElementFramework\Elements\Framework\FPhaseAmble) & PhaseAmble ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { void TypedElementQueryBuilder::Internal::PrepareForQueryBinding ( [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query, const [FObserver](API\Runtime\TypedElementFramework\Elements\Framework\FObserver) & Observer ) } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename CallbackType, typename Function> void TypedElementQueryBuilder::Internal::PrepareForQueryBinding ( [Select](API\Runtime\TypedElementFramework\Elements\Framework\Select) & Target, [TypedElementDataStorage::FQueryDescription](API\Runtime\TypedElementFramework\Elements\Common\FQueryDescription) & Query, [FName](API\Runtime\Core\UObject\FName) Name, const CallbackType & Type, Function Callback ) } }


description: This assumes that the types are unique, but for queries this should be true and otherwise both results would point to the first found index.

code: namespace TypedElementQueryBuilder { namespace Internal { template<typename Target, typename ArgsCurrent, typename... ArgsRemainder> constexpr uint32 TypedElementQueryBuilder::Internal::GetVarArgIndex() } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename Type> constexpr [TypedElementDataStorage::EQueryAccessType](API\Runtime\TypedElementFramework\Elements\Common\TypedElementData-_3) TypedElementQueryBuilder::Internal::GetAccessType() } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename... Columns> constexpr bool TypedElementQueryBuilder::Internal::AreAllColumnsReferences() } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename Type> constexpr [TypedElementDataStorage::EQueryDependencyFlags](API\Runtime\TypedElementFramework\Elements\Common\TypedElementData-_4) TypedElementQueryBuilder::Internal::GetDependencyFlags() } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename... Columns> constexpr bool TypedElementQueryBuilder::Internal::AreAllColumnsPointers() } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename Column> constexpr bool TypedElementQueryBuilder::Internal::IsValidColumnType() } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename Column> const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * TypedElementQueryBuilder::Internal::GetColumnType() } }


code: namespace TypedElementQueryBuilder { namespace Internal { template<typename RowType, typename... Columns> constexpr bool TypedElementQueryBuilder::Internal::IsRowTypeCompatibleWithColumns() } }


description: Utility function for SetColumnValue that automatically detects the type of the column.

code: namespace TypedElement { namespace ColumnUtils { template<typename ColumnType> void TypedElement::ColumnUtils::SetColumnValue ( ColumnType & Column, [FName](API\Runtime\Core\UObject\FName) ArgumentName, const [FString](API\Runtime\Core\Containers\FString) & ArgumentValue ) } }


description: Utility function for SetColumnValues that automatically detects the type of the column.

code: namespace TypedElement { namespace ColumnUtils { template<typename ColumnType> void TypedElement::ColumnUtils::SetColumnValues ( ColumnType & Column, TConstArrayView< [Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments ) } }


className: UndecoratedColumnType

code: typedef std::remove_cv_t< [BaseColumnType](API\Runtime\TypedElementFramework\Elements\Framework\BaseColumnType)< Column >> UndecoratedColumnType


className: UTypedElementCounterInterface

code: class UTypedElementCounterInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description: Are these two handles equal?

code: static bool Equal ( const [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) & LHS, const [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) & RHS )


description: Has this handle been initialized to a valid element?

code: static bool IsSet ( const [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) & ElementHandle )


description: Are these two handles not equal?

code: static bool NotEqual ( const [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) & LHS, const [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) & RHS )


description: Release this handle and set it back to an empty state.

code: static void Release ( [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) & ElementHandle )


className: UTypedElementHandleLibrary

description: Script exposure forFScriptTypedElementHandle.

code: class UTypedElementHandleLibrary : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


code: static void AddReferencedObjects ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * InThis, [FReferenceCollector](API\Runtime\CoreUObject\UObject\FReferenceCollector) & Collector )


description: Allocation of the payload data and the associated handle ID are managed internally, and the data will remain valid until DestroyElementHandle is called on this handle.

code: template<typename ElementDataType> [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > CreateElement ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName )


description: The associated handle ID should be something that can externally be used to uniquely identify this element, until DestroyElementHandle is called on this handle.

code: FTypedElementOwner CreateElement ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName, const FTypedHandleElementId InElementId )


description: Create an empty list of elements associated with this registry.


description: Create an empty list of elements associated with this registry, populated from the given minimal IDs that are valid.

code: FTypedElementListRef CreateElementList ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) > InElementIds )


description: Create an empty list of elements associated with this registry, populated from the given handles that are valid.

code: FTypedElementListRef CreateElementList ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) > InElementHandles )


description: Create an empty list of elements associated with this registry, populated from the given owners that are valid.

code: template<typename ElementDataType> FTypedElementListRef CreateElementList ( const [TArray](API\Runtime\Core\Containers\TArray)< [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType >> & InElementOwners )


code: template<typename ElementDataType> FTypedElementListRef CreateElementList ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType >> InElementOwners )


description: Create an empty list of script elements associated with this registry.


description: Create a script handle. This should only be use for the script exposure apis.

code: [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) CreateScriptHandle ( const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InElementId )


description: Destruction is deferred until the next call to ProcessDeferredElementsToDestroy.

code: void DestroyElement ( FTypedElementOwner & InOutElementOwner )


code: template<typename ElementDataType> void DestroyElement ( [TTypedElementOwner](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElementOwner)< ElementDataType > & InOutElementOwner )


code: FDisableElementDestructionOnGC & operator&61; &40; const FDisableElementDestructionOnGC & &41;


code: FDisableElementDestructionOnGC & operator&61; &40; FDisableElementDestructionOnGC && &41;


code: FDisableElementDestructionOnGC &40; UTypedElementRegistry &42; InRegistry &41;


code: FDisableElementDestructionOnGC &40; const FDisableElementDestructionOnGC & &41;


code: FDisableElementDestructionOnGC &40; FDisableElementDestructionOnGC && &41;


className: FOnDataStorageInterfacesSet

description: Event fired when all Data Storage Interfaces have been set.

code: typedef TMulticastDelegate_NoParams< void > FOnDataStorageInterfacesSet


description: Because properties are destroyed here,Super::FinishDestroy()should always be called at the end of your child class'sFinishDestroy()method, rather than at the beginning.

code: virtual void FinishDestroy()


className: FDisableElementDestructionOnGC

description: Struct to disable auto-GC reference collection within a scope

code: struct FDisableElementDestructionOnGC


description: Event fired when references to one element should be replaced with a reference to a different element.


className: FOnElementReplaced

code: typedef TMulticastDelegate_OneParam< void, [FOnElementReplaced_Payload](API\Runtime\TypedElementFramework\Elements\Framework\UTypedElementRegistry\FOnElementReplac-) > FOnElementReplaced


code: const [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) * GetDataStorage() const


code: const [ITypedElementDataStorageUiInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2) * GetDataStorageUi() const


description: Get an element that implements the given interface from its minimal ID.

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetElement ( const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InElementId ) const


description: Get an element that implements the given interface from its handle.

code: template<typename BaseInterfaceType> [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< BaseInterfaceType > GetElement ( const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) & InElementHandle ) const


code: FTypedElement GetElement ( const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InElementId, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


code: FTypedElement GetElement ( const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) & InElementHandle, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType ) const


className: FOnElementUpdated

description: Event fired when an element has been internally updated and data cached from it should be refreshed.

code: typedef TMulticastDelegate_OneParam< void, [TArrayView](API\Runtime\Core\Containers\TArrayView)< const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) > > FOnElementUpdated


description: Get the element interface supported by the given type, or null if there is no support for this interface.

code: template<typename BaseInterfaceType> BaseInterfaceType * GetElementInterface ( const FTypedHandleTypeId InElementTypeId ) const


description: Get the element interface supported by the given handle, or null if there is no support for this interface.

code: template<typename BaseInterfaceType> BaseInterfaceType * GetElementInterface ( const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) & InElementHandle ) const


code: [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetElementInterface ( const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) & InElementHandle, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > InBaseInterfaceType ) const


description: Get the element interface supported by the given handle, or null if there is no support for this interface or if the handle is invalid.

code: [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetElementInterface ( const [FScriptTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FScriptTypedElementHandle) & InElementHandle, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > InBaseInterfaceType ) const


description: Get an element handle from its minimal ID.

code: [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) GetElementHandle ( const [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InElementId ) const


description: Get the singleton instance of the registry used in most cases.


description:
Get the element type ID for the associated element type name, if any.
The element type ID, or 0 if the given name wasn't registered.

code: FTypedHandleTypeId GetRegisteredElementTypeId ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName ) const


description:
Get the element type name for the associated element type ID, if any.
The element type name, or None if the given ID wasn't registered.

code: [FName](API\Runtime\Core\UObject\FName) GetRegisteredElementTypeName ( const FTypedHandleTypeId InElementTypeId ) const


description: ProcessDeferredElementsToDestroy.


description: Note: Access for FTypedElementList.

code: void Private_GetElementImpl ( const [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) & InElementHandle, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UInterface](API\Runtime\CoreUObject\UObject\UInterface) > & InBaseInterfaceType, FTypedElement & OutElement ) const


description: Initialize the singleton instance of the registry used in most cases.


code: void Private_OnElementListCreated ( FTypedElementList * InElementList )


code: void Private_OnElementListCreated ( FScriptTypedElementList * InElementList )


code: void Private_OnElementListDestroyed ( FTypedElementList * InElementList )


code: void Private_OnElementListDestroyed ( FScriptTypedElementList * InElementList )


description: Shutdown the singleton instance of the registry used in most cases.

code: static void Private_ShutdownInstance()


description: FDisableElementDestructionOnGC).

code: void ProcessDeferredElementsToDestroy()


description: Register that an element interface is supported for the given type, which must have previously been registered via RegisterElementType.

code: template<typename BaseInterfaceType> void RegisterElementInterface ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InElementInterface, const bool InAllowOverride )


description: Register an element type that has additional payload data. Note if bSupportScriptHandles is true, elements of this type should only be destroyed from the game thread

code: template<typename ElementDataType, bool bSupportScriptHandles> void RegisterElementType ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName )


description: Register an element type that doesn't require any additional payload data.

code: void RegisterElementType ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName, bool bSupportScriptHandles )


description: Extract a string that contains name of the type elements registered. For each type it also says what interface are registered and the path of the class that implement them


description: Release an element ID that was previously acquired from an existing handle.

code: void ReleaseElementId ( [FTypedElementId](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementId) & InOutElementId )


code: void SetDataStorageCompatibility ( [ITypedElementDataStorageCompatibilityInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-) * Storage )


code: void SetDataStorage ( [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) * Storage )


code: void SetDataStorageUi ( [ITypedElementDataStorageUiInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2) * Storage )


code: UTypedElementRegistry()


className: UTypedElementRegistry

description: Registry of element types and their associated interfaces, along with the elements that represent their instances.

code: class UTypedElementRegistry : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


className: ColumnDataResult

code: struct ColumnDataResult

Data

type: void *

description: Pointer to the column data. The type is guaranteed to match type described in Description.

Description

type: constUScriptSt...

description: Pointer to the structure that holds the description of the returned data.


className: FTypedElementDataStorageColumn

description: Base for the data structures for a column.

code: struct FTypedElementDataStorageColumn


className: FTypedElementDataStorageTag

description: Base for the data structures that act as tags to rows. Tags should not have any data.

code: struct FTypedElementDataStorageTag


description: Uses the type system to apply the provided arguments to constructor's properties. Overwrite this function if there are non-properties that can be configured through the arguments or if the configuration contains arguments that are too complex to initialize (fully) through the type system.

code: virtual bool ApplyArguments ( TConstArrayView< [TypedElement::ColumnUtils::Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments )


description: Whether or not an instance of this constructor can be reused. Setting this to true means that the Data Storage will avoid recreating new instances of the constructor and instead keeps reusing the created version. The default is 'false'. Override this function and set it to true if there's no internal state that could interfere with creating multiple widgets from the same constructor, e.g. data stored from passed in arguments.

code: virtual bool CanBeReused() const


description: Constructs the widget according to the provided information. Information is collected by calling the below functions ApplyArguments, CreateWidget and AddColumns. It's recommended to overload those functions to build widgets according to a standard recipe and to reduce the amount of code needed. If a complexer situation is called for this function can also be directly overwritten.

code: virtual [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [SWidget](API\Runtime\SlateCore\Widgets\SWidget) > Construct ( TypedElementRowHandle Row, [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) * DataStorage, [ITypedElementDataStorageUiInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2) * DataStorageUi, TConstArrayView< [TypedElement::ColumnUtils::Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments )


description: Last opportunity to configure anything in the widget or the row. This step can be needed to initialize widgets with data stored in columns.

code: virtual bool FinalizeWidget ( [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) * DataStorage, [ITypedElementDataStorageUiInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2) * DataStorageUi, TypedElementRowHandle Row, const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [SWidget](API\Runtime\SlateCore\Widgets\SWidget) > & Widget )


description: Create a new instance of the target widget. This is a required function.

code: virtual [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [SWidget](API\Runtime\SlateCore\Widgets\SWidget) > CreateWidget()


description: Returns a list of additional columns the widget requires.

code: virtual TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > GetAdditionalColumnsList() const


description: Retrieves the type information for the constructor type.

code: virtual const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * GetTypeInfo() const


code: FTypedElementWidgetConstructor ( const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * InTypeInfo )


code: FTypedElementWidgetConstructor ( EForceInit )


description: Set any values in columns if needed. The columns provided throughGetAdditionalColumnsList()will have already been created.

code: virtual bool SetColumns ( [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) * DataStorage, TypedElementRowHandle Row )


className: FTypedElementWidgetConstructor

description: Base class used to construct Typed Element widgets with. It's recommended to expose any construction variables as properties so they can either be set by a user or set using the passed in arguments. The Arguments can be directly used in case complex operations need to be done that prevent automatically setting construction variables. See below for the options to register a constructor with the Data Storage. For either registration case a new instance/copy of the constructor is created so arguments can be safely applied.

code: struct FTypedElementWidgetConstructor


code: template<typename Column> const Column * GetColumn() const


description: Return the address of a immutable column matching the requested type or a nullptr if not found.

code: const void * GetColumn ( const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * ColumnType ) const


description: Get a list of columns or nullptrs if the column type wasn't found. Mutable addresses are returned and it's up to the caller to not change immutable addresses.

code: void GetColumns ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< char * > RetrievedAddresses, TConstArrayView< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) >> ColumnTypes, TConstArrayView< [EQueryAccessType](API\Runtime\TypedElementFramework\Elements\Common\TypedElementData-_3) > AccessTypes )


description: Get a list of columns or nullptrs if the column type wasn't found. Mutable addresses are returned and it's up to the caller to not change immutable addresses. This version doesn't verify that the enough space is provided and it's up to the caller to guarantee the target addresses have enough space.

code: void GetColumnsUnguarded ( int32 TypeCount, char ** RetrievedAddresses, const [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) > * ColumnTypes, const [EQueryAccessType](API\Runtime\TypedElementFramework\Elements\Common\TypedElementData-_3) * AccessTypes )


description: Return the address of a mutable column matching the requested type or a nullptr if not found.

code: void * GetMutableColumn ( const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * ColumnType )


code: template<typename Column> Column * GetMutableColumn()


description: Returns the number rows in the batch.

code: uint32 GetRowCount() const


description: Returns an immutable view that contains the row handles for all returned results. The returned size will be the same as the value returned byGetRowCount().

code: TConstArrayView< [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) > GetRowHandles() const


code: virtual ~ICommonQueryContext()


className: ICommonQueryContext

description: Base interface for any contexts provided to query callbacks.

code: struct ICommonQueryContext


code: virtual ~IDirectQueryContext()


code: template<typename... Columns> void AddColumns ( [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) Row )


className: IDirectQueryContext

description: Interface to be provided to query callbacks that are directly called through RunQuery from outside a query callback.

code: struct IDirectQueryContext : public [TypedElementDataStorage::ICommonQueryContext](API\Runtime\TypedElementFramework\Elements\Interfaces\ICommonQueryContext)


description: Adds new empty columns to a row of the provided type. The addition will not be immediately done but delayed until the end of the tick group.

code: template<typename... Columns> void AddColumns ( TConstArrayView< [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) > Rows )


code: void AddColumns ( [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) Row, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnTypes )


description: Adds new empty columns to the listed rows of the provided type. The addition will not be immediately done but delayed until the end of the tick group.

code: void AddColumns ( TConstArrayView< [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) > Rows, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnTypes )


description: Returns a list of dependencies or nullptrs if a dependency wasn't found. Mutable versions are return and it's up to the caller to not change immutable dependencies.

code: void GetDependencies ( [TArrayView](API\Runtime\Core\Containers\TArrayView)< [UObject](API\Runtime\CoreUObject\UObject\UObject) * > RetrievedAddresses, TConstArrayView< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UClass](API\Runtime\CoreUObject\UObject\UClass) >> DependencyTypes, TConstArrayView< [EQueryAccessType](API\Runtime\TypedElementFramework\Elements\Common\TypedElementData-_3) > AccessTypes )


description: Returns an immutable instance of the requested dependency or a nullptr if not found.

code: const [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetDependency ( const [UClass](API\Runtime\CoreUObject\UObject\UClass) * DependencyClass )


description: Returns a mutable instance of the requested dependency or a nullptr if not found.

code: [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetMutableDependency ( const [UClass](API\Runtime\CoreUObject\UObject\UClass) * DependencyClass )


code: template<typename... Columns> void RemoveColumns ( TConstArrayView< [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) > Rows )


code: template<typename... Columns> void RemoveColumns ( [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) Row )


description: Removes columns of the provided types from a row. The removal will not be immediately done but delayed until the end of the tick group.

code: void RemoveColumns ( [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) Row, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnTypes )


description: Removes columns of the provided types from the listed rows. The removal will not be immediately done but delayed until the end of the tick group.

code: void RemoveColumns ( TConstArrayView< [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) > Rows, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnTypes )


description: Removes rows with the provided row handles. The removal will not be immediately done but delayed until the end of the tick group.

code: void RemoveRows ( TConstArrayView< [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) > Rows )


description: Removes the row with the provided row handle. The removal will not be immediately done but delayed until the end of the tick group.

code: void RemoveRow ( [RowHandle](API\Runtime\TypedElementFramework\Elements\Common\RowHandle) Row )


description: Runs a previously created query. This version takes an arbitrary query, but is limited to running queries that do not directly access data from rows such as count queries.

code: [FQueryResult](API\Runtime\TypedElementFramework\Elements\Common\FQueryResult) RunQuery ( [QueryHandle](API\Runtime\TypedElementFramework\Elements\Common\QueryHandle) Query )


description: Runs a subquery registered with the current query. The subquery index is in the order of registration with the query.

code: [FQueryResult](API\Runtime\TypedElementFramework\Elements\Common\FQueryResult) RunSubquery ( int32 SubqueryIndex )


code: virtual ~IQueryContext()


className: ISubqueryContext

description: Interface to be provided to query callbacks that are directly called through from a query callback.

code: struct ISubqueryContext : public [TypedElementDataStorage::ICommonQueryContext](API\Runtime\TypedElementFramework\Elements\Interfaces\ICommonQueryContext)


className: IQueryContext

description: Interface to be provided to query callbacks running with the Data Storage. Note that at the time of writing only subclasses of Subsystem are supported as dependencies.

code: struct IQueryContext : public [TypedElementDataStorage::ICommonQueryContext](API\Runtime\TypedElementFramework\Elements\Interfaces\ICommonQueryContext)


description: These allow compatibility with any type. These do eventually fall back to the explicit versions. Any references given are non-owning so it's up to the caller to deregister the object after it's no longer available. Adds a reference to an existing object to the data storage. The data storage does NOT take ownership of the object and the caller is responsible for managing the life cycle of the object. The address is only used for associating the object with a row and to setup the initial row data.

code: template<typename ObjectType> TypedElementRowHandle AddCompatibleObject ( ObjectType Object, TypedElementTableHandle Table )


code: virtual ~ISubqueryContext()


description: Adds an actor to the data storage.

code: TypedElementRowHandle AddCompatibleObjectExplicit ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor )


code: template<typename ObjectType> TypedElementRowHandle AddCompatibleObject ( ObjectType Object )


code: TypedElementRowHandle AddCompatibleObjectExplicit ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object, TypedElementTableHandle Table )


description: These are functions that work on specific types.Adds aUObjectto the data storage.

code: TypedElementRowHandle AddCompatibleObjectExplicit ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object )


code: TypedElementRowHandle AddCompatibleObjectExplicit ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor, TypedElementTableHandle Table )


description: Adds an FStruct to the data storage.

code: TypedElementRowHandle AddCompatibleObjectExplicit ( void * Object, [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) > TypeInfo )


code: TypedElementRowHandle AddCompatibleObjectExplicit ( void * Object, [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) > TypeInfo, TypedElementTableHandle Table )


code: template<typename ObjectType> TypedElementRowHandle FindRowWithCompatibleObject ( const ObjectType Object ) const


description: Finds a previously stored actor based on the object key. If not found an invalid row handle will be returned. While FindRowWithCompatibleObject(const TObjectKeyObject) can also be used, this call will be slightly faster if it's already known that the target is an actor.

code: TypedElementRowHandle FindRowWithCompatibleObjectExplicit ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor ) const


description: Finds a previously storedUObject. If not found an invalid row handle will be returned.

code: TypedElementRowHandle FindRowWithCompatibleObjectExplicit ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object ) const


description: Finds a previously stored FStructe . If not found an invalid row handle will be returned.

code: TypedElementRowHandle FindRowWithCompatibleObjectExplicit ( const void * Object ) const


description: Removes a previously registered object from the data storage.

code: template<typename ObjectType> void RemoveCompatibleObject ( ObjectType Object )


description: Removes aUObjectfrom the data storage.

code: void RemoveCompatibleObjectExplicit ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object )


description: Removes an actor from the data storage.

code: void RemoveCompatibleObjectExplicit ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor )


description: Removes an FStruct from the data storage.

code: void RemoveCompatibleObjectExplicit ( void * Object )


description: Interface to provide compatibility with existing systems that don't directly support the data storage.


description: The following are utility functions that are not part of the interface but are provided in order to make using the interface easier.Adds a column to a row or does nothing if already added.

code: template<typename Column> bool AddColumn ( TypedElementRowHandle Row )


description: Management

code: bool AddColumn ( TypedElementRowHandle Row, const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * ColumnType )


code: bool AddColumn ( TypedElementRowHandle Row, [FTopLevelAssetPath](API\Runtime\CoreUObject\UObject\FTopLevelAssetPath) ColumnName )


description: Adds multiple columns from a row. This is typically more efficient than adding columns one at a time.

code: template<typename... Columns> void AddColumns ( TypedElementRowHandle Row )


code: bool AddColumns ( TypedElementRowHandle Row, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > Columns )


description: Returns a pointer to the column of the given row or creates a new one if not found. Optionally arguments can be provided to update or initialize the column's data.

code: template<typename ColumnType, typename... Args> ColumnType * AddOrGetColumn ( TypedElementRowHandle Row, Args... Arguments )


description: Adds a new column to a row. If the column already exists it will be returned instead. If the colum couldn't be added or the column type points to a tag an nullptr will be returned.

code: void * AddOrGetColumnData ( TypedElementRowHandle Row, const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * ColumnType )


code: [ColumnDataResult](API\Runtime\TypedElementFramework\Elements\Interfaces\ColumnDataResult) AddOrGetColumnData ( TypedElementRowHandle Row, [FTopLevelAssetPath](API\Runtime\CoreUObject\UObject\FTopLevelAssetPath) ColumnName )


description: Sets the data of a column using the provided argument bag. This is only meant for simple initialization for fragments that use UPROPERTY to expose properties. For complex initialization or when the fragment type is known it's recommended to use calls that work directly on the type for better performance and a wider range of configuration options. If the column couldn't be created or the column name points to a tag, then the result will contain only nullptrs.

code: [ColumnDataResult](API\Runtime\TypedElementFramework\Elements\Interfaces\ColumnDataResult) AddOrGetColumnData ( TypedElementRowHandle Row, [FTopLevelAssetPath](API\Runtime\CoreUObject\UObject\FTopLevelAssetPath) ColumnName, TConstArrayView< [TypedElement::ColumnUtils::Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments )


description: Adds and removes the provided column types from the provided row. This is typically more efficient than individually adding and removing columns as well as being faster than adding and removing columns separately.

code: bool AddRemoveColumns ( TypedElementRowHandle Row, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnsToAdd, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnsToRemove )


description: Adds a new row to the provided table using a previously reserved row..

code: bool AddRow ( TypedElementRowHandle ReservedRow, TypedElementTableHandle Table )


description: Adds a new row to the provided table.

code: TypedElementRowHandle AddRow ( TypedElementTableHandle Table )


description: Adds and removes the provided column types from the provided list of rows.

code: bool BatchAddRemoveColumns ( TConstArrayView< TypedElementRowHandle > Rows, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnsToAdd, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnsToRemove )


description: Add multiple rows at once. For each new row the OnCreated callback is called. Callers are expected to use the callback to initialize the row if needed.

code: bool BatchAddRow ( TypedElementTableHandle Table, int32 Count, TypedElementDataStorageCreationCallbackRef OnCreated )


description: Add multiple rows at once. For each new row the OnCreated callback is called. Callers are expected to use the callback to initialize the row if needed. This version uses a set of previously reserved rows. Any row that can't be used will be released.

code: bool BatchAddRow ( TypedElementTableHandle Table, TConstArrayView< TypedElementRowHandle > ReservedHandles, TypedElementDataStorageCreationCallbackRef OnCreated )


className: DirectQueryCallback


className: DirectQueryCallbackRef


className: EQueryDependencyFlags


className: EQueryTickPhase

description: Queries can be constructed using the Query Builder. Note that the Query Builder allows for the creation of queries that are more complex than the back-end may support. The back-end is allowed to simplify the query, in which case the query can be used directly in the processor to do additional filtering. This will however impact performance and it's therefore recommended to try to simplify the query first before relying on extended query filtering in a processor.


description: Returns a previously created table with the provided name or TypedElementInvalidTableHandle if not found.

code: TypedElementTableHandle FindTable ( const [FName](API\Runtime\Core\UObject\FName) Name )


description: Retrieves a pointer to the column of the given row or a nullptr if not found or if the column type is a tag.

code: void * GetColumnData ( TypedElementRowHandle Row, const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * ColumnType )


description: Returns a pointer to the column of the given row or a nullptr if the type couldn't be found or the row doesn't exist.

code: template<typename ColumnType> ColumnType * GetColumn ( TypedElementRowHandle Row )


code: [ColumnDataResult](API\Runtime\TypedElementFramework\Elements\Interfaces\ColumnDataResult) GetColumnData ( TypedElementRowHandle Row, [FTopLevelAssetPath](API\Runtime\CoreUObject\UObject\FTopLevelAssetPath) ColumnName )


description: Returns a pointer to the registered external system if found, otherwise null.

code: template<typename SystemType> SystemType * GetExternalSystem()


code: void * GetExternalSystemAddress ( [UClass](API\Runtime\CoreUObject\UObject\UClass) * Target )


description: Returns the description of a previously registered query. If the query no longer exists an empty description will be returned.

code: const [FQueryDescription](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1\FQueryDescriptio-) & GetQueryDescription ( TypedElementQueryHandle Query ) const


description: Tick groups for queries can be given any name and the Data Storage will figure out the order of execution based on found dependencies. However keeping processors within the same query group can help promote better performance through parallelization. Therefore a collection of common tick group names is provided to help create consistent tick group names.

code: [FName](API\Runtime\Core\UObject\FName) GetQueryTickGroupName ( [EQueryTickGroups](API\Runtime\TypedElementFramework\Elements\Common\TypedElementData-_1) Group ) const


description: Determines if the provided row contains the collection of columns and tags.

code: bool HasColumns ( TypedElementRowHandle Row, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnTypes ) const


code: template<typename... ColumnTypes> bool HasColumns ( TypedElementRowHandle Row ) const


code: bool HasColumns ( TypedElementRowHandle Row, TConstArrayView< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) >> ColumnTypes ) const


description: Whether or not the data storage is available. The data storage is available most of the time, but can be unavailable for a brief time between being destroyed and a new one created.

code: bool IsAvailable() const


description: Checks whether or not a row is in use. This is true even if the row has only been reserved.

code: bool IsRowAvailable ( TypedElementRowHandle Row ) const


description: Called periodically when the storage is available. This provides an opportunity to do any repeated processing for the data storage.


description: Checks whether or not a row has been reserved but not yet assigned to a table.

code: bool HasRowBeenAssigned ( TypedElementRowHandle Row ) const


description: Registers a query with the data storage. The description is processed into an internal format and may be changed. If no valid could be created an invalid query handle will be returned. It's recommended to use the Query Builder for a more convenient and safer construction of a query.

code: TypedElementQueryHandle RegisterQuery ( [FQueryDescription](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1\FQueryDescriptio-) && Query )


description: Tables are automatically created by taking an existing table and adding/removing columns. For performance its however better to create a table before adding objects to the table. This doesn't prevent those objects from having columns added/removed at a later time. To make debugging and profiling easier it's also recommended to give tables a name.Creates a new table for with the provided columns. Optionally a name can be given which is useful for retrieval later.

code: TypedElementTableHandle RegisterTable ( TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnList, const [FName](API\Runtime\Core\UObject\FName) Name )


description: Copies the column information from the provided table and creates a new table for with the provided columns. Optionally a name can be given which is useful for retrieval later.

code: TypedElementTableHandle RegisterTable ( TypedElementTableHandle SourceTable, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > ColumnList, const [FName](API\Runtime\Core\UObject\FName) Name )


description: Removes a column from a row or does nothing if already removed.

code: void RemoveColumn ( TypedElementRowHandle Row, const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * ColumnType )


description: Removes a tag from a row or does nothing if already removed.

code: template<typename Column> void RemoveColumn ( TypedElementRowHandle Row )


code: void RemoveColumn ( TypedElementRowHandle Row, [FTopLevelAssetPath](API\Runtime\CoreUObject\UObject\FTopLevelAssetPath) ColumnName )


description: Removes multiple columns from a row. This is typically more efficient than adding columns one at a time.

code: template<typename... Columns> void RemoveColumns ( TypedElementRowHandle Row )


code: void RemoveColumns ( TypedElementRowHandle Row, TConstArrayView< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * > Columns )


description: Removes a previously reserved or added row. If the row handle is invalid or already removed, nothing happens

code: void RemoveRow ( TypedElementRowHandle Row )


description: Reserves a row to be assigned to a table at a later point. If the row is no longer needed before it's been assigned to a table, it should still be released with RemoveRow.

code: TypedElementRowHandle ReserveRow()


description: Directly runs a query. If the query handle is invalid or has been deleted nothing will happen.

code: [FQueryResult](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1\FQueryResult) RunQuery ( TypedElementQueryHandle Query )


description: Directly runs a query. The callback will be called for batches of matching rows. During a single call to RunQuery the callback may be called multiple times. If the query handle is invalid or has been deleted nothing happens and the callback won't be called

code: [FQueryResult](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1\FQueryResult) RunQuery ( TypedElementQueryHandle Query, [DirectQueryCallbackRef](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1\DirectQueryCallb-_1) Callback )


className: SubqueryCallbackRef


description: Removes a previous registered. If the query handle is invalid or the query has already been deleted nothing will happen.

code: void UnregisterQuery ( TypedElementQueryHandle Query )


description: Creates a single widget using the provided constructor. Arguments can optionally be used to intialize the constructor.

code: [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [SWidget](API\Runtime\SlateCore\Widgets\SWidget) > ConstructWidget ( TypedElementRowHandle Row, [FTypedElementWidgetConstructor](API\Runtime\TypedElementFramework\Elements\Interfaces\FTypedElementWid-) & Constructor, TConstArrayView< [TypedElement::ColumnUtils::Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments )


description: Creates all the widgets registered under the provided name. This may be a large number of widgets for a wide name or exactly one when the exact name of the widget is registered. Arguments can be provided, but widgets are free to ignore them.

code: void ConstructWidgets ( [FName](API\Runtime\Core\UObject\FName) Purpose, TConstArrayView< [TypedElement::ColumnUtils::Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments, const [WidgetCreatedCallback](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2\WidgetCreatedCal-) & ConstructionCallback )


description: Finds matching widget constructors for provided columns, preferring longer matches over shorter matches. The provided list of columns will be updated to contain all columns that couldn't be matched.

code: void CreateWidgetConstructors ( [FName](API\Runtime\Core\UObject\FName) Purpose, [EMatchApproach](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2\EMatchApproach) MatchApproach, [TArray](API\Runtime\Core\Containers\TArray)< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) >> & Columns, TConstArrayView< [TypedElement::ColumnUtils::Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments, const [WidgetConstructorCallback](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2\WidgetConstructo-) & Callback )


className: EMatchApproach

code: enum EMatchApproach { LongestMatch, ExactMatch, SingleMatch, }


className: EPurposeType

code: enum EPurposeType { Generic, UniqueByName, UniqueByNameAndColumn, }


description: Calls the provided callback for all known registered widget purposes.

code: void ListWidgetPurposes ( const [WidgetPurposeCallback](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2\WidgetPurposeCal-) & Callback ) const


description: Registers a widget factory that will be called when the purpose it's registered under is requested. This version registers a generic type. Construction using these are typically cheaper as they can avoid copying the Constructor and take up less memory. The downside is that they can't store additional configuration options. If the purpose has not been registered the factory will not be recorded and a warning will be printed. If registration is successful true will be returned otherwise false.

code: bool RegisterWidgetFactory ( [FName](API\Runtime\Core\UObject\FName) Purpose, const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * Constructor )


description: Registers a widget factory that will be called when the purpose it's registered under is requested. This version uses a previously created instance of the Constructor. The benefit of this is that it store configuration options. The downside is that it takes up more memory and requires copying when it's used. If the purpose has not been registered the factory will not be recorded and a warning will be printed. If registration is successful true will be returned otherwise false.

code: bool RegisterWidgetFactory ( [FName](API\Runtime\Core\UObject\FName) Purpose, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FTypedElementWidgetConstructor](API\Runtime\TypedElementFramework\Elements\Interfaces\FTypedElementWid-) > && Constructor )


description: Registers a widget factory that will be called when the purpose it's registered under is requested. This version registers a generic type. Construction using these are typically cheaper as they can avoid copying the Constructor and take up less memory. The downside is that they can't store additional configuration options. If the purpose has not been registered the factory will not be recorded and a warning will be printed. The provided columns will be used when matching the factory during widget construction. If registration is successful true will be returned otherwise false.

code: bool RegisterWidgetFactory ( [FName](API\Runtime\Core\UObject\FName) Purpose, const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) * Constructor, [TArray](API\Runtime\Core\Containers\TArray)< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) >> Columns )


description: Registers a widget factory that will be called when the purpose it's registered under is requested. This version uses a previously created instance of the Constructor. The benefit of this is that it store configuration options. The downside is that it takes up more memory and requires copying when it's used. If the purpose has not been registered the factory will not be recorded and a warning will be printed. The provided columns will be used when matching the factory during widget construction. If registration is successful true will be returned otherwise false.

code: bool RegisterWidgetFactory ( [FName](API\Runtime\Core\UObject\FName) Purpose, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FTypedElementWidgetConstructor](API\Runtime\TypedElementFramework\Elements\Interfaces\FTypedElementWid-) > && Constructor, [TArray](API\Runtime\Core\Containers\TArray)< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< const [UScriptStruct](API\Runtime\CoreUObject\UObject\UScriptStruct) >> Columns )


description: Register a widget purpose. Widget purposes indicates how widgets can be used and categorizes/organizes the available widget factories. If the same purpose is registered multiple times, only the first will be recorded and later registrations will be silently ignored.

code: void RegisterWidgetPurpose ( [FName](API\Runtime\Core\UObject\FName) Purpose, [EPurposeType](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2\EPurposeType) Type, [FText](API\Runtime\Core\Internationalization\FText) Description )


description: Creates widget constructors for the requested purpose.

code: void CreateWidgetConstructors ( [FName](API\Runtime\Core\UObject\FName) Purpose, TConstArrayView< [TypedElement::ColumnUtils::Argument](API\Runtime\TypedElementFramework\Elements\Framework\Argument) > Arguments, const [WidgetConstructorCallback](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2\WidgetConstructo-) & Callback )


className: ITypedElementDataStorageInterface

code: class ITypedElementDataStorageInterface


className: WidgetCreatedCallback

code: typedef [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void(const [TSharedRef](API\Runtime\Core\Templates\TSharedRef)< [SWidget](API\Runtime\SlateCore\Widgets\SWidget) > &NewWidget, TypedElementRowHandle Row)> WidgetCreatedCallback


className: WidgetConstructorCallback


className: WidgetPurposeCallback


className: ITypedElementDataStorageUiInterface


className: WithNoInitConstructor

code: enum &123; WithNoInitConstructor = true &125;


className: WithPureVirtual

code: enum &123; WithPureVirtual = true &125;


code: template<> struct TStructOpsTypeTraits< FTypedElementWidgetConstructor > : public [TStructOpsTypeTraitsBase2< FTypedElementWidgetConstructor >](API\Runtime\CoreUObject\UObject\TStructOpsTypeTraitsBase2)


className: TTypedElementColumnTypeList::operator TConstArrayView< const UScriptStruct * >

code: operator TConstArrayView< const UScriptStruct * >() const


className: bAvailable

code: static bAvailable = false;


className: TTypedElementColumnTypeList

description: Convenience structure that can be used to pass a list of columns to functions that don't have an dedicate templated version that takes a column list directly, for instance when multiple column lists are used. Note that the returned array view is only available while this object is constructed, so care must be taken with functions that return a const array view.

code: template<typename... Columns> struct TTypedElementColumnTypeList


className: HasIsHotReloadableVariable

code: template<typename T, typename> struct HasIsHotReloadableVariable


className: HasRequiresGameThreadVariable

code: template<typename T, typename> struct HasRequiresGameThreadVariable


code: static constexpr bool IsHotReloadable()


code: static constexpr bool RequiresGameThread()


className: TTypedElementSubsystemTraits

code: template<typename Subsystem> struct TTypedElementSubsystemTraits


code: class UTypedElementDataStorageCompatibilityInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description: Returns the order registration will be executed. Factories with a lower number will be executed before factories with a higher number.

code: virtual uint8 GetOrder() const


code: virtual void RegisterQueries ( [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) & DataStorage ) const


code: virtual void RegisterTables ( [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) & DataStorage ) const


code: virtual void RegisterTickGroups ( [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) & DataStorage ) const


code: virtual void RegisterWidgetConstructors ( [ITypedElementDataStorageInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_1) & DataStorage, [ITypedElementDataStorageUiInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2) & DataStorageUi ) const


code: virtual void RegisterWidgetPurposes ( [ITypedElementDataStorageUiInterface](API\Runtime\TypedElementFramework\Elements\Interfaces\ITypedElementDat-_2) & DataStorageUi ) const


code: ~UTypedElementDataStorageFactory()


className: UTypedElementDataStorageFactory

description: Base class that can be used to register various elements, such as queries and widgets, with the Typed Elements Data Storage.

code: class UTypedElementDataStorageFactory : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


className: UTypedElementDataStorageInterface

code: class UTypedElementDataStorageInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UTypedElementDataStorageUiInterface

code: class UTypedElementDataStorageUiInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description:
Given an element name, attempt to get its registered type ID from the global registry.
The registered type ID, or 0 if the element name is not registered.

module: TypedElementRuntime

code: FTypedHandleTypeId GetElementTypeIdFromName ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName ) const


description:
Given an element name, attempt to get its registered type ID from the global registry.
The registered type ID, or asserts if the element name is not registered.

code: FTypedHandleTypeId GetElementTypeIdFromNameChecked ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName ) const


description: Non-templated base class for the interface customization registry.


code: virtual bool AllowSelectionModifiers ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, FTypedElementListConstRef InSelectionSet )


code: virtual bool CanDeselectElement ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions )


code: virtual bool CanSelectElement ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions )


code: virtual bool DeselectElement ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, FTypedElementListRef InSelectionSet, const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions )


code: virtual void GetNormalizedElements ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, FTypedElementListConstRef InSelectionSet, const [FTypedElementSelectionNormalizationOptions](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_1) & InNormalizationOptions, FTypedElementListRef OutNormalizedElements )


code: virtual [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) GetSelectionElement ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, FTypedElementListConstRef InCurrentSelection, const ETypedElementSelectionMethod InSelectionMethod )


code: virtual bool IsElementSelected ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, FTypedElementListConstRef InSelectionSet, const [FTypedElementIsSelectedOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementIsS-) & InSelectionOptions )


code: virtual bool SelectElement ( const [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > & InElementSelectionHandle, FTypedElementListRef InSelectionSet, const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions )


className: FTypedElementSelectionCustomization

description: Customization type used to allow asset editors (such as the level editor) to override the base behavior of element selection, by injecting extra pre/post selection logic around the call into the selection interface for an element type.


code: bool ExpandGroups() const


code: bool FollowAttachment() const


code: [FTypedElementSelectionNormalizationOptions](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_1) & SetExpandGroups ( const bool InExpandGroups )


code: [FTypedElementSelectionNormalizationOptions](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_1) & SetFollowAttachment ( const bool InFollowAttachment )


code: bool AllowSelectionModifiers() const


code: bool CanDeselectElement ( const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions ) const


code: bool CanSelectElement ( const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions ) const


code: bool DeselectElement ( const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions ) const


code: void GetNormalizedElements ( const [FTypedElementSelectionNormalizationOptions](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_1) & InNormalizationOptions, FTypedElementListRef OutNormalizedElements ) const


code: [FTypedElementHandle](API\Runtime\TypedElementFramework\Elements\Framework\FTypedElementHandle) GetSelectionElement ( const ETypedElementSelectionMethod InSelectionMethod ) const


code: bool IsElementSelected ( const [FTypedElementIsSelectedOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementIsS-) & InSelectionOptions ) const


code: operator bool() const


code: [FTypedElementSelectionSetElement](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_2) & operator= ( [FTypedElementSelectionSetElement](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_2) && )


code: [FTypedElementSelectionSetElement](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_2) & operator= ( const [FTypedElementSelectionSetElement](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_2) & )


code: bool SelectElement ( const [FTypedElementSelectionOptions](API\Runtime\TypedElementRuntime\Elements\Interfaces\FTypedElementSelectionOptions) & InSelectionOptions ) const


code: FTypedElementSelectionSetElement()


code: FTypedElementSelectionSetElement ( const [FTypedElementSelectionSetElement](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_2) & )


code: FTypedElementSelectionSetElement ( [FTypedElementSelectionSetElement](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-_2) && )


code: FTypedElementSelectionSetElement ( [TTypedElement](API\Runtime\TypedElementFramework\Elements\Framework\TTypedElement)< [ITypedElementSelectionInterface](API\Runtime\TypedElementRuntime\Elements\Interfaces\ITypedElementSel-) > InElementSelectionHandle, FTypedElementListPtr InElementList, [FTypedElementSelectionCustomization](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSel-) * InSelectionCustomization )


className: FTypedElementSelectionSetElement

description: Utility to hold a typed element handle and its associated selection interface and selection customization.

code: struct FTypedElementSelectionSetElement


code: [FTypedElementSelectionSetState](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSelectionSetState) & operator= ( const [FTypedElementSelectionSetState](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSelectionSetState) & InOther )


code: FTypedElementSelectionSetState()


code: FTypedElementSelectionSetState ( [FTypedElementSelectionSetState](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSelectionSetState) && )


code: FTypedElementSelectionSetState ( const [FTypedElementSelectionSetState](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementSelectionSetState) & InOther )


className: FTypedElementSelectionSetState

code: struct FTypedElementSelectionSetState


description: Return the default interface customization instance.

code: CustomizationBaseType * GetDefaultInterfaceCustomization() const


description: If bAllowFallback is true, then this will return the default interface customization if no override is present, otherwise it will return null.

code: CustomizationBaseType * GetInterfaceCustomizationByTypeName ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName, const bool bAllowFallback ) const


code: CustomizationBaseType * GetInterfaceCustomizationByTypeId ( const FTypedHandleTypeId InElementTypeId, const bool bAllowFallback ) const


code: [TTypedElementInterfaceCustomizationRegistry](API\Runtime\TypedElementRuntime\Elements\Framework\TTypedElementInt-) & operator= ( const [TTypedElementInterfaceCustomizationRegistry](API\Runtime\TypedElementRuntime\Elements\Framework\TTypedElementInt-) & )


description: Register an interface customization for the given element type.

code: void RegisterInterfaceCustomizationByTypeName ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< CustomizationBaseType > && InInterfaceCustomization )


code: void RegisterInterfaceCustomizationByTypeId ( const FTypedHandleTypeId InElementTypeId, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< CustomizationBaseType > && InInterfaceCustomization )


description: Set the default interface customization instance.

code: void SetDefaultInterfaceCustomization ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< CustomizationBaseType > && InInterfaceCustomization )


code: template<typename... TDefaultArgs> TTypedElementInterfaceCustomizationRegistry ( TDefaultArgs &&... DefaultArgs )


description: Unregister an interface customization for the given element type.

code: void UnregisterInterfaceCustomizationByTypeId ( const FTypedHandleTypeId InElementTypeId )


code: TTypedElementInterfaceCustomizationRegistry ( const [TTypedElementInterfaceCustomizationRegistry](API\Runtime\TypedElementRuntime\Elements\Framework\TTypedElementInt-) & )


description: Test whether there are any objects in the given list of elements.

code: namespace TypedElementListObjectUtil { template<typename RequiredClassType> bool TypedElementListObjectUtil::HasObjects ( FTypedElementListConstRef InElementList ) }


description: Utility to register and retrieve interface customizations for a given type.

code: template<typename CustomizationBaseType, typename DefaultCustomizationType> class TTypedElementInterfaceCustomizationRegistry : public [FTypedElementInterfaceCustomizationRegistryBase](API\Runtime\TypedElementRuntime\Elements\Framework\FTypedElementInt-)


description: Count the number of objects in the given list of elements.

code: namespace TypedElementListObjectUtil { template<typename RequiredClassType> int32 TypedElementListObjectUtil::CountObjects ( FTypedElementListConstRef InElementList ) }


description: Return true from the callback to continue enumeration.

code: namespace TypedElementListObjectUtil { template<typename RequiredClassType> void TypedElementListObjectUtil::ForEachObject ( FTypedElementListConstRef InElementList, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(RequiredClassType *)> InCallback ) }


code: void UnregisterInterfaceCustomizationByTypeName ( const [FName](API\Runtime\Core\UObject\FName) InElementTypeName )


description: Get the array of objects from the given list of elements.

code: namespace TypedElementListObjectUtil { template<typename RequiredClassType> [TArray](API\Runtime\Core\Containers\TArray)< RequiredClassType * > TypedElementListObjectUtil::GetObjects ( FTypedElementListConstRef InElementList ) }