UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SMenuEntryBlock.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"
9#include "Input/Reply.h"
10#include "Styling/SlateColor.h"
11#include "Widgets/SWidget.h"
12#include "Textures/SlateIcon.h"
17
19
24 : public FMultiBlock
25{
26
27public:
28
41
42
58
59
75
91
92
107
109
111
113
115
117
120
122 virtual void CreateMenuEntry(class FMenuBuilder& MenuBuilder) const override;
123 virtual bool HasIcon() const override;
124
127
129 bool IsSubMenu() const { return bIsSubMenu; }
130
133
135 bool IsRecursivelySearchable() const { return bIsRecursivelySearchable; }
136
137private:
138
140 virtual TSharedRef< class IMultiBlockBaseWidget > ConstructWidget() const override;
141
142private:
143
144 // Friend our corresponding widget class
145 friend class SMenuEntryBlock;
146 friend class FSlateMacMenu;
147
149 TAttribute<FText> LabelOverride;
150
152 TAttribute<FText> ToolTipOverride;
153
155 TAttribute<FText> InputBindingOverride;
156
158 FSlateIcon IconOverride;
159
161 FNewMenuDelegate EntryBuilder;
162
164 FOnGetContent MenuBuilder;
165
167 TSharedPtr<SWidget> EntryWidget;
168
170 bool bIsSubMenu;
171
173 bool bIsRecursivelySearchable;
174
176 bool bOpenSubMenuOnClick;
177
180 EUserInterfaceActionType UserInterfaceActionType;
181
183 bool bCloseSelfOnly;
184
186 TSharedPtr<FExtender> Extender;
187
189 bool bShouldCloseWindowAfterMenuSelection;
190
192 bool bInvertLabelOnHover;
193
195 FName CheckBoxStyle = NAME_None;
196};
197
198
199
200
205 : public SMultiBlockBaseWidget
206{
207
208public:
209
211
213
214
215
218 SLATE_API virtual void BuildMultiBlockWidget(const ISlateStyle* StyleSet, const FName& StyleName) override;
219
225 SLATE_API void Construct( const FArguments& InArgs );
226
233
234
256
257
262
269
275 SLATE_API bool IsEnabled() const;
276
283
288
295
301
302 // SWidget interface
303 SLATE_API virtual void OnMouseEnter( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) override;
304 SLATE_API virtual void OnMouseLeave( const FPointerEvent& MouseEvent ) override;
305 SLATE_API virtual FReply OnKeyDown( const FGeometry& MyGeometry, const FKeyEvent& KeyEvent ) override;
306 //virtual void Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime ) override;
307 // End of SWidget interface
308
309
317
325
333
341
349
357 SLATE_API void RequestSubMenuToggle( bool bOpenMenu, const bool bClobber );
358
363
369
379
380
381 // Gets the visibility of the menu item
383
386
389
391 //void UpdateSubMenuState();
392
393private:
394 const FSlateBrush* GetCheckBoxImageBrushFromStyle(const FCheckBoxStyle* Style) const;
395
397 EActiveTimerReturnType UpdateSubMenuState(double InCurrentTime, float InDeltaTime, bool bWantsOpen);
398
400 TWeakPtr<FActiveTimerHandle> ActiveTimerHandle;
401
403 const FSlateBrush* CheckedImage;
405 const FSlateBrush* UncheckedImage;
407 TWeakPtr< SMenuAnchor > MenuAnchor;
408
409 const FButtonStyle* MenuBarButtonStyle;
410};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
EActiveTimerReturnType
Definition SlateEnums.h:329
ECheckBoxState
Definition SlateTypes.h:65
EUserInterfaceActionType
Definition UICommandInfo.h:20
Definition ActiveTimerHandle.h:12
Definition MultiBoxBuilder.h:310
Definition SMenuEntryBlock.h:25
virtual bool HasIcon() const override
Definition SMenuEntryBlock.cpp:202
bool IsRecursivelySearchable() const
Definition SMenuEntryBlock.h:135
bool IsSubMenu() const
Definition SMenuEntryBlock.h:129
void SetRecursivelySearchable(bool bInRecursivelySearchable)
Definition SMenuEntryBlock.h:132
void SetCheckBoxStyle(FName InCheckBoxStyle)
Definition SMenuEntryBlock.cpp:465
virtual void CreateMenuEntry(class FMenuBuilder &MenuBuilder) const override
Definition SMenuEntryBlock.cpp:196
Definition MultiBox.h:59
Definition NameTypes.h:617
Definition Reply.h:24
Definition MacMenu.h:15
Definition Text.h:385
Definition ISlateStyle.h:18
Definition SMenuEntryBlock.h:206
SLATE_API void RequestSubMenuToggle(bool bOpenMenu, const bool bClobber)
Definition SMenuEntryBlock.cpp:1112
SLATE_API bool ShouldSubMenuAppearHovered() const
Definition SMenuEntryBlock.cpp:1136
SLATE_API FSlateColor TintOnHover() const
Definition SMenuEntryBlock.cpp:1664
virtual SLATE_API FReply OnKeyDown(const FGeometry &MyGeometry, const FKeyEvent &KeyEvent) override
Definition SMenuEntryBlock.cpp:1438
SLATE_API TSharedRef< SWidget > BuildMenuEntryWidget(const FMenuEntryBuildParams &InBuildParams)
Definition SMenuEntryBlock.cpp:470
SLATE_API void CancelPendingSubMenu()
Definition SMenuEntryBlock.cpp:1124
virtual SLATE_API void OnMouseLeave(const FPointerEvent &MouseEvent) override
Definition SMenuEntryBlock.cpp:1430
SLATE_API TSharedRef< SWidget > FindTextBlockWidget(TSharedRef< SWidget > Content)
Definition SMenuEntryBlock.cpp:302
SLATE_API TSharedRef< SWidget > BuildMenuBarWidget(const FMenuEntryBuildParams &InBuildParams)
Definition SMenuEntryBlock.cpp:248
SLATE_API EVisibility GetVisibility() const
Definition SMenuEntryBlock.cpp:336
SLATE_API FSlateColor InvertOnHover() const
Definition SMenuEntryBlock.cpp:1682
SLATE_API ECheckBoxState IsChecked() const
Definition SMenuEntryBlock.cpp:1324
SLATE_API void Construct(const FArguments &InArgs)
Definition SMenuEntryBlock.cpp:232
SLATE_API FSlateColor GetMenuBarForegroundColor() const
Definition SMenuEntryBlock.cpp:1646
SLATE_API bool IsEnabled() const
Definition SMenuEntryBlock.cpp:1237
SLATE_API FReply OnMenuItemButtonClicked()
Definition SMenuEntryBlock.cpp:1143
SLATE_BEGIN_ARGS(SMenuEntryBlock)
Definition SMenuEntryBlock.h:210
SLATE_API const FSlateBrush * OnGetCheckImage() const
Definition SMenuEntryBlock.cpp:1344
SLATE_API const FSlateBrush * GetMenuBarButtonBorder() const
Definition SMenuEntryBlock.cpp:1628
virtual SLATE_API void OnMouseEnter(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition SMenuEntryBlock.cpp:1355
SLATE_API void OnCheckStateChanged(const ECheckBoxState NewCheckedState)
Definition SMenuEntryBlock.cpp:1312
SLATE_API bool IsEnabledDuringEditMode() const
Definition SMenuEntryBlock.cpp:1257
virtual SLATE_API void BuildMultiBlockWidget(const ISlateStyle *StyleSet, const FName &StyleName) override
Definition SMenuEntryBlock.cpp:973
SLATE_API TSharedRef< SWidget > MakeNewMenuWidget() const
Definition SMenuEntryBlock.cpp:1562
SLATE_API void OnClicked(bool bCheckBoxClicked)
Definition SMenuEntryBlock.cpp:1154
SLATE_API TSharedRef< SWidget > BuildSubMenuWidget(const FMenuEntryBuildParams &InBuildParams)
Definition SMenuEntryBlock.cpp:770
SLATE_API FText GetFilteredToolTipText(TAttribute< FText > ToolTipText) const
Definition SMenuEntryBlock.cpp:324
Definition MultiBox.h:618
Definition SWidget.h:165
Definition Attribute.h:17
Definition SharedPointer.h:1295
Definition Visibility.h:12
Definition SlateTypes.h:509
Definition SlateTypes.h:105
Definition Geometry.h:40
Definition Events.h:431
Definition MultiBoxBuilder.h:181
Definition Events.h:695
Definition SlateBrush.h:239
Definition SlateColor.h:42
Definition SlateIcon.h:13
Definition UIAction.h:37
Definition SMenuEntryBlock.h:238
TSharedPtr< const FMenuEntryBlock > MenuEntryBlock
Definition SMenuEntryBlock.h:242
const ISlateStyle * StyleSet
Definition SMenuEntryBlock.h:252
TAttribute< FText > Label
Definition SMenuEntryBlock.h:246
TAttribute< FText > InputBinding
Definition SMenuEntryBlock.h:250
FName StyleName
Definition SMenuEntryBlock.h:254
TSharedPtr< const FMultiBox > MultiBox
Definition SMenuEntryBlock.h:240
TSharedPtr< const FUICommandInfo > UICommand
Definition SMenuEntryBlock.h:244
TAttribute< FText > ToolTip
Definition SMenuEntryBlock.h:248