UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
STileView.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "InputCoreTypes.h"
7#include "Layout/Visibility.h"
9#include "Input/Reply.h"
10#include "Styling/SlateTypes.h"
17
22template <typename ItemType>
23class STileView : public SListView<ItemType>
24{
25public:
27
35
37
39
40public:
41
76
77 SLATE_EVENT( FOnGenerateRow, OnGenerateTile )
78
80
82
84
86
88
90
92
94
96
98
100
102
104
106
108
110
112
114
116
118
120
122
124
126
128
129 SLATE_ARGUMENT( EVisibility, ScrollbarDisabledVisibility );
130
132
134
136
138
140
143
145
147
149
155 void Construct( const typename STileView<ItemType>::FArguments& InArgs )
156 {
157 this->Clipping = InArgs._Clipping;
158
159 this->OnGenerateRow = InArgs._OnGenerateTile;
160 this->OnRefreshRow = InArgs._OnRefreshTile;
161 this->OnRowReleased = InArgs._OnTileReleased;
162 this->OnItemScrolledIntoView = InArgs._OnItemScrolledIntoView;
163
164 this->SetItemsSource(InArgs.MakeListItemsSource(this->SharedThis(this)));
165 this->OnContextMenuOpening = InArgs._OnContextMenuOpening;
166 this->OnItemsRebuilt = InArgs._OnItemsRebuilt;
167 this->OnClick = InArgs._OnMouseButtonClick;
168 this->OnDoubleClick = InArgs._OnMouseButtonDoubleClick;
169 this->OnSelectionChanged = InArgs._OnSelectionChanged;
170 this->OnIsSelectableOrNavigable = InArgs._OnIsSelectableOrNavigable;
171 this->SelectionMode = InArgs._SelectionMode;
172
173 this->bClearSelectionOnClick = InArgs._ClearSelectionOnClick;
174
175 this->AllowOverscroll = InArgs._AllowOverscroll;
176 this->ConsumeMouseWheel = InArgs._ConsumeMouseWheel;
177 this->WheelScrollMultiplier = InArgs._WheelScrollMultiplier;
178
179 this->bHandleGamepadEvents = InArgs._HandleGamepadEvents;
180 this->bHandleDirectionalNavigation = InArgs._HandleDirectionalNavigation;
181 this->IsFocusable = InArgs._IsFocusable;
182
183 this->bEnableAnimatedScrolling = InArgs._EnableAnimatedScrolling;
184 this->FixedLineScrollOffset = InArgs._FixedLineScrollOffset;
185
186 this->OnItemToString_Debug = InArgs._OnItemToString_Debug.IsBound()
187 ? InArgs._OnItemToString_Debug
189 this->OnEnteredBadState = InArgs._OnEnteredBadState;
190
191 this->bWrapHorizontalNavigation = InArgs._WrapHorizontalNavigation;
192
193 // Check for any parameters that the coder forgot to specify.
194 FString ErrorString;
195 {
196 if ( !this->OnGenerateRow.IsBound() )
197 {
198 ErrorString += TEXT("Please specify an OnGenerateTile. \n");
199 }
200
201 if ( !this->HasValidItemsSource() )
202 {
203 ErrorString += TEXT("Please specify a ListItemsSource. \n");
204 }
205 }
206
207 if (ErrorString.Len() > 0)
208 {
209 // Let the coder know what they forgot
210 this->ChildSlot
212 .VAlign(VAlign_Center)
213 [
215 .Text(FText::FromString(ErrorString))
216 ];
217 }
218 else
219 {
220 // Make the TableView
221 this->ConstructChildren(InArgs._ItemWidth, InArgs._ItemHeight, InArgs._ItemAlignment, TSharedPtr<SHeaderRow>(), InArgs._ExternalScrollbar, InArgs._Orientation, InArgs._OnTileViewScrolled, InArgs._ScrollBarStyle);
222 if (this->ScrollBar.IsValid())
223 {
224 this->ScrollBar->SetDragFocusCause(InArgs._ScrollbarDragFocusCause);
225 this->ScrollBar->SetUserVisibility(InArgs._ScrollbarVisibility);
226 this->ScrollBar->SetScrollbarDisabledVisibility(InArgs._ScrollbarDisabledVisibility);
227 }
229 }
230 }
231
236
237public:
238
239 // SWidget overrides
240
242 {
244 {
246
250
251 const EUINavigation NavType = InNavigationEvent.GetNavigationType();
252 if ((this->Orientation == Orient_Vertical && NavType == EUINavigation::Left) ||
253 (this->Orientation == Orient_Horizontal && NavType == EUINavigation::Up))
254 {
256 {
258 }
259 }
260 else if ((this->Orientation == Orient_Vertical && NavType == EUINavigation::Right) ||
261 (this->Orientation == Orient_Horizontal && NavType == EUINavigation::Down))
262 {
264 {
266 }
267 }
268
269 // If it's valid we'll scroll it into view and return an explicit widget in the FNavigationReply
270 if (ItemsSourceRef.IsValidIndex(AttemptSelectIndex) && this->bIsGamepadScrollingEnabled)
271 {
273 return FNavigationReply::Explicit(nullptr);
274 }
275 }
276
278 }
279
280public:
281
283 {
284 // Clear all the items from our panel. We will re-add them in the correct order momentarily.
285 this->ClearWidgets();
286
287 const TArrayView<const ItemType> Items = this->GetItems();
288 if (Items.Num() > 0)
289 {
290 // Item width and height is constant by design.
293
294 const int32 NumItems = Items.Num();
296 const int32 NumItemsPaddedToFillLastLine = (NumItems % NumItemsPerLine != 0)
297 ? NumItems + NumItemsPerLine - NumItems % NumItemsPerLine
298 : NumItems;
299
300 const double LinesPerScreen = AllottedDimensions.ScrollAxis / TileDimensions.ScrollAxis;
302 const double ClampedScrollOffset = FMath::Clamp(this->CurrentScrollOffset, 0.0, EndOfListOffset);
303 const float LayoutScaleMultiplier = MyGeometry.GetAccumulatedLayoutTransform().GetScale();
304
305 // Once we run out of vertical and horizontal space, we stop generating widgets.
307
308 // Index of the item at which we start generating based on how far scrolled down we are
309 int32 StartIndex = FMath::Max( 0, FMath::FloorToInt32(ClampedScrollOffset / NumItemsPerLine) * NumItemsPerLine);
310
311 // Let the WidgetGenerator know that we are starting a pass so that it can keep track of data items and widgets.
312 this->WidgetGenerator.OnBeginGenerationPass();
313
314 // Actually generate the widgets.
315 bool bIsAtEndOfList = false;
316 bool bHasFilledAvailableArea = false;
317 bool bNewLine = true;
318 bool bFirstLine = true;
319 double NumLinesShownOnScreen = 0;
320 for( int32 ItemIndex = StartIndex; !bHasFilledAvailableArea && ItemIndex < NumItems; ++ItemIndex )
321 {
322 const ItemType& CurItem = Items[ItemIndex];
323
324 if (bNewLine)
325 {
326 bNewLine = false;
327
328 float LineFraction = 1.f;
329 if (bFirstLine)
330 {
331 bFirstLine = false;
332 LineFraction -= (float)FMath::Fractional(ClampedScrollOffset / NumItemsPerLine);
333 }
334
335 DimensionsUsedSoFar.ScrollAxis += TileDimensions.ScrollAxis * LineFraction;
336
337 if (DimensionsUsedSoFar.ScrollAxis > AllottedDimensions.ScrollAxis)
338 {
339 NumLinesShownOnScreen += FMath::Max(1.0f - ((DimensionsUsedSoFar.ScrollAxis - AllottedDimensions.ScrollAxis) / TileDimensions.ScrollAxis), 0.0f);
340 }
341 else
342 {
344 }
345 }
346
347 SListView<ItemType>::GenerateWidgetForItem(CurItem, ItemIndex, StartIndex, LayoutScaleMultiplier);
348
349 // The widget used up some of the available space for the current line
350 DimensionsUsedSoFar.LineAxis += TileDimensions.LineAxis;
351
352 bIsAtEndOfList = ItemIndex >= NumItems - 1;
353
354 if (DimensionsUsedSoFar.LineAxis + TileDimensions.LineAxis > AllottedDimensions.LineAxis)
355 {
356 // A new line of widgets was completed - time to start another one
357 DimensionsUsedSoFar.LineAxis = 0;
358 bNewLine = true;
359 }
360
361 if (bIsAtEndOfList || bNewLine)
362 {
363 // We've filled all the available area when we've finished a line that's partially clipped by the end of the view
364 const float FloatPrecisionOffset = 0.001f;
366 }
367 }
368
369 // We have completed the generation pass. The WidgetGenerator will clean up unused Widgets.
370 this->WidgetGenerator.OnEndGenerationPass();
371
372 const float TotalGeneratedLineAxisSize = (float)(FMath::CeilToFloat(NumLinesShownOnScreen) * TileDimensions.ScrollAxis);
374 }
375
376 return STableViewBase::FReGenerateResults(0, 0, 0, false);
377
378 }
379
380 virtual int32 GetNumItemsBeingObserved() const override
381 {
382 const int32 NumItemsBeingObserved = this->GetItems().Num();
384
386 if ( NumItemsPerLine > 0 )
387 {
390 {
392 }
393 }
394
396 }
397
398protected:
399
404
406 {
407 const bool bWholeListVisible = this->DesiredScrollOffset == 0 && this->bWasAtEndOfList;
408 if (InAllowOverscroll == EAllowOverscroll::Yes && this->Overscroll.ShouldApplyOverscroll(this->DesiredScrollOffset == 0, this->bWasAtEndOfList, ScrollByAmountInSlateUnits))
409 {
411 const float ActuallyScrolledBy = this->Overscroll.ScrollBy(MyGeometry, UnclampedScrollDelta);
412 if (ActuallyScrolledBy != 0.0f)
413 {
414 this->RequestListRefresh();
415 }
416 return ActuallyScrolledBy;
417 }
418 else if (!bWholeListVisible)
419 {
420 const double NewScrollOffset = this->DesiredScrollOffset + ((ScrollByAmountInSlateUnits * (float)GetNumItemsPerLine()) / GetTileDimensions().ScrollAxis);
421
422 return this->ScrollTo( (float)NewScrollOffset );
423 }
424
425 return 0.f;
426 }
427
428 virtual int32 GetNumItemsPerLine() const override
429 {
432
433 const int32 NumItemsPerLine = TileDimensions.LineAxis > 0 ? FMath::FloorToInt(PanelDimensions.LineAxis / TileDimensions.LineAxis) : 1;
434 return FMath::Max(1, NumItemsPerLine);
435 }
436
443 {
445 {
447 if (IndexOfItem != INDEX_NONE)
448 {
450
451 double NumLiveWidgets = this->GetNumLiveWidgets();
452 if (NumLiveWidgets == 0 && this->IsPendingRefresh())
453 {
454 // Use the last number of widgets on screen to estimate if we actually need to scroll.
455 NumLiveWidgets = this->LastGenerateResults.ExactNumLinesOnScreen;
456
457 // If we still don't have any widgets, we're not in a situation where we can scroll an item into view
458 // (probably as nothing has been generated yet), so we'll defer this again until the next frame
459 if (NumLiveWidgets == 0)
460 {
462 }
463 }
464
465 this->EndInertialScrolling();
466
467 // Only scroll the item into view if it's not already in the visible range
470 const int32 LineOfItem = FMath::FloorToInt((float)IndexOfItem / (float)NumItemsPerLine);
471 const int32 NumFullLinesInView = FMath::FloorToInt32(ScrollLineOffset + NumLinesInView) - FMath::CeilToInt32(ScrollLineOffset);
472
473 const double MinDisplayedLine = this->bNavigateOnScrollIntoView ? FMath::FloorToDouble(ScrollLineOffset) : FMath::CeilToDouble(ScrollLineOffset);
474 const double MaxDisplayedLine = this->bNavigateOnScrollIntoView ? FMath::CeilToDouble(ScrollLineOffset + NumFullLinesInView) : FMath::FloorToDouble(ScrollLineOffset + NumFullLinesInView);
475
477 {
478 float NewLineOffset = 0.0f;
480 {
481 // The item was completely hidden so we scroll to center it.
482
483 // Set the line with the item at the beginning of the view area
485 // Center the line in the view area
487 // Center the tile itself
488 NewLineOffset += 0.5f;
489 }
490 else if (LineOfItem == MinDisplayedLine - 1)
491 {
492 // The item was just on the line above, set the line with the item at the beginning of the view area
493 // This prevent issues when navigating the list element by element triggers this code since we don't want to suddenly center an element
495 }
496 else // LineOfItem == MaxDisplayedLine + 1
497 {
498 // The item was just on the next line, scroll it into view
499 // This prevent issues when navigating the list element by element triggers this code since we don't want to suddenly center an element
500 if (this->FixedLineScrollOffset.IsSet())
501 {
502 // We should scroll to align a line with the top of the view while putting the item at the bottom
503 const int32 FullLinesInView = FMath::FloorToInt32(NumLinesInView);
504 NewLineOffset = (float)LineOfItem - ((float)FullLinesInView - 1.f);
505 }
506 else
507 {
508 // We should scroll just enough to show the item on the last line
510 }
511 }
512
513 // Convert the line offset into an item offset
514 double NewScrollOffset = NewLineOffset * (double)NumItemsPerLine;
515 // And clamp the scroll offset within the allowed limits
516 NewScrollOffset = FMath::Clamp(NewScrollOffset, 0., (double)GetNumItemsBeingObserved() - (double)NumItemsPerLine * NumLinesInView);
517
518 this->SetScrollOffset((float)NewScrollOffset);
519 }
520 else
521 {
522 // Make sure the line containing the existing entry for this item is fully in view
524 {
525 // This line is clipped at the top/left, so set it as the new offset
526 this->SetScrollOffset((float)(LineOfItem * NumItemsPerLine) - (this->FixedLineScrollOffset.IsSet() && LineOfItem > 0 ? 0.f : this->NavigationScrollOffset));
527 }
528 else if (LineOfItem == MaxDisplayedLine)
529 {
530 if (this->FixedLineScrollOffset.IsSet())
531 {
532 // This line is clipped at the end but since FixedLineScrollOffset is set we must align a line to the top of the list,
533 // therefore we just scroll to the next line
534 const float HiddenLinesCount = (float)LineOfItem - FMath::FloorToFloat(NumLinesInView);
535 this->SetScrollOffset((1.0f + HiddenLinesCount) * (float)NumItemsPerLine);
536 }
537 else
538 {
539 // This line is clipped at the end, so we need to advance just enough to bring it fully into view
540 // Since all tiles are required to be of the same size, this is straightforward
542 this->SetScrollOffset(NewLineOffset * (float)NumItemsPerLine);
543 }
544 }
545 }
546
547 this->RequestListRefresh();
548
550 }
551
553 }
554
556 {
557 if (this->bEnableAnimatedScrolling)
558 {
559 // When we have a target item we're shooting for, we haven't succeeded with the scroll until a widget for it exists
562 }
563 }
564
566 }
567
570};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
TSharedRef< InObjectType, InMode > MakeShared(InArgTypes &&... Args)
Definition SharedPointer.h:2009
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_STYLE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:280
#define SNew(WidgetType,...)
Definition DeclarativeSyntaxSupport.h:37
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_EVENT(DelegateName, EventName)
Definition DeclarativeSyntaxSupport.h:458
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
EFocusCause
Definition Events.h:25
return true
Definition ExternalRpcRegistry.cpp:601
#define SLATE_ITEMS_SOURCE_ARGUMENT(ArgType, ArgName)
Definition IItemsSource.h:20
EAllowOverscroll
Definition Overscroll.h:12
EListItemAlignment
Definition STableViewBase.h:34
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
float GetGlobalScrollAmount()
Definition SlateConstants.h:10
EOrientation
Definition SlateEnums.h:261
EUINavigation
Definition SlateEnums.h:99
EConsumeMouseWheel
Definition SlateTypes.h:26
Definition AppStyle.h:24
Definition NavigationReply.h:43
static FNavigationReply Explicit(TSharedPtr< SWidget > InFocusRecipient)
Definition NavigationReply.h:63
static CORE_API FText FromString(const ANSICHAR *String)
Definition Text.cpp:1081
FCompoundWidgetOneChildSlot ChildSlot
Definition SCompoundWidget.h:113
Definition SListView.h:66
bool HasValidItemsSource() const
Definition SListView.h:1790
TArrayView< const ItemType > GetItems() const
Definition SListView.h:1795
FOnRefreshRow OnRefreshRow
Definition SListView.h:2645
FOnItemToString_Debug OnItemToString_Debug
Definition SListView.h:2648
FIsSelectableOrNavigable OnIsSelectableOrNavigable
Definition SListView.h:2694
static FOnItemToString_Debug GetDefaultDebugDelegate()
Definition SListView.h:2145
FWidgetGenerator WidgetGenerator
Definition SListView.h:2630
FOnWidgetToBeRemoved OnRowReleased
Definition SListView.h:2654
TAttribute< bool > IsFocusable
Definition SListView.h:2706
NullableItemType ItemToScrollIntoView
Definition SListView.h:2679
FOnItemScrolledIntoView OnItemScrolledIntoView
Definition SListView.h:2657
NullableItemType SelectorItem
Definition SListView.h:2666
FOnMouseButtonClick OnClick
Definition SListView.h:2697
FOnMouseButtonDoubleClick OnDoubleClick
Definition SListView.h:2700
FOnTableViewBadState OnEnteredBadState
Definition SListView.h:2651
float GenerateWidgetForItem(const ItemType &CurItem, int32 ItemIndex, int32 StartIndex, float LayoutScaleMultiplier)
Definition SListView.h:1535
bool bNavigateOnScrollIntoView
Definition SListView.h:2730
bool bHandleDirectionalNavigation
Definition SListView.h:2718
void SetItemsSource(const TArray< ItemType > *InListItemsSource)
Definition SListView.h:1721
FOnGenerateRow OnGenerateRow
Definition SListView.h:2639
FOnFinishedScrolling OnFinishedScrolling
Definition SListView.h:2660
NullableItemType ItemToNotifyWhenInView
Definition SListView.h:2685
virtual TSharedPtr< ITableRow > WidgetFromItem(const ItemType &InItem) const override
Definition SListView.h:2094
virtual FNavigationReply OnNavigation(const FGeometry &MyGeometry, const FNavigationEvent &InNavigationEvent) override
Definition SListView.h:512
FOnSelectionChanged OnSelectionChanged
Definition SListView.h:2691
virtual void NavigationSelect(const ItemType &InItemToSelect, const FInputEvent &InInputEvent)
Definition SListView.h:2566
bool bHandleGamepadEvents
Definition SListView.h:2715
float NavigationScrollOffset
Definition SListView.h:2709
bool bClearSelectionOnClick
Definition SListView.h:2712
void SetUserVisibility(TAttribute< EVisibility > InUserVisibility)
Definition SScrollBar.h:136
SLATE_API void SetDragFocusCause(EFocusCause InDragFocusCause)
Definition SScrollBar.cpp:394
SLATE_API void SetScrollbarDisabledVisibility(EVisibility InVisibility)
Definition SScrollBar.cpp:426
virtual SLATE_API float GetNumLiveWidgets() const
Definition STableViewBase.cpp:1242
TAttribute< ESelectionMode::Type > SelectionMode
Definition STableViewBase.h:526
FOverscroll Overscroll
Definition STableViewBase.h:586
FReGenerateResults LastGenerateResults
Definition STableViewBase.h:511
double DesiredScrollOffset
Definition STableViewBase.h:496
virtual SLATE_API float ScrollTo(float InScrollOffset)
Definition STableViewBase.cpp:1007
bool bWasAtEndOfList
Definition STableViewBase.h:514
float WheelScrollMultiplier
Definition STableViewBase.h:541
FSimpleDelegate OnItemsRebuilt
Definition STableViewBase.h:523
SLATE_API float GetItemWidth() const
Definition STableViewBase.cpp:1215
virtual SLATE_API void RequestListRefresh()
Definition STableViewBase.cpp:837
FGeometry PanelGeometryLastTick
Definition STableViewBase.h:517
EAllowOverscroll AllowOverscroll
Definition STableViewBase.h:589
SLATE_API void SetScrollOffset(const float InScrollOffset)
Definition STableViewBase.cpp:1027
SLATE_API void EndInertialScrolling(const bool bInShouldStopScrollNow=false)
Definition STableViewBase.cpp:1038
FOnContextMenuOpening OnContextMenuOpening
Definition STableViewBase.h:520
EOrientation Orientation
Definition STableViewBase.h:550
EScrollIntoViewResult
Definition STableViewBase.h:401
virtual SLATE_API FReply OnMouseButtonDoubleClick(const FGeometry &InMyGeometry, const FPointerEvent &InMouseEvent) override
Definition STableViewBase.cpp:555
SLATE_API float GetItemHeight() const
Definition STableViewBase.cpp:1220
SLATE_API void ClearWidgets()
Definition STableViewBase.cpp:1181
SLATE_API bool IsPendingRefresh() const
Definition STableViewBase.cpp:842
SLATE_API double GetTargetScrollOffset() const
Definition STableViewBase.cpp:918
TSharedPtr< SScrollBar > ScrollBar
Definition STableViewBase.h:443
double CurrentScrollOffset
Definition STableViewBase.h:489
EConsumeMouseWheel ConsumeMouseWheel
Definition STableViewBase.h:592
bool bEnableAnimatedScrolling
Definition STableViewBase.h:471
SLATE_API void ConstructChildren(const TAttribute< float > &InItemWidth, const TAttribute< float > &InItemHeight, const TAttribute< EListItemAlignment > &InItemAlignment, const TSharedPtr< SHeaderRow > &InHeaderRow, const TSharedPtr< SScrollBar > &InScrollBar, EOrientation InScrollOrientation, const FOnTableViewScrolled &InOnTableViewScrolled, const FScrollBarStyle *InScrollBarStyle=nullptr, const bool bInPreventThrottling=false)
Definition STableViewBase.cpp:130
TOptional< double > FixedLineScrollOffset
Definition STableViewBase.h:468
Definition STextBlock.h:45
Definition STileView.h:24
virtual int32 GetNumItemsBeingObserved() const override
Definition STileView.h:380
SLATE_BEGIN_ARGS(STileView< ItemType >)
Definition STileView.h:42
TSlateDelegates< ItemType >::FOnRefreshRow FOnRefreshRow
Definition STileView.h:29
TSlateDelegates< ItemType >::FOnMouseButtonClick FOnMouseButtonClick
Definition STileView.h:31
virtual SListView< ItemType >::EScrollIntoViewResult ScrollIntoView(const FGeometry &ListViewGeometry) override
Definition STileView.h:442
TSlateDelegates< NullableItemType >::FOnSelectionChanged FOnSelectionChanged
Definition STileView.h:33
virtual int32 GetNumItemsPerLine() const override
Definition STileView.h:428
STileView(ETableViewMode::Type InListMode=ETableViewMode::Tile)
Definition STileView.h:232
void Construct(const typename STileView< ItemType >::FArguments &InArgs)
Definition STileView.h:155
bool bWrapHorizontalNavigation
Definition STileView.h:569
TSlateDelegates< ItemType >::FOnItemScrolledIntoView FOnItemScrolledIntoView
Definition STileView.h:30
virtual FNavigationReply OnNavigation(const FGeometry &MyGeometry, const FNavigationEvent &InNavigationEvent) override
Definition STileView.h:241
virtual float ScrollBy(const FGeometry &MyGeometry, float ScrollByAmountInSlateUnits, EAllowOverscroll InAllowOverscroll) override
Definition STileView.h:405
TSlateDelegates< ItemType >::FOnItemToString_Debug FOnItemToString_Debug
Definition STileView.h:36
TSlateDelegates< ItemType >::FIsSelectableOrNavigable FIsSelectableOrNavigable
Definition STileView.h:34
virtual STableViewBase::FReGenerateResults ReGenerateItems(const FGeometry &MyGeometry) override
Definition STileView.h:282
TSlateDelegates< ItemType >::FOnMouseButtonDoubleClick FOnMouseButtonDoubleClick
Definition STileView.h:32
typename SListView< ItemType >::FOnWidgetToBeRemoved FOnWidgetToBeRemoved
Definition STileView.h:38
FTableViewDimensions GetTileDimensions() const
Definition STileView.h:400
TSlateDelegates< ItemType >::FOnGenerateRow FOnGenerateRow
Definition STileView.h:28
TListTypeTraits< ItemType >::NullableType NullableItemType
Definition STileView.h:26
EWidgetClipping Clipping
Definition SWidget.h:1827
void AddMetadata(const TSharedRef< MetaDataType > &AddMe)
Definition SWidget.h:1383
MixedIntoType & HAlign(EHorizontalAlignment InHAlignment)
Definition BasicLayoutWidgetSlot.h:149
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
constexpr bool Find(const ElementType &Item, SizeType &Index) const
Definition ArrayView.h:517
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis(OtherType *ThisPtr)
Definition SharedPointer.h:1780
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition SlateDelegates.h:134
Definition TableViewMetadata.h:20
Definition ITypedTableView.h:14
Type
Definition ITypedTableView.h:16
Type
Definition ITypedTableView.h:37
@ Tile
Definition ITypedTableView.h:39
@ false
Definition radaudio_common.h:23
Definition Visibility.h:12
Definition Geometry.h:40
UE::Slate::FDeprecateVector2DResult GetLocalSize() const
Definition Geometry.h:510
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition Events.h:1148
ENavigationGenesis GetNavigationGenesis() const
Definition Events.h:1178
SLATE_API float ScrollBy(const FGeometry &AllottedGeometry, float LocalDeltaScroll)
Definition Overscroll.cpp:14
SLATE_API bool ShouldApplyOverscroll(const bool bIsAtStartOfList, const bool bIsAtEndOfList, const float ScrollDelta) const
Definition Overscroll.cpp:61
Definition SlateTypes.h:932
Definition STableViewBase.h:80
float ScrollAxis
Definition STableViewBase.h:98
Definition STableViewBase.h:365
double ExactNumLinesOnScreen
Definition STableViewBase.h:380
Definition TableViewTypeTraits.h:121
Definition Optional.h:131
constexpr bool IsSet() const
Definition Optional.h:69