UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SComboBox.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/Margin.h"
11#include "Input/Events.h"
12#include "Input/Reply.h"
13#include "Widgets/SWidget.h"
14#include "Sound/SlateSound.h"
15#include "Styling/SlateTypes.h"
16#include "Styling/AppStyle.h"
21#include "Widgets/Layout/SBox.h"
27#if WITH_ACCESSIBILITY
31#endif
32
34
35
36template<typename OptionType>
37class SComboRow : public STableRow< OptionType >
38{
39public:
40
42 : _Style(&FAppStyle::Get().GetWidgetStyle<FTableRowStyle>("ComboBox.Row"))
43 , _Content()
44 , _Padding(FMargin(0))
45 {}
47 SLATE_DEFAULT_SLOT( FArguments, Content )
50
51public:
52
56 void Construct( const FArguments& InArgs, const TSharedRef<STableViewBase>& InOwnerTable )
57 {
60 .Style(InArgs._Style)
61 .Padding(InArgs._Padding)
62 .Content()
63 [
64 InArgs._Content.Widget
65 ]
67 );
68 }
69
70 // handle case where user clicks on an existing selected item
72 {
73 if (MouseEvent.GetEffectingButton() == EKeys::LeftMouseButton )
74 {
76
77 const TObjectPtrWrapTypeOf<OptionType>* MyItem = OwnerWidget->Private_ItemFromWidget( this );
78 const bool bIsSelected = OwnerWidget->Private_IsItemSelected( *MyItem );
79
80 if (bIsSelected)
81 {
82 // Reselect content to ensure selection is taken
83 OwnerWidget->Private_SignalSelectionChanged(ESelectInfo::OnMouseClick);
84 return FReply::Handled();
85 }
86 }
88 }
89};
90
91
95template< typename OptionType >
96class SComboBox : public SComboButton
97{
98public:
99
102
108
110 : _Content()
111 , _ComboBoxStyle(&FAppStyle::Get().GetWidgetStyle< FComboBoxStyle >("ComboBox"))
112 , _ButtonStyle(nullptr)
113 , _ItemStyle(&FAppStyle::Get().GetWidgetStyle< FTableRowStyle >("ComboBox.Row"))
114 , _ScrollBarStyle(&FAppStyle::Get().GetWidgetStyle<FScrollBarStyle>("ScrollBar"))
115 , _ContentPadding(_ComboBoxStyle->ContentPadding)
116 , _ForegroundColor(FSlateColor::UseStyle())
119 , _InitiallySelectedItem(ListTypeTraits::MakeNullPtr())
120 , _Method()
121 , _MaxListHeight(450.0f)
124 , _IsFocusable( true )
125 {}
126
128 SLATE_DEFAULT_SLOT( FArguments, Content )
129
130 SLATE_STYLE_ARGUMENT( FComboBoxStyle, ComboBoxStyle )
131
132
133 SLATE_STYLE_ARGUMENT( FButtonStyle, ButtonStyle )
134
136
137 SLATE_STYLE_ARGUMENT( FScrollBarStyle, ScrollBarStyle )
138
139 SLATE_ATTRIBUTE( FMargin, ContentPadding )
140 SLATE_ATTRIBUTE( FSlateColor, ForegroundColor )
141
143 SLATE_EVENT( FOnSelectionChanged, OnSelectionChanged )
144 SLATE_EVENT( FOnGenerateWidget, OnGenerateWidget )
145
146
147 SLATE_EVENT( FOnComboBoxOpening, OnComboBoxOpening )
148
149
150 SLATE_ARGUMENT(TSharedPtr<SScrollBar>, CustomScrollbar)
151
152
154
156
157
159
160
162
163
165
166
171
172
176 SLATE_ARGUMENT(bool, EnableGamepadNavigationMode)
177
178
179 SLATE_ARGUMENT( bool, IsFocusable )
180
181
183
185
186
191 void Construct( const FArguments& InArgs )
192 {
193 check(InArgs._ComboBoxStyle);
194
195 ItemStyle = InArgs._ItemStyle;
196 ComboBoxStyle = InArgs._ComboBoxStyle;
197 MenuRowPadding = ComboBoxStyle->MenuRowPadding;
198 bShowMenuBackground = false;
199
200 // Work out which values we should use based on whether we were given an override, or should use the style's version
202 const FButtonStyle* const OurButtonStyle = InArgs._ButtonStyle ? InArgs._ButtonStyle : &OurComboButtonStyle.ButtonStyle;
203 PressedSound = InArgs._PressedSoundOverride.Get(ComboBoxStyle->PressedSlateSound);
204 SelectionChangeSound = InArgs._SelectionChangeSoundOverride.Get(ComboBoxStyle->SelectionChangeSlateSound);
205
206 this->OnComboBoxOpening = InArgs._OnComboBoxOpening;
207 this->OnSelectionChanged = InArgs._OnSelectionChanged;
208 this->OnGenerateWidget = InArgs._OnGenerateWidget;
209 this->EnableGamepadNavigationMode = InArgs._EnableGamepadNavigationMode;
210 this->bControllerInputCaptured = false;
211
212 CustomScrollbar = InArgs._CustomScrollbar;
213
214 ComboBoxMenuContent =
215 SNew(SBox)
216 .MaxDesiredHeight(InArgs._MaxListHeight)
217 [
218 SAssignNew(this->ComboListView, SComboListType)
219 .ListItemsSource(InArgs.GetOptionsSource())
222 .OnKeyDownHandler(this, &SComboBox< OptionType >::OnKeyDownHandler)
223 .SelectionMode(ESelectionMode::Single)
224 .ScrollBarStyle(InArgs._ScrollBarStyle)
225 .ExternalScrollbar(InArgs._CustomScrollbar)
226
227 ];
228
229 // Set up content
230 TSharedPtr<SWidget> ButtonContent = InArgs._Content.Widget;
231 if (InArgs._Content.Widget == SNullWidget::NullWidget)
232 {
234 .Text(NSLOCTEXT("SComboBox", "ContentWarning", "No Content Provided"))
235 .ColorAndOpacity( FLinearColor::Red);
236 }
237
238
239 SComboButton::Construct( SComboButton::FArguments()
240 .ComboButtonStyle(&OurComboButtonStyle)
241 .ButtonStyle(OurButtonStyle)
242 .Method( InArgs._Method )
243 .ButtonContent()
244 [
245 ButtonContent.ToSharedRef()
246 ]
247 .MenuContent()
248 [
249 ComboBoxMenuContent.ToSharedRef()
250 ]
251 .HasDownArrow( InArgs._HasDownArrow )
252 .ContentPadding( InArgs._ContentPadding )
253 .ForegroundColor( InArgs._ForegroundColor )
254 .OnMenuOpenChanged(this, &SComboBox< OptionType >::OnMenuOpenChanged)
255 .IsFocusable(InArgs._IsFocusable)
256 .CollapseMenuOnParentFocus(InArgs._CollapseMenuOnParentFocus)
257 );
258 SetMenuContentWidgetToFocus(ComboListView);
259
260 // Need to establish the selected item at point of construction so its available for querying
261 // NB: If you need a selection to fire use SetItemSelection rather than setting an IntiallySelectedItem
262 SelectedItem = InArgs._InitiallySelectedItem;
263 if( TListTypeTraits<OptionType>::IsPtrValid( SelectedItem ) )
264 {
266 ComboListView->Private_SetItemSelection(ValidatedItem, true);
267 ComboListView->RequestScrollIntoView(ValidatedItem, 0);
268 }
269
270 ComboListView->SetBackgroundBrush(FStyleDefaults::GetNoBrush());
271 }
272
274 {
275#if WITH_ACCESSIBILITY
276 AccessibleBehavior = EAccessibleBehavior::Auto;
277 bCanChildrenBeAccessible = true;
278#endif
279 }
280
281#if WITH_ACCESSIBILITY
282 protected:
283 friend class FSlateAccessibleComboBox;
292 , public IAccessibleProperty
293 {
294 public:
297 {}
298
299 // IAccessibleWidget
300 virtual IAccessibleProperty* AsProperty() override
301 {
302 return this;
303 }
304 // ~
305
306 // IAccessibleProperty
307 virtual FString GetValue() const override
308 {
309 if (Widget.IsValid())
310 {
313 {
315 TSharedPtr<ITableRow> SelectedTableRow = ComboBox->ComboListView->WidgetFromItem(SelectedOption);
316 if (SelectedTableRow.IsValid())
317 {
319 return TableRowWidget->GetAccessibleText().ToString();
320 }
321 }
322 }
323 return FText::GetEmpty().ToString();
324 }
325
326 virtual FVariant GetValueAsVariant() const override
327 {
328 return FVariant(GetValue());
329 }
330 // ~
331 };
332
333 public:
335 {
337 }
338
340 {
341 // current behaviour will red out the templated type of the combo box which is verbose and unhelpful
342 // This coupled with UIA type will announce Combo Box twice, but it's the best we can do for now if there's no label
343 //@TODOAccessibility: Give a better name
344 static FString Name(TEXT("Combo Box"));
345 return FText::FromString(Name);
346 }
347#endif
348
350 {
351 ComboListView->ClearSelection();
352 }
353
355 {
357 {
359 ComboListView->SetSelection(InSelected);
360 }
361 else
362 {
363 ComboListView->ClearSelection();
364 }
365 }
366
368 {
369 this->EnableGamepadNavigationMode = InEnableGamepadNavigationMode;
370 }
371
373 {
374 ComboBoxMenuContent->SetMaxDesiredHeight(InMaxHeight);
375 }
376
378 {
379 if (ComboBoxStyle != InStyle)
380 {
381 ComboBoxStyle = InStyle;
383 }
384 }
385
390
392 {
393 if (ItemStyle != InItemStyle)
394 {
395 ItemStyle = InItemStyle;
397 }
398 }
399
404
407 {
408 return SelectedItem;
409 }
410
413 {
414 ComboListView->SetItemsSource(InListItemsSource);
415 }
416
422
425 {
426 ComboListView->ClearItemsSource();
427 }
428
435 {
436 ComboListView->RequestListRefresh();
437 }
438
439protected:
442 {
443 if (IsInteractable())
444 {
447 if (EnableGamepadNavigationMode)
448 {
449 // The controller's bottom face button must be pressed once to begin manipulating the combobox's value.
450 // Navigation away from the widget is prevented until the button has been pressed again or focus is lost.
452 {
453 if (bControllerInputCaptured == false)
454 {
455 // Begin capturing controller input and open the ListView
456 bControllerInputCaptured = true;
457 PlayPressedSound();
458 OnComboBoxOpening.ExecuteIfBound();
460 }
461 else
462 {
463 // Set selection to the selected item on the list and close
464 bControllerInputCaptured = false;
465
466 // Re-select first selected item, just in case it was selected by navigation previously
467 TArray<OptionType> SelectedItems = ComboListView->GetSelectedItems();
468 if (SelectedItems.Num() > 0)
469 {
470 OnSelectionChanged_Internal(SelectedItems[0], ESelectInfo::Direct);
471 }
472
473 // Set focus back to ComboBox
474 FReply Reply = FReply::Handled();
475 Reply.SetUserFocus(this->AsShared(), EFocusCause::SetDirectly);
476 return Reply;
477 }
478
479 }
481 {
482 const bool bWasInputCaptured = bControllerInputCaptured;
483
484 OnMenuOpenChanged(false);
486 {
487 return FReply::Handled();
488 }
489 }
490 else
491 {
492 if (bControllerInputCaptured)
493 {
494 return FReply::Handled();
495 }
496 }
497 }
498 else
499 {
501 {
504 {
506 const TArrayView<const OptionType> OptionsSource = ComboListView->GetItems();
507 const int32 SelectionIndex = OptionsSource.Find(ActuallySelected);
508 if (SelectionIndex >= 1)
509 {
510 // Select an item on the prev row
511 SetSelectedItem(OptionsSource[SelectionIndex - 1]);
512 }
513 }
514
515 return FReply::Handled();
516 }
518 {
521 {
523 const TArrayView<const OptionType> OptionsSource = ComboListView->GetItems();
524 const int32 SelectionIndex = OptionsSource.Find(ActuallySelected);
525 if (SelectionIndex < OptionsSource.Num() - 1)
526 {
527 // Select an item on the next row
528 SetSelectedItem(OptionsSource[SelectionIndex + 1]);
529 }
530 }
531 return FReply::Handled();
532 }
533
535 }
536 }
538 }
539
540 virtual bool SupportsKeyboardFocus() const override
541 {
542 return bIsFocusable;
543 }
544
545 virtual bool IsInteractable() const
546 {
547 return IsEnabled();
548 }
549
550private:
551
553 TSharedRef<ITableRow> GenerateMenuItemRow( OptionType InItem, const TSharedRef<STableViewBase>& OwnerTable)
554 {
555 if (OnGenerateWidget.IsBound())
556 {
557 return SNew(SComboRow<OptionType>, OwnerTable)
558 .Style(ItemStyle)
559 .Padding(MenuRowPadding)
560 [
561 OnGenerateWidget.Execute(InItem)
562 ];
563 }
564 else
565 {
566 return SNew(SComboRow<OptionType>, OwnerTable)
567 [
568 SNew(STextBlock).Text(NSLOCTEXT("SlateCore", "ComboBoxMissingOnGenerateWidgetMethod", "Please provide a .OnGenerateWidget() handler."))
569 ];
570
571 }
572 }
573
574 //** Called if the menu is closed
575 void OnMenuOpenChanged(bool bOpen)
576 {
577 if (bOpen == false)
578 {
579 bControllerInputCaptured = false;
580
582 {
583 // Ensure the ListView selection is set back to the last committed selection
585
586 ComboListView->SetSelection(ActuallySelected, ESelectInfo::OnNavigation);
587 ComboListView->RequestScrollIntoView(ActuallySelected, 0);
588 }
589
590 // Set focus back to ComboBox for users focusing the ListView that just closed
592 {
593 TSharedRef<SWidget> ThisRef = this->AsShared();
594 if (User.IsWidgetInFocusPath(this->ComboListView))
595 {
596 User.SetFocus(ThisRef);
597 }
598 });
599
600 }
601 }
602
604 void OnSelectionChanged_Internal( NullableOptionType ProposedSelection, ESelectInfo::Type SelectInfo )
605 {
606 // Ensure that the proposed selection is different
608 {
609 // Ensure that the proposed selection is different from selected
610 if ( ProposedSelection != SelectedItem )
611 {
612 PlaySelectionChangeSound();
613 SelectedItem = ProposedSelection;
614 OnSelectionChanged.ExecuteIfBound( ProposedSelection, SelectInfo );
615 }
616 // close combo even if user reselected item
617 this->SetIsOpen( false );
618 }
619 }
620
622 virtual FReply OnButtonClicked() override
623 {
624 // if user clicked to close the combo menu
625 if (this->IsOpen())
626 {
627 // Re-select first selected item, just in case it was selected by navigation previously
628 TArray<OptionType> SelectedItems = ComboListView->GetSelectedItems();
629 if (SelectedItems.Num() > 0)
630 {
631 OnSelectionChanged_Internal(SelectedItems[0], ESelectInfo::Direct);
632 }
633 }
634 else
635 {
636 PlayPressedSound();
637 OnComboBoxOpening.ExecuteIfBound();
638 }
639
641 }
642
643 FReply OnKeyDownHandler(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent)
644 {
645 if (InKeyEvent.GetKey() == EKeys::Enter)
646 {
647 // Select the first selected item on hitting enter
648 TArray<OptionType> SelectedItems = ComboListView->GetSelectedItems();
649 if (SelectedItems.Num() > 0)
650 {
651 OnSelectionChanged_Internal(SelectedItems[0], ESelectInfo::OnKeyPress);
652 return FReply::Handled();
653 }
654 }
655
656 return FReply::Unhandled();
657 }
658
659
661 void PlayPressedSound() const
662 {
663 FSlateApplication::Get().PlaySound( PressedSound );
664 }
665
667 void PlaySelectionChangeSound() const
668 {
669 FSlateApplication::Get().PlaySound( SelectionChangeSound );
670 }
671
673 FSlateSound PressedSound;
674
676 FSlateSound SelectionChangeSound;
677
679 const FTableRowStyle* ItemStyle;
680
682 const FComboBoxStyle* ComboBoxStyle;
683
685 FMargin MenuRowPadding;
686
687private:
689 FOnSelectionChanged OnSelectionChanged;
691 NullableOptionType SelectedItem;
693 TSharedPtr< SComboListType > ComboListView;
695 TSharedPtr< SScrollBar > CustomScrollbar;
697 FOnComboBoxOpening OnComboBoxOpening;
699 FOnGenerateWidget OnGenerateWidget;
700 // Use activate button to toggle ListView when enabled
701 bool EnableGamepadNavigationMode;
702 // Holds a flag indicating whether a controller/keyboard is manipulating the combobox's value.
703 // When true, navigation away from the widget is prevented until a new value has been accepted or canceled.
704 bool bControllerInputCaptured;
705
706 TSharedPtr<SBox> ComboBoxMenuContent;
707};
708
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
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 SAssignNew(ExposeAs, WidgetType,...)
Definition DeclarativeSyntaxSupport.h:41
#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_DEFAULT_SLOT(DeclarationType, SlotName)
Definition DeclarativeSyntaxSupport.h:444
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
return true
Definition ExternalRpcRegistry.cpp:601
#define SLATE_ITEMS_SOURCE_ARGUMENT(ArgType, ArgName)
Definition IItemsSource.h:20
#define NSLOCTEXT(InNamespace, InKey, InTextLiteral)
Definition Internationalization.h:300
typename UE::Core::Private::TObjectPtrWrapTypeOf< T >::Type TObjectPtrWrapTypeOf
Definition ObjectPtr.h:1761
EAccessibleType
Definition SWidget.h:76
EUINavigationAction
Definition SlateEnums.h:124
EUINavigation
Definition SlateEnums.h:99
Definition AppStyle.h:24
Definition Reply.h:24
static FReply Unhandled()
Definition Reply.h:241
SLATECORE_API FReply & SetUserFocus(TSharedRef< SWidget > GiveMeFocus, EFocusCause ReasonFocusIsChanging=EFocusCause::SetDirectly, bool bInAllUsers=false)
Definition Reply.cpp:40
static FReply Handled()
Definition Reply.h:233
virtual SLATE_API EUINavigation GetNavigationDirectionFromKey(const FKeyEvent &InKeyEvent) const override
Definition SlateApplication.cpp:2062
SLATE_API void PlaySound(const FSlateSound &SoundToPlay, int32 UserIndex=0) const
Definition SlateApplication.cpp:1066
SLATE_API void ForEachUser(TFunctionRef< void(FSlateUser &)> InPredicate, bool bIncludeVirtualUsers=false)
Definition SlateApplication.cpp:4549
virtual SLATE_API EUINavigationAction GetNavigationActionFromKey(const FKeyEvent &InKeyEvent) const override
Definition SlateApplication.cpp:2074
static FSlateApplication & Get()
Definition SlateApplication.h:319
Definition SlateUser.h:41
static SLATECORE_API const FSlateBrush * GetNoBrush()
Definition StyleDefaults.cpp:6
static CORE_API FText FromString(const ANSICHAR *String)
Definition Text.cpp:1081
static CORE_API const FText & GetEmpty()
Definition Text.cpp:252
CORE_API const FString & ToString() const
Definition Text.cpp:1263
Definition Variant.h:114
Definition SBox.h:29
SLATE_API void SetMaxDesiredHeight(TAttribute< FOptionalSize > InMaxDesiredHeight)
Definition SBox.cpp:109
Definition SComboBox.h:97
SComboBox()
Definition SComboBox.h:273
FReply OnKeyDown(const FGeometry &MyGeometry, const FKeyEvent &InKeyEvent) override
Definition SComboBox.h:441
TSlateDelegates< OptionType >::FOnGenerateWidget FOnGenerateWidget
Definition SComboBox.h:106
void InvalidateItemStyle()
Definition SComboBox.h:400
void SetStyle(const FComboBoxStyle *InStyle)
Definition SComboBox.h:377
NullableOptionType GetSelectedItem()
Definition SComboBox.h:406
SLATE_BEGIN_ARGS(SComboBox)
Definition SComboBox.h:109
void RefreshOptions()
Definition SComboBox.h:434
void SetMaxHeight(float InMaxHeight)
Definition SComboBox.h:372
void ClearItemsSource()
Definition SComboBox.h:424
SListView< OptionType > SComboListType
Definition SComboBox.h:104
virtual bool SupportsKeyboardFocus() const override
Definition SComboBox.h:540
void SetItemsSource(TSharedRef<::UE::Slate::Containers::TObservableArray< OptionType > > InListItemsSource)
Definition SComboBox.h:418
virtual bool IsInteractable() const
Definition SComboBox.h:545
void SetItemStyle(const FTableRowStyle *InItemStyle)
Definition SComboBox.h:391
void ClearSelection()
Definition SComboBox.h:349
void SetItemsSource(const TArray< OptionType > *InListItemsSource)
Definition SComboBox.h:412
TListTypeTraits< OptionType > ListTypeTraits
Definition SComboBox.h:100
TSlateDelegates< NullableOptionType >::FOnSelectionChanged FOnSelectionChanged
Definition SComboBox.h:107
void InvalidateStyle()
Definition SComboBox.h:386
void SetEnableGamepadNavigationMode(bool InEnableGamepadNavigationMode)
Definition SComboBox.h:367
void SetSelectedItem(NullableOptionType InSelectedItem)
Definition SComboBox.h:354
void Construct(const FArguments &InArgs)
Definition SComboBox.h:191
TListTypeTraits< OptionType >::NullableType NullableOptionType
Definition SComboBox.h:101
Definition SComboButton.h:25
bool bIsFocusable
Definition SComboButton.h:137
SLATE_API void Construct(const FArguments &InArgs)
Definition SComboButton.cpp:10
virtual SLATE_API FReply OnKeyDown(const FGeometry &MyGeometry, const FKeyEvent &InKeyEvent) override
Definition SComboButton.cpp:164
void SetMenuContentWidgetToFocus(TWeakPtr< SWidget > InWidgetToFocusPtr)
Definition SComboButton.h:91
virtual SLATE_API FReply OnButtonClicked()
Definition SComboButton.cpp:107
Definition SComboBox.h:38
virtual FReply OnMouseButtonDown(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent)
Definition SComboBox.h:71
void Construct(const FArguments &InArgs, const TSharedRef< STableViewBase > &InOwnerTable)
Definition SComboBox.h:56
SLATE_BEGIN_ARGS(SComboRow)
Definition SComboBox.h:41
static SLATECORE_API TSharedRef< class SWidget > NullWidget
Definition SNullWidget.h:22
Definition STableRow.h:87
const FTableRowStyle * Style
Definition STableRow.h:1252
void Construct(const typename STableRow< ItemType >::FArguments &InArgs, const TSharedRef< STableViewBase > &InOwnerTableView)
Definition STableRow.h:166
virtual FReply OnMouseButtonDown(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition STableRow.h:465
TWeakPtr< ITypedTableView< OptionType > > OwnerTablePtr
Definition STableRow.h:1240
TWeakPtr< SWidget > Content
Definition STableRow.h:1288
Definition STableViewBase.h:110
Definition STextBlock.h:45
virtual SLATECORE_API FReply OnKeyDown(const FGeometry &MyGeometry, const FKeyEvent &InKeyEvent)
Definition SWidget.cpp:412
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition SharedPointer.h:692
TSharedRef< ObjectType, Mode > ToSharedRef() const &
Definition SharedPointer.h:1028
Definition SharedPointer.h:153
Definition SlateDelegates.h:134
Definition SharedPointer.h:1295
UE_FORCEINLINE_HINT TSharedPtr< ObjectType, Mode > Pin() const &
Definition SharedPointer.h:1512
Type
Definition SlateEnums.h:311
@ OnNavigation
Definition SlateEnums.h:315
@ OnMouseClick
Definition SlateEnums.h:317
@ Direct
Definition SlateEnums.h:319
@ OnKeyPress
Definition SlateEnums.h:313
@ Single
Definition ITypedTableView.h:21
T::FDataType GetValue(const UBlackboardComponent &Blackboard, const FName &Name, FBlackboard::FKey &InOutCachedKey, const typename T::FDataType &DefaultValue)
Definition ValueOrBBKey.h:51
@ false
Definition radaudio_common.h:23
static INPUTCORE_API const FKey BackSpace
Definition InputCoreTypes.h:306
static INPUTCORE_API const FKey LeftMouseButton
Definition InputCoreTypes.h:300
static INPUTCORE_API const FKey Enter
Definition InputCoreTypes.h:308
Definition SlateTypes.h:509
Definition SlateTypes.h:742
FSlateSound SelectionChangeSlateSound
Definition SlateTypes.h:774
FSlateSound PressedSlateSound
Definition SlateTypes.h:767
FMargin MenuRowPadding
Definition SlateTypes.h:788
FComboButtonStyle ComboButtonStyle
Definition SlateTypes.h:760
Definition SlateTypes.h:645
Definition Geometry.h:40
Definition Events.h:431
static CORE_API const FLinearColor Red
Definition Color.h:460
Definition Margin.h:17
Definition Events.h:695
Definition SlateTypes.h:932
Definition SlateColor.h:42
Definition SlateSound.h:16
Definition SlateTypes.h:1641
Definition Optional.h:131
Definition ObservableArray.h:187