UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SToolBarComboButtonBlock.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 "Misc/Attribute.h"
7#include "Layout/Visibility.h"
8#include "Widgets/SWidget.h"
12
13class SCheckBox;
14class SComboButton;
15
20 : public FMultiBlock
21{
22
23public:
40 const FUIAction& InAction,
45 bool bInSimpleComboBox = false,
49 );
50
52 virtual void CreateMenuEntry(class FMenuBuilder& MenuBuilder) const override;
53 virtual bool HasIcon() const override;
54
61
63 void SetForceSmallIcons( const bool InForceSmallIcons ) { bForceSmallIcons = InForceSmallIcons; }
64
65 bool IsSimpleComboBox() const { return bSimpleComboBox; }
66private:
67
73 virtual TSharedRef< class IMultiBlockBaseWidget > ConstructWidget() const override;
74
75
76private:
77
78 // Friend our corresponding widget class
80
82 FOnGetContent MenuContentGenerator;
83
86
88 TAttribute<FText> ToolbarLabelOverride;
89
92
95
97 TAttribute<EMenuPlacement> PlacementOverride;
98
100 TOptional< EVisibility > LabelVisibility;
101
104 EUserInterfaceActionType UserInterfaceActionType;
105
107 bool bSimpleComboBox;
108
110 bool bForceSmallIcons;
111};
112
113
114
119 : public SMultiBlockBaseWidget
120{
121
122public:
123
127
129 SLATE_ARGUMENT( TOptional< EVisibility >, LabelVisibility )
130
131
133
136
138
139
143 SLATE_API virtual void BuildMultiBlockWidget(const ISlateStyle* StyleSet, const FName& StyleName) override;
144
145
151 SLATE_API void Construct( const FArguments& InArgs );
152
154
161
166
171
178
184 SLATE_API bool IsEnabled() const;
185
187 bool HasAction() const;
188
190 bool HasCheckedState() const;
191
195 const FCheckBoxStyle* GetCheckBoxStyle(const ISlateStyle* StyleSet, const FName& StyleName, bool bIsSplitButton) const;
196
203private:
205 bool HasDynamicIcon() const;
206
208 const FSlateBrush* GetIconBrush() const;
209
211 const FSlateBrush* GetNormalIconBrush() const;
212
214 const FSlateBrush* GetSmallIconBrush() const;
215
217 EVisibility GetIconVisibility(bool bIsASmallIcon) const;
218
219 FSlateColor GetIconForegroundColor() const;
220
221 const FSlateBrush* GetOverlayIconBrush() const;
222
223 FSlateColor OnGetForegroundColor() const;
224
225 const FSlateBrush* GetBorderImage() const;
226
227private:
229 TOptional<EVisibility> LabelVisibilityOverride;
230
233
235 bool bForceSmallIcons;
236
237 TSharedPtr<SWidget> LeftHandSideWidget; // Widget that comes before the combo button
238 TSharedPtr<SComboButton> ComboButtonWidget;
239
241 FSlateColor OpenForegroundColor;
242
244 const FCheckBoxStyle* CheckBoxStyle = nullptr;
245
247 const FSlateBrush* BlockHovered = nullptr;
248};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
ECheckBoxState
Definition SlateTypes.h:65
EUserInterfaceActionType
Definition UICommandInfo.h:20
Definition MultiBoxBuilder.h:310
Definition MultiBox.h:59
Definition NameTypes.h:617
Definition Reply.h:24
Definition SToolBarComboButtonBlock.h:21
virtual bool HasIcon() const override
Definition SToolBarComboButtonBlock.cpp:54
void SetLabelVisibility(EVisibility InLabelVisibility)
Definition SToolBarComboButtonBlock.h:60
bool IsSimpleComboBox() const
Definition SToolBarComboButtonBlock.h:65
virtual void CreateMenuEntry(class FMenuBuilder &MenuBuilder) const override
Definition SToolBarComboButtonBlock.cpp:43
void SetForceSmallIcons(const bool InForceSmallIcons)
Definition SToolBarComboButtonBlock.h:63
Definition ISlateStyle.h:18
Definition SCheckBox.h:30
Definition SComboButton.h:25
Definition MultiBox.h:618
Definition SToolBarComboButtonBlock.h:120
SLATE_API FReply OnClicked()
Definition SToolBarComboButtonBlock.cpp:368
virtual SLATE_API void BuildMultiBlockWidget(const ISlateStyle *StyleSet, const FName &StyleName) override
Definition SToolBarComboButtonBlock.cpp:76
SLATE_BEGIN_ARGS(SToolBarComboButtonBlock)
Definition SToolBarComboButtonBlock.h:124
SLATE_API void OnCheckStateChanged(const ECheckBoxState NewCheckedState)
Definition SToolBarComboButtonBlock.cpp:396
SLATE_API ECheckBoxState GetCheckState() const
Definition SToolBarComboButtonBlock.cpp:435
bool HasCheckedState() const
Definition SToolBarComboButtonBlock.cpp:472
bool HasAction() const
Definition SToolBarComboButtonBlock.cpp:466
const FCheckBoxStyle * GetCheckBoxStyle(const ISlateStyle *StyleSet, const FName &StyleName, bool bIsSplitButton) const
Definition SToolBarComboButtonBlock.cpp:401
SLATE_API EVisibility GetVisibility() const
Definition SToolBarComboButtonBlock.cpp:484
SLATE_API void Construct(const FArguments &InArgs)
Definition SToolBarComboButtonBlock.cpp:69
SLATE_API bool IsEnabled() const
Definition SToolBarComboButtonBlock.cpp:455
SLATE_API TSharedRef< SWidget > OnGetMenuContent()
Definition SToolBarComboButtonBlock.cpp:362
Definition SWidget.h:165
Definition Attribute.h:17
Definition SharedPointer.h:692
Definition SharedPointer.h:153
@ false
Definition radaudio_common.h:23
Definition Visibility.h:12
Definition SlateTypes.h:105
Definition SlateBrush.h:239
Definition SlateColor.h:42
Definition SlateIcon.h:13
Definition UIAction.h:37