UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MultiBoxBuilder.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "CoreMinimal.h"
8#include "Misc/Attribute.h"
9#include "Layout/Visibility.h"
10#include "Widgets/SWidget.h"
11#include "Styling/CoreStyle.h"
13#include "Textures/SlateIcon.h"
19
20class FUICommandInfo;
21class FUICommandList;
22struct FSlateIcon;
23struct FUIAction;
24struct FButtonArgs;
25
28
29
34{
35
36public:
37
47
48 virtual ~FMultiBoxBuilder() {}
49
62
76
82 SLATE_API virtual TSharedRef< class SWidget > MakeWidget( FMultiBox::FOnMakeMultiBoxBuilderOverride* InMakeMultiBoxBuilderOverride = nullptr);
83
84
91
92
99
101
102
107
112
119
120
124 SLATE_API void PopExtender();
125
127 SLATE_API const ISlateStyle* GetStyleSet() const;
128
130 SLATE_API const FName& GetStyleName() const;
131
134
137
140
142 void SetExtendersEnabled(bool bEnabled) { bExtendersEnabled = bEnabled; }
143
145 bool ExtendersEnabled() const { return bExtendersEnabled; }
146
147protected:
150
152 virtual void ApplySectionBeginning() {}
153
154protected:
155
158
162
165
168
171
174
177};
178
236
241{
242
243public:
244
255
268
283
296
299
300protected:
303};
304
305
310{
311public:
312
337
343 SLATE_API virtual TSharedRef< class SWidget > MakeWidget( FMultiBox::FOnMakeMultiBoxBuilderOverride* InMakeMultiBoxBuilderOverride = nullptr) override;
344 SLATE_API virtual TSharedRef< class SWidget > MakeWidget( FMultiBox::FOnMakeMultiBoxBuilderOverride* InMakeMultiBoxBuilderOverride, uint32 MaxHeight);
345
346public:
352
362
366 SLATE_API void EndSection();
367
368
384
386
388
390
401
413
426
427
432
433 void SetIsEditing(bool bInIsEditing) { bIsEditing = bInIsEditing; }
434
435protected:
437 SLATE_API virtual void ApplyHook(FName InExtensionHook, EExtensionHook::Position HookPosition) override;
438 SLATE_API virtual void ApplySectionBeginning() override;
439
440public:
449
451
460
461 void SetSearchable(bool bIsSearchable) { bSearchable = bIsSearchable; };
462
463private:
465 FName CurrentSectionExtensionHook;
466
468 FText CurrentSectionHeadingText;
469
471 TAttribute<EVisibility> CurrentSectionVisibility;
472
474 TAttribute<FMenuEntryResizeParams> CurrentSectionResizeParams;
475
477 bool bSectionNeedsToBeApplied;
478
480 bool bSearchable;
481
483 bool bRecursivelySearchable;
484
486 bool bIsEditing;
487};
488
489
490
533
534
535
540{
541 friend class UToolMenus;
542public:
543
544 UE_DEPRECATED(4.26, "FToolBarBuilder constructor that takes in an EOrientation is deprecated. Use one of the specific per-type FToolbarBuilder overrides instead.")
553
561 , bSectionNeedsToBeApplied(false)
562 , bSectionShouldHaveSeparator(true)
563 , bIsFocusable(true)
564 , bForceSmallIcons(InForceSmallIcons)
565 {
566 MultiBox->bIsFocusable = bIsFocusable;
567 }
568
570
572
575
582
608 );
609
625 const FUIAction& InAction,
630 const EUserInterfaceActionType UserInterfaceActionType = EUserInterfaceActionType::Button,
635 );
636
654 const FUIAction& InAction,
659 bool bInSimpleComboBox = false,
666 );
667
675
686
697 SLATE_API void AddWidget(
700 bool bInSearchable = true,
704 );
705
717 SLATE_API void AddWidget(
721 bool bInSearchable = true,
725 );
726
739 );
740
750
754 SLATE_API void EndSection();
755
760
765
772protected:
773
782
783
785 SLATE_API virtual void ApplyHook(FName InExtensionHook, EExtensionHook::Position HookPosition) override;
786 SLATE_API virtual void ApplySectionBeginning() override;
787
789
795 bool bInSearchable = true,
799 );
800
801private:
803 FName CurrentSectionExtensionHook;
804
806 TAttribute<FMenuEntryResizeParams> CurrentSectionResizeParams;
807
808 FName CurrentStyleOverride;
809
810 TOptional< EVisibility > LabelVisibility;
811
813 bool bSectionNeedsToBeApplied;
814
816 bool bSectionShouldHaveSeparator;
817
819 bool bIsFocusable;
820
822 bool bForceSmallIcons;
823};
824
825
840
854
868
911
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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 DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
return true
Definition ExternalRpcRegistry.cpp:601
const uint32 MaxHeight
Definition GameplayMediaEncoder.cpp:50
EMultiBoxType
Definition MultiBoxDefs.h:42
EHorizontalAlignment
Definition SlateEnums.h:174
EOrientation
Definition SlateEnums.h:261
EUserInterfaceActionType
Definition UICommandInfo.h:20
uint32_t uint32
Definition binka_ue_file_header.h:6
static SLATECORE_API const ISlateStyle & Get()
Definition AppStyle.cpp:10
Definition MultiBoxBuilder.h:241
bool bCloseSelfOnly
Definition MultiBoxBuilder.h:302
SLATE_API void AddMenuEntry(const TSharedPtr< const FUICommandInfo > InCommand, FName InExtensionHook=NAME_None, const TAttribute< FText > &InLabelOverride=TAttribute< FText >(), const TAttribute< FText > &InToolTipOverride=TAttribute< FText >(), const FSlateIcon &InIconOverride=FSlateIcon(), FName InTutorialHighlightName=NAME_None, const TAttribute< EVisibility > &InVisibility=TAttribute< EVisibility >())
Definition MultiBoxBuilder.cpp:228
Definition MultiBoxBuilder.h:873
SLATE_API void AddButton(const TSharedPtr< const FUICommandInfo > InCommand, const TAttribute< FText > &InLabelOverride=TAttribute< FText >(), const TAttribute< FText > &InToolTipOverride=TAttribute< FText >(), const FSlateIcon &InIconOverride=FSlateIcon())
Definition MultiBoxBuilder.cpp:1038
FButtonRowBuilder(TSharedPtr< const FUICommandList > InCommandList, TSharedPtr< FExtender > InExtender=TSharedPtr< FExtender >())
Definition MultiBoxBuilder.h:880
virtual void ApplyHook(FName InExtensionHook, EExtensionHook::Position HookPosition) override
Definition MultiBoxBuilder.h:909
static const ISlateStyle & Get()
Definition CoreStyle.h:33
Definition MultiBoxExtender.h:43
Definition MultiBoxBuilder.h:495
virtual SLATE_API void ApplyHook(FName InExtensionHook, EExtensionHook::Position HookPosition) override
Definition MultiBoxBuilder.cpp:593
SLATE_API void AddPullDownMenu(const TAttribute< FText > &InMenuLabel, const TAttribute< FText > &InToolTip, const FNewMenuDelegate &InPullDownMenu, FName InExtensionHook=NAME_None, FName InTutorialHighlightName=NAME_None)
Definition MultiBoxBuilder.cpp:557
FMenuBarBuilder(TSharedPtr< const FUICommandList > InCommandList, TSharedPtr< FExtender > InExtender=TSharedPtr< FExtender >(), const ISlateStyle *InStyleSet=&FCoreStyle::Get(), FName InMenuName=NAME_None)
Definition MultiBoxBuilder.h:504
Definition MultiBoxBuilder.h:310
SLATE_API void AddWidget(TSharedRef< SWidget > InWidget, const FText &InLabel, bool bInNoIndent=false, bool bInSearchable=true, const TAttribute< FText > &InToolTipText=FText())
Definition MultiBoxBuilder.cpp:484
void SetIsEditing(bool bInIsEditing)
Definition MultiBoxBuilder.h:433
virtual SLATE_API void ApplyHook(FName InExtensionHook, EExtensionHook::Position HookPosition) override
Definition MultiBoxBuilder.cpp:520
SLATE_API void AddSearchWidget()
Definition MultiBoxBuilder.cpp:515
SLATE_API void AddMenuSeparator(FName InExtensionHook=NAME_None, const TAttribute< EVisibility > &InVisibility=TAttribute< EVisibility >())
Definition MultiBoxBuilder.cpp:358
SLATE_API void EndSection()
Definition MultiBoxBuilder.cpp:346
SLATE_API void AddWrapperSubMenu(const FText &InMenuLabel, const FText &InToolTip, const FOnGetContent &InSubMenu, const FSlateIcon &InIcon)
Definition MultiBoxBuilder.cpp:451
virtual SLATE_API TSharedRef< class SWidget > MakeWidget(FMultiBox::FOnMakeMultiBoxBuilderOverride *InMakeMultiBoxBuilderOverride=nullptr) override
Definition MultiBoxBuilder.cpp:308
virtual SLATE_API void ApplySectionBeginning() override
Definition MultiBoxBuilder.cpp:536
SLATE_API void BeginSection(FName InExtensionHook, const TAttribute< FText > &InHeadingText=TAttribute< FText >(), const TAttribute< EVisibility > &InVisibility=TAttribute< EVisibility >(), const TAttribute< FMenuEntryResizeParams > &InResizeParams=TAttribute< FMenuEntryResizeParams >())
Definition MultiBoxBuilder.cpp:323
void SetSearchable(bool bIsSearchable)
Definition MultiBoxBuilder.h:461
SLATE_API void AddSubMenu(const TAttribute< FText > &InMenuLabel, const TAttribute< FText > &InToolTip, const FNewMenuDelegate &InSubMenu, const FUIAction &InUIAction, FName InExtensionHook, const EUserInterfaceActionType InUserInterfaceActionType, const bool bInOpenSubMenuOnClick=false, const FSlateIcon &InIcon=FSlateIcon(), const bool bInShouldCloseWindowAfterMenuSelection=true, const TAttribute< EVisibility > &InVisibility=TAttribute< EVisibility >(), const TAttribute< FText > &InInputBindingOverride=TAttribute< FText >())
Definition MultiBoxBuilder.cpp:385
FMenuBuilder(const bool bInShouldCloseWindowAfterMenuSelection, TSharedPtr< const FUICommandList > InCommandList, TSharedPtr< FExtender > InExtender=TSharedPtr< FExtender >(), const bool bInCloseSelfOnly=false, const ISlateStyle *InStyleSet=&FCoreStyle::Get(), bool bInSearchable=true, FName InMenuName=NAME_None, bool bInRecursivelySearchable=true)
Definition MultiBoxBuilder.h:325
SLATE_API void AddSeparator(FName InExtensionHook=NAME_None, const TAttribute< EVisibility > &InVisibility=TAttribute< EVisibility >())
Definition MultiBoxBuilder.cpp:363
Definition MultiBoxBuilder.h:34
SLATE_API TSharedPtr< const FUICommandList > GetTopCommandList()
Definition MultiBoxBuilder.cpp:147
SLATE_API void SetLastSelectedCommandIndex(int32 InLastSelectedCommandIndex)
Definition MultiBoxBuilder.cpp:133
virtual ~FMultiBoxBuilder()
Definition MultiBoxBuilder.h:48
TArray< TSharedPtr< class FExtender > > ExtenderStack
Definition MultiBoxBuilder.h:164
SLATE_API TSharedRef< class FMultiBox > GetMultiBox()
Definition MultiBoxBuilder.cpp:191
TSharedRef< class FMultiBox > MultiBox
Definition MultiBoxBuilder.h:157
SLATE_API void PopCommandList()
Definition MultiBoxBuilder.cpp:138
void SetExtendersEnabled(bool bEnabled)
Definition MultiBoxBuilder.h:142
virtual void ApplySectionBeginning()
Definition MultiBoxBuilder.h:152
SLATE_API void PushExtender(TSharedRef< FExtender > InExtender)
Definition MultiBoxBuilder.cpp:152
SLATE_API FMultiBoxCustomization GetCustomization() const
Definition MultiBoxBuilder.cpp:181
FName CheckBoxStyle
Definition MultiBoxBuilder.h:173
SLATE_API const FName & GetStyleName() const
Definition MultiBoxBuilder.cpp:171
TArray< TSharedPtr< const FUICommandList > > CommandListStack
Definition MultiBoxBuilder.h:161
SLATE_API void AddVerifiedEditableText(const FText &InLabel, const FText &InToolTip, const FSlateIcon &InIcon, const TAttribute< FText > &InTextAttribute, const FOnVerifyTextChanged &InOnVerifyTextChanged, const FOnTextCommitted &InOnTextCommitted=FOnTextCommitted(), const FOnTextChanged &InOnTextChanged=FOnTextChanged(), bool bInReadOnly=false)
Definition MultiBoxBuilder.cpp:123
SLATE_API void SetStyle(const ISlateStyle *InStyleSet, const FName &InStyleName)
Definition MultiBoxBuilder.cpp:176
SLATE_API const ISlateStyle * GetStyleSet() const
Definition MultiBoxBuilder.cpp:166
virtual SLATE_API TSharedRef< class SWidget > MakeWidget(FMultiBox::FOnMakeMultiBoxBuilderOverride *InMakeMultiBoxBuilderOverride=nullptr)
Definition MultiBoxBuilder.cpp:186
FName MenuName
Definition MultiBoxBuilder.h:170
SLATE_API void AddEditableText(const FText &InLabel, const FText &InToolTip, const FSlateIcon &InIcon, const TAttribute< FText > &InTextAttribute, const FOnTextCommitted &InOnTextCommitted=FOnTextCommitted(), const FOnTextChanged &InOnTextChanged=FOnTextChanged(), bool bInReadOnly=false)
Definition MultiBoxBuilder.cpp:118
bool ExtendersEnabled() const
Definition MultiBoxBuilder.h:145
SLATE_API void PopExtender()
Definition MultiBoxBuilder.cpp:157
FName TutorialHighlightName
Definition MultiBoxBuilder.h:167
bool bExtendersEnabled
Definition MultiBoxBuilder.h:176
virtual void ApplyHook(FName InExtensionHook, EExtensionHook::Position HookPosition)=0
SLATE_API void SetCheckBoxStyle(FName InCheckBoxStyle)
Definition MultiBoxBuilder.cpp:112
SLATE_API void PushCommandList(const TSharedRef< const FUICommandList > CommandList)
Definition MultiBoxBuilder.cpp:128
void SetStyle(const ISlateStyle *InStyleSet, const FName &InStyleName)
Definition MultiBox.h:428
bool bIsFocusable
Definition MultiBox.h:480
Definition NameTypes.h:617
Definition MultiBoxBuilder.h:856
FSlimHorizontalToolBarBuilder(TSharedPtr< const FUICommandList > InCommandList, FMultiBoxCustomization InCustomization, TSharedPtr< FExtender > InExtender=nullptr, const bool InForceSmallIcons=false)
Definition MultiBoxBuilder.h:863
Definition MultiBoxBuilder.h:913
virtual SLATE_API void AddToolBarButton(const FButtonArgs &ButtonArgs) override
Definition MultiBoxBuilder.cpp:1062
Definition Text.h:385
Definition MultiBoxBuilder.h:540
virtual SLATE_API void ApplyHook(FName InExtensionHook, EExtensionHook::Position HookPosition) override
Definition MultiBoxBuilder.cpp:978
SLATE_API void EndBlockGroup()
Definition MultiBoxBuilder.cpp:1008
virtual SLATE_API void AddToolBarButton(const FButtonArgs &ButtonArgs)
Definition MultiBoxBuilder.cpp:660
SLATE_API void BeginStyleOverride(FName StyleOverrideName)
Definition MultiBoxBuilder.cpp:1018
SLATE_API void AddSeparator(FName InExtensionHook=NAME_None, TAttribute< EVisibility > InVisibilityOverride=TAttribute< EVisibility >(), const TAttribute< FMenuEntryResizeParams > &InResizeParams=TAttribute< FMenuEntryResizeParams >())
Definition MultiBoxBuilder.cpp:926
SLATE_API void BeginBlockGroup()
Definition MultiBoxBuilder.cpp:1028
SLATE_API void EndStyleOverride()
Definition MultiBoxBuilder.cpp:1023
SLATE_API void AddWidget(TSharedRef< SWidget > InWidget, FName InTutorialHighlightName=NAME_None, bool bInSearchable=true, EHorizontalAlignment InAlignment=HAlign_Fill, FNewMenuDelegate InCustomMenuDelegate=FNewMenuDelegate(), TAttribute< EVisibility > InVisibilityOverride=TAttribute< EVisibility >())
Definition MultiBoxBuilder.cpp:854
void AddWidgetInternal(TSharedRef< SWidget > InWidget, const FMenuEntryStyleParams &InStyleParams, FName InTutorialHighlightName=NAME_None, bool bInSearchable=true, FNewMenuDelegate InCustomMenuDelegate=FNewMenuDelegate(), TAttribute< EVisibility > InVisibilityOverride=TAttribute< EVisibility >(), const TAttribute< FMenuEntryResizeParams > &InResizeParams=TAttribute< FMenuEntryResizeParams >())
Definition MultiBoxBuilder.cpp:890
friend class UToolMenus
Definition MultiBoxBuilder.h:541
SLATE_API void AddToolbarStackButton(const TSharedPtr< const FUICommandInfo > InCommand, FName InTutorialHighlightName=NAME_None)
Definition MultiBoxBuilder.cpp:785
FToolBarBuilder(EMultiBoxType InType, TSharedPtr< const FUICommandList > InCommandList, FMultiBoxCustomization InCustomization, TSharedPtr< FExtender > InExtender=TSharedPtr< FExtender >(), const bool InForceSmallIcons=false)
Definition MultiBoxBuilder.h:774
void SetLabelVisibility(EVisibility InLabelVisibility)
Definition MultiBoxBuilder.h:569
FToolBarBuilder(TSharedPtr< const FUICommandList > InCommandList, FMultiBoxCustomization InCustomization, TSharedPtr< FExtender > InExtender=nullptr, const bool InForceSmallIcons=false)
Definition MultiBoxBuilder.h:559
SLATE_API void SetAllowWrapButton(const TOptional< bool > &bInAllowWrapButton) const
Definition MultiBoxBuilder.cpp:612
SLATE_API void BeginSection(FName InExtensionHook, bool bInSectionShouldHaveSeparator=true, const TAttribute< FMenuEntryResizeParams > &InResizeParams=TAttribute< FMenuEntryResizeParams >())
Definition MultiBoxBuilder.cpp:946
SLATE_API void AddToolBarWidget(TSharedRef< SWidget > InWidget, const TAttribute< FText > &InLabel=TAttribute< FText >(), FName InTutorialHighlightName=NAME_None, bool bInSearchable=true, const TAttribute< FText > &InToolTip=TAttribute< FText >())
Definition MultiBoxBuilder.cpp:803
SLATE_API void EndSection()
Definition MultiBoxBuilder.cpp:968
SLATE_API void AddComboButton(const FUIAction &InAction, const FOnGetContent &InMenuContentGenerator, const TAttribute< FText > &InLabelOverride=TAttribute< FText >(), const TAttribute< FText > &InToolTipOverride=TAttribute< FText >(), const TAttribute< FSlateIcon > &InIconOverride=TAttribute< FSlateIcon >(), bool bInSimpleComboBox=false, FName InTutorialHighlightName=NAME_None, TAttribute< EVisibility > InVisibilityOverride=TAttribute< EVisibility >(), TAttribute< FText > InToolbarLabelOverride=TAttribute< FText >(), TAttribute< EMenuPlacement > InPlacementOverride=TAttribute< EMenuPlacement >(), const EUserInterfaceActionType InUserInterfaceActionType=EUserInterfaceActionType::Button, const TAttribute< FMenuEntryResizeParams > &InResizeParams=TAttribute< FMenuEntryResizeParams >())
Definition MultiBoxBuilder.cpp:748
SLATE_API void InitializeToolBarButtonBlock(TSharedPtr< FToolBarButtonBlock > ButtonRowBlock, const FButtonArgs &ButtonArgs)
Definition MultiBoxBuilder.cpp:1071
virtual SLATE_API void ApplySectionBeginning() override
Definition MultiBoxBuilder.cpp:991
SLATE_API void SetIsFocusable(bool bInIsFocusable)
Definition MultiBoxBuilder.cpp:606
Definition UICommandInfo.h:184
Definition UICommandList.h:16
Definition MultiBoxBuilder.h:842
FUniformToolBarBuilder(TSharedPtr< const FUICommandList > InCommandList, FMultiBoxCustomization InCustomization, TSharedPtr< FExtender > InExtender=nullptr, const bool InForceSmallIcons=false)
Definition MultiBoxBuilder.h:849
Definition MultiBoxBuilder.h:827
FVerticalToolBarBuilder(TSharedPtr< const FUICommandList > InCommandList, FMultiBoxCustomization InCustomization, TSharedPtr< FExtender > InExtender=nullptr, const bool InForceSmallIcons=false)
Definition MultiBoxBuilder.h:834
Definition ISlateStyle.h:18
Definition Array.h:670
Position
Definition MultiBoxExtender.h:27
@ false
Definition radaudio_common.h:23
Definition Visibility.h:12
Definition SToolBarButtonBlock.h:25
Definition MultiBoxBuilder.h:181
bool bOpenSubMenuOnClick
Definition MultiBoxBuilder.h:218
TAttribute< FText > LabelOverride
Definition MultiBoxBuilder.h:188
FSlateIcon IconOverride
Definition MultiBoxBuilder.h:200
FOnGetContent MenuBuilder
Definition MultiBoxBuilder.h:206
bool bIsSubMenu
Definition MultiBoxBuilder.h:212
FNewMenuDelegate EntryBuilder
Definition MultiBoxBuilder.h:203
TAttribute< FText > InputBindingOverride
Definition MultiBoxBuilder.h:194
TAttribute< EVisibility > Visibility
Definition MultiBoxBuilder.h:197
TSharedPtr< FExtender > Extender
Definition MultiBoxBuilder.h:228
bool bShouldCloseWindowAfterMenuSelection
Definition MultiBoxBuilder.h:231
FMenuEntryParams()
Definition MultiBoxBuilder.h:182
FName TutorialHighlightName
Definition MultiBoxBuilder.h:234
TSharedPtr< SWidget > EntryWidget
Definition MultiBoxBuilder.h:209
bool bCloseSelfOnly
Definition MultiBoxBuilder.h:225
bool bIsRecursivelySearchable
Definition MultiBoxBuilder.h:215
TAttribute< FText > ToolTipOverride
Definition MultiBoxBuilder.h:191
EUserInterfaceActionType UserInterfaceActionType
Definition MultiBoxBuilder.h:222
Definition MultiBoxDefs.h:209
Definition MultiBox.h:64
EMultiBlockType Type
Definition MultiBox.h:78
Definition MultiBoxDefs.h:111
Definition SlateIcon.h:13
Definition UIAction.h:37
Definition Optional.h:131