UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ITypedUMGListView< ItemType > Class Template Referenceabstract

#include <ListViewBase.h>

Classes

struct  FListViewConstructArgs
 
struct  FTileViewConstructArgs
 
struct  FTreeViewConstructArgs
 

Public Types

using NullableItemType = typename SListView< ItemType >::NullableItemType
 

Public Member Functions

 DECLARE_MULTICAST_DELEGATE_OneParam (FSimpleListItemEvent, ItemType)
 
virtual FSimpleListItemEventOnItemClicked () const =0
 
virtual FSimpleListItemEventOnItemDoubleClicked () const =0
 
virtual FSimpleListItemEventOnItemDragDetected () const =0
 
virtual FSimpleListItemEventOnItemAcceptDrop () const =0
 
virtual FSimpleListItemEventOnItemDragEnter () const =0
 
virtual FSimpleListItemEventOnItemDragLeave () const =0
 
 DECLARE_MULTICAST_DELEGATE_OneParam (FOnItemDragCancelled, const FDragDropEvent &)
 
virtual FOnItemDragCancelledOnItemDragCancelled () const =0
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnItemCanAcceptDrop, ItemType, bool)
 
virtual FOnItemCanAcceptDropOnItemCanAcceptDrop () const =0
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnItemIsHoveredChanged, ItemType, bool)
 
virtual FOnItemIsHoveredChangedOnItemIsHoveredChanged () const =0
 
 DECLARE_MULTICAST_DELEGATE_OneParam (FOnItemSelectionChanged, NullableItemType)
 
virtual FOnItemSelectionChangedOnItemSelectionChanged () const =0
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnListViewScrolled, float, float)
 
virtual FOnListViewScrolledOnListViewScrolled () const =0
 
 DECLARE_MULTICAST_DELEGATE (FOnFinishedScrolling)
 
virtual FOnFinishedScrollingOnFinishedScrolling () const =0
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnItemScrolledIntoView, ItemType, UUserWidget &)
 
virtual FOnItemScrolledIntoView & OnItemScrolledIntoView () const =0
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnItemExpansionChanged, ItemType, bool)
 
virtual FOnItemExpansionChangedOnItemExpansionChanged () const =0
 
 DECLARE_DELEGATE_RetVal_OneParam (TSubclassOf< UUserWidget >, FOnGetEntryClassForItem, ItemType)
 
virtual FOnGetEntryClassForItemOnGetEntryClassForItem () const =0
 
virtual TSubclassOf< UUserWidgetGetDefaultEntryClass () const =0
 
 DECLARE_DELEGATE_RetVal_OneParam (bool, FOnIsItemSelectableOrNavigable, ItemType)
 
virtual FOnIsItemSelectableOrNavigableOnIsItemSelectableOrNavigable () const =0
 
virtual TSubclassOf< UUserWidgetGetDesiredEntryClassForItem (ItemType Item) const
 
NullableItemType GetSelectedItem () const
 
const TObjectPtrWrapTypeOf< ItemType > * ItemFromEntryWidget (const UUserWidget &EntryWidget) const
 
template<typename RowWidgetT = UUserWidget>
RowWidgetTGetEntryWidgetFromItem (const ItemType &Item) const
 
int32 GetIndexInList (const ItemType &Item) const
 
int32 GetSelectedItems (TArray< ItemType > &OutSelectedItems) const
 
int32 GetNumItemsSelected () const
 
void SetSelectedItem (const ItemType &SoleSelectedItem, ESelectInfo::Type SelectInfo=ESelectInfo::Direct)
 
void SetItemSelection (const ItemType &Item, bool bIsSelected, ESelectInfo::Type SelectInfo=ESelectInfo::Direct)
 
void ClearSelection ()
 
bool IsItemVisible (const ItemType &Item) const
 
bool IsItemSelected (const ItemType &Item) const
 
void RequestNavigateToItem (const ItemType &Item)
 
void RequestScrollItemIntoView (const ItemType &Item)
 
void CancelScrollIntoView ()
 

Protected Member Functions

virtual SListView< ItemType > * GetMyListView () const =0
 
virtual uint32 GetOwningUserIndex () const =0
 
virtual bool IsDesignerPreview () const =0
 
template<template< typename > class ObjectRowT = SObjectTableRow>
TSharedPtr< ObjectRowT< ItemType > > GetObjectRowFromItem (const ItemType &Item) const
 
virtual UUserWidgetOnGenerateEntryWidgetInternal (ItemType Item, TSubclassOf< UUserWidget > DesiredEntryClass, const TSharedRef< STableViewBase > &OwnerTable)=0
 
virtual FMargin GetDesiredEntryPadding (ItemType Item) const
 
virtual void OnGetChildrenInternal (ItemType Item, TArray< ItemType > &OutChildren) const
 
virtual void OnItemClickedInternal (ItemType Item)
 
virtual void OnItemDoubleClickedInternal (ItemType Item)
 
virtual void OnSelectionChangedInternal (NullableItemType FirstSelectedItem)
 
virtual bool OnIsSelectableOrNavigableInternal (ItemType FirstSelectedItem)
 
virtual void OnItemScrolledIntoViewInternal (ItemType Item, UUserWidget &EntryWidget)
 
virtual void OnListViewScrolledInternal (float ItemOffset, float DistanceRemaining)
 
virtual void OnListViewFinishedScrollingInternal ()
 
virtual void OnItemExpansionChangedInternal (ItemType Item, bool bIsExpanded)
 

Static Protected Member Functions

template<template< typename > class ListViewT = SListView, typename UListViewBaseT >
static TSharedRef< ListViewT< ItemType > > ConstructListView (UListViewBaseT *Implementer, const TArray< ItemType > &ListItems, const FListViewConstructArgs &Args=FListViewConstructArgs())
 
template<template< typename > class TileViewT = STileView, typename UListViewBaseT >
static TSharedRef< TileViewT< ItemType > > ConstructTileView (UListViewBaseT *Implementer, const TArray< ItemType > &ListItems, const FTileViewConstructArgs &Args=FTileViewConstructArgs())
 
template<template< typename > class TreeViewT = STreeView, typename UListViewBaseT >
static TSharedRef< TreeViewT< ItemType > > ConstructTreeView (UListViewBaseT *Implementer, const TArray< ItemType > &ListItems, const FTreeViewConstructArgs &Args=FTreeViewConstructArgs())
 

Detailed Description

template<typename ItemType>
class ITypedUMGListView< ItemType >

Mirrored SListView<T> API for easier interaction with a bound UListViewBase widget See declarations on SListView for more info on each function and event

Note that, being a template class, this is not a UClass and therefore cannot be exposed to Blueprint. If you are using UObject* items, just use (or inherit from) UListView directly Otherwise, it is up to the child class to propagate events and/or expose functions to BP as needed

Use the IMPLEMENT_TYPED_UMG_LIST() macro for the implementation boilerplate in your implementing class.

See also
UListView for an implementation example.

Member Typedef Documentation

◆ NullableItemType

template<typename ItemType >
using ITypedUMGListView< ItemType >::NullableItemType = typename SListView<ItemType>::NullableItemType

Member Function Documentation

◆ CancelScrollIntoView()

template<typename ItemType >
void ITypedUMGListView< ItemType >::CancelScrollIntoView ( )
inline

◆ ClearSelection()

template<typename ItemType >
void ITypedUMGListView< ItemType >::ClearSelection ( )
inline

◆ ConstructListView()

template<typename ItemType >
template<template< typename > class ListViewT = SListView, typename UListViewBaseT >
static TSharedRef< ListViewT< ItemType > > ITypedUMGListView< ItemType >::ConstructListView ( UListViewBaseT Implementer,
const TArray< ItemType > &  ListItems,
const FListViewConstructArgs Args = FListViewConstructArgs() 
)
inlinestaticprotected

◆ ConstructTileView()

template<typename ItemType >
template<template< typename > class TileViewT = STileView, typename UListViewBaseT >
static TSharedRef< TileViewT< ItemType > > ITypedUMGListView< ItemType >::ConstructTileView ( UListViewBaseT Implementer,
const TArray< ItemType > &  ListItems,
const FTileViewConstructArgs Args = FTileViewConstructArgs() 
)
inlinestaticprotected

◆ ConstructTreeView()

template<typename ItemType >
template<template< typename > class TreeViewT = STreeView, typename UListViewBaseT >
static TSharedRef< TreeViewT< ItemType > > ITypedUMGListView< ItemType >::ConstructTreeView ( UListViewBaseT Implementer,
const TArray< ItemType > &  ListItems,
const FTreeViewConstructArgs Args = FTreeViewConstructArgs() 
)
inlinestaticprotected

◆ DECLARE_DELEGATE_RetVal_OneParam() [1/2]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_DELEGATE_RetVal_OneParam ( bool  ,
FOnIsItemSelectableOrNavigable  ,
ItemType   
)

◆ DECLARE_DELEGATE_RetVal_OneParam() [2/2]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_DELEGATE_RetVal_OneParam ( TSubclassOf< UUserWidget ,
FOnGetEntryClassForItem  ,
ItemType   
)

◆ DECLARE_MULTICAST_DELEGATE()

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE ( FOnFinishedScrolling  )

◆ DECLARE_MULTICAST_DELEGATE_OneParam() [1/3]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_OneParam ( FOnItemDragCancelled  ,
const FDragDropEvent  
)

◆ DECLARE_MULTICAST_DELEGATE_OneParam() [2/3]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_OneParam ( FOnItemSelectionChanged  ,
NullableItemType   
)

◆ DECLARE_MULTICAST_DELEGATE_OneParam() [3/3]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_OneParam ( FSimpleListItemEvent  ,
ItemType   
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [1/5]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_TwoParams ( FOnItemCanAcceptDrop  ,
ItemType  ,
bool   
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [2/5]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_TwoParams ( FOnItemExpansionChanged  ,
ItemType  ,
bool   
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [3/5]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_TwoParams ( FOnItemIsHoveredChanged  ,
ItemType  ,
bool   
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [4/5]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_TwoParams ( FOnItemScrolledIntoView  ,
ItemType  ,
UUserWidget  
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [5/5]

template<typename ItemType >
ITypedUMGListView< ItemType >::DECLARE_MULTICAST_DELEGATE_TwoParams ( FOnListViewScrolled  ,
float  ,
float   
)

◆ GetDefaultEntryClass()

template<typename ItemType >
virtual TSubclassOf< UUserWidget > ITypedUMGListView< ItemType >::GetDefaultEntryClass ( ) const
pure virtual

◆ GetDesiredEntryClassForItem()

template<typename ItemType >
virtual TSubclassOf< UUserWidget > ITypedUMGListView< ItemType >::GetDesiredEntryClassForItem ( ItemType  Item) const
inlinevirtual

Default behavior is to check the delegate, then fall back to the default if that fails. Feel free to override directly in child classes to determine the class yourself.

◆ GetDesiredEntryPadding()

template<typename ItemType >
virtual FMargin ITypedUMGListView< ItemType >::GetDesiredEntryPadding ( ItemType  Item) const
inlineprotectedvirtual

Gets the desired padding for the entry representing the given item

Reimplemented in UListView, and UTileView.

◆ GetEntryWidgetFromItem()

template<typename ItemType >
template<typename RowWidgetT = UUserWidget>
RowWidgetT * ITypedUMGListView< ItemType >::GetEntryWidgetFromItem ( const ItemType &  Item) const
inline

◆ GetIndexInList()

template<typename ItemType >
int32 ITypedUMGListView< ItemType >::GetIndexInList ( const ItemType &  Item) const
inline

◆ GetMyListView()

template<typename ItemType >
virtual SListView< ItemType > * ITypedUMGListView< ItemType >::GetMyListView ( ) const
protectedpure virtual

◆ GetNumItemsSelected()

template<typename ItemType >
int32 ITypedUMGListView< ItemType >::GetNumItemsSelected ( ) const
inline

◆ GetObjectRowFromItem()

template<typename ItemType >
template<template< typename > class ObjectRowT = SObjectTableRow>
TSharedPtr< ObjectRowT< ItemType > > ITypedUMGListView< ItemType >::GetObjectRowFromItem ( const ItemType &  Item) const
inlineprotected

Gets the SObjectTableRow underlying the UMG EntryWidget that represents the given item (if one exists)

◆ GetOwningUserIndex()

template<typename ItemType >
virtual uint32 ITypedUMGListView< ItemType >::GetOwningUserIndex ( ) const
protectedpure virtual

◆ GetSelectedItem()

template<typename ItemType >
NullableItemType ITypedUMGListView< ItemType >::GetSelectedItem ( ) const
inline

◆ GetSelectedItems()

template<typename ItemType >
int32 ITypedUMGListView< ItemType >::GetSelectedItems ( TArray< ItemType > &  OutSelectedItems) const
inline

◆ IsDesignerPreview()

template<typename ItemType >
virtual bool ITypedUMGListView< ItemType >::IsDesignerPreview ( ) const
protectedpure virtual

◆ IsItemSelected()

template<typename ItemType >
bool ITypedUMGListView< ItemType >::IsItemSelected ( const ItemType &  Item) const
inline

◆ IsItemVisible()

template<typename ItemType >
bool ITypedUMGListView< ItemType >::IsItemVisible ( const ItemType &  Item) const
inline

◆ ItemFromEntryWidget()

template<typename ItemType >
const TObjectPtrWrapTypeOf< ItemType > * ITypedUMGListView< ItemType >::ItemFromEntryWidget ( const UUserWidget EntryWidget) const
inline

◆ OnFinishedScrolling()

template<typename ItemType >
virtual FOnFinishedScrolling & ITypedUMGListView< ItemType >::OnFinishedScrolling ( ) const
pure virtual

◆ OnGenerateEntryWidgetInternal()

template<typename ItemType >
virtual UUserWidget & ITypedUMGListView< ItemType >::OnGenerateEntryWidgetInternal ( ItemType  Item,
TSubclassOf< UUserWidget DesiredEntryClass,
const TSharedRef< STableViewBase > &  OwnerTable 
)
protectedpure virtual

Generates the actual entry widget that represents the given item. Expected to be used in concert with UListViewBase::GenerateTypedEntry().

Implemented in UListView.

◆ OnGetChildrenInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnGetChildrenInternal ( ItemType  Item,
TArray< ItemType > &  OutChildren 
) const
inlineprotectedvirtual

TreeViews only. Gets the items to consider children of the given item when generating child entries.

Reimplemented in UTreeView.

◆ OnGetEntryClassForItem()

template<typename ItemType >
virtual FOnGetEntryClassForItem & ITypedUMGListView< ItemType >::OnGetEntryClassForItem ( ) const
pure virtual

◆ OnIsItemSelectableOrNavigable()

template<typename ItemType >
virtual FOnIsItemSelectableOrNavigable & ITypedUMGListView< ItemType >::OnIsItemSelectableOrNavigable ( ) const
pure virtual

◆ OnIsSelectableOrNavigableInternal()

template<typename ItemType >
virtual bool ITypedUMGListView< ItemType >::OnIsSelectableOrNavigableInternal ( ItemType  FirstSelectedItem)
inlineprotectedvirtual

Reimplemented in UListView.

◆ OnItemAcceptDrop()

template<typename ItemType >
virtual FSimpleListItemEvent & ITypedUMGListView< ItemType >::OnItemAcceptDrop ( ) const
pure virtual

◆ OnItemCanAcceptDrop()

template<typename ItemType >
virtual FOnItemCanAcceptDrop & ITypedUMGListView< ItemType >::OnItemCanAcceptDrop ( ) const
pure virtual

◆ OnItemClicked()

template<typename ItemType >
virtual FSimpleListItemEvent & ITypedUMGListView< ItemType >::OnItemClicked ( ) const
pure virtual

◆ OnItemClickedInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnItemClickedInternal ( ItemType  Item)
inlineprotectedvirtual

ListView events - implement these instead of binding handlers directly to a list

Reimplemented in UListView, and UTreeView.

◆ OnItemDoubleClicked()

template<typename ItemType >
virtual FSimpleListItemEvent & ITypedUMGListView< ItemType >::OnItemDoubleClicked ( ) const
pure virtual

◆ OnItemDoubleClickedInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnItemDoubleClickedInternal ( ItemType  Item)
inlineprotectedvirtual

Reimplemented in UListView.

◆ OnItemDragCancelled()

template<typename ItemType >
virtual FOnItemDragCancelled & ITypedUMGListView< ItemType >::OnItemDragCancelled ( ) const
pure virtual

◆ OnItemDragDetected()

template<typename ItemType >
virtual FSimpleListItemEvent & ITypedUMGListView< ItemType >::OnItemDragDetected ( ) const
pure virtual

◆ OnItemDragEnter()

template<typename ItemType >
virtual FSimpleListItemEvent & ITypedUMGListView< ItemType >::OnItemDragEnter ( ) const
pure virtual

◆ OnItemDragLeave()

template<typename ItemType >
virtual FSimpleListItemEvent & ITypedUMGListView< ItemType >::OnItemDragLeave ( ) const
pure virtual

◆ OnItemExpansionChanged()

template<typename ItemType >
virtual FOnItemExpansionChanged & ITypedUMGListView< ItemType >::OnItemExpansionChanged ( ) const
pure virtual

◆ OnItemExpansionChangedInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnItemExpansionChangedInternal ( ItemType  Item,
bool  bIsExpanded 
)
inlineprotectedvirtual

Reimplemented in UTreeView.

◆ OnItemIsHoveredChanged()

template<typename ItemType >
virtual FOnItemIsHoveredChanged & ITypedUMGListView< ItemType >::OnItemIsHoveredChanged ( ) const
pure virtual

◆ OnItemScrolledIntoView()

template<typename ItemType >
virtual FOnItemScrolledIntoView & ITypedUMGListView< ItemType >::OnItemScrolledIntoView ( ) const
pure virtual

◆ OnItemScrolledIntoViewInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnItemScrolledIntoViewInternal ( ItemType  Item,
UUserWidget EntryWidget 
)
inlineprotectedvirtual

Reimplemented in UListView.

◆ OnItemSelectionChanged()

template<typename ItemType >
virtual FOnItemSelectionChanged & ITypedUMGListView< ItemType >::OnItemSelectionChanged ( ) const
pure virtual

◆ OnListViewFinishedScrollingInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnListViewFinishedScrollingInternal ( )
inlineprotectedvirtual

Reimplemented in UListView.

◆ OnListViewScrolled()

template<typename ItemType >
virtual FOnListViewScrolled & ITypedUMGListView< ItemType >::OnListViewScrolled ( ) const
pure virtual

◆ OnListViewScrolledInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnListViewScrolledInternal ( float  ItemOffset,
float  DistanceRemaining 
)
inlineprotectedvirtual

Reimplemented in UListView.

◆ OnSelectionChangedInternal()

template<typename ItemType >
virtual void ITypedUMGListView< ItemType >::OnSelectionChangedInternal ( NullableItemType  FirstSelectedItem)
inlineprotectedvirtual

◆ RequestNavigateToItem()

template<typename ItemType >
void ITypedUMGListView< ItemType >::RequestNavigateToItem ( const ItemType &  Item)
inline

◆ RequestScrollItemIntoView()

template<typename ItemType >
void ITypedUMGListView< ItemType >::RequestScrollItemIntoView ( const ItemType &  Item)
inline

◆ SetItemSelection()

template<typename ItemType >
void ITypedUMGListView< ItemType >::SetItemSelection ( const ItemType &  Item,
bool  bIsSelected,
ESelectInfo::Type  SelectInfo = ESelectInfo::Direct 
)
inline

◆ SetSelectedItem()

template<typename ItemType >
void ITypedUMGListView< ItemType >::SetSelectedItem ( const ItemType &  SoleSelectedItem,
ESelectInfo::Type  SelectInfo = ESelectInfo::Direct 
)
inline

The documentation for this class was generated from the following file: