UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SMenuAnchor.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"
9#include "Widgets/SWidget.h"
10#include "Layout/Margin.h"
11#include "Layout/Children.h"
12#include "Widgets/SPanel.h"
15
17class FPaintArgs;
19class SWindow;
20
23
24
25
26
27
31class SMenuAnchor : public SPanel, public IMenuHost
32{
33public:
34 SLATE_BEGIN_ARGS( SMenuAnchor )
35 : _Content()
36 , _Padding(FMargin(0.f))
37 , _MenuContent( SNew(STextBlock) .Text( NSLOCTEXT("SMenuAnchor", "NoMenuContent", "No Menu Content Assigned; use .MenuContent") ) )
41 , _Method()
47 {}
48
49 SLATE_DEFAULT_SLOT( FArguments, Content )
50
52
54
55 SLATE_EVENT( FOnGetContent, OnGetMenuContent )
56
57 SLATE_EVENT( FOnIsOpenChanged, OnMenuOpenChanged )
58
60
61 SLATE_ARGUMENT(bool, FitInWindow)
62
64
65 SLATE_ARGUMENT(bool, ShouldDeferPaintingAfterWindowContent)
66
67 SLATE_ARGUMENT(bool, UseApplicationMenuStack)
68
69 SLATE_ARGUMENT(bool, ShowMenuBackground)
70
71
72 SLATE_ARGUMENT(bool, IsCollapsedByParent)
73
74
76
78
79 SLATE_API virtual ~SMenuAnchor();
80
86 SLATE_API void Construct( const FArguments& InArgs );
87
88 SLATE_API SMenuAnchor();
89
91 SLATE_API void SetContent(TSharedRef<SWidget> InContent);
92
94 SLATE_API virtual void SetMenuContent(TSharedRef<SWidget> InMenuContent);
95
102 SLATE_API virtual void SetIsOpen( bool InIsOpen, const bool bFocusMenu = true, const int32 FocusUserIndex = 0 );
103
105 SLATE_API bool IsOpen() const;
106
109 SLATE_API bool ShouldOpenDueToClick() const;
110
112 SLATE_API FVector2D GetMenuPosition() const;
113
115
116 SLATE_API void SetFitInWindow(bool bFit);
117
119 SLATE_API bool HasOpenSubMenus() const;
120
121 // IMenuHost interface
122 SLATE_API virtual TSharedPtr<SWindow> GetMenuWindow() const override;
123 SLATE_API virtual void OnMenuDismissed() override;
124 SLATE_API virtual bool UsingApplicationMenuStack() const override;
125 // End of IMenuHost interface
126
128
130 // SWidget interface
131 SLATE_API virtual void Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime ) override;
132 SLATE_API virtual bool ComputeVolatility() const override;
133 SLATE_API virtual void OnArrangeChildren( const FGeometry& AllottedGeometry, FArrangedChildren& ArrangedChildren ) const override;
134 SLATE_API virtual FVector2D ComputeDesiredSize(float) const override;
135 SLATE_API virtual FChildren* GetChildren() override;
136 SLATE_API virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;
137 // End of SWidget interface
138
141
144
146 SLATE_API void OnMenuClosed(TSharedRef<IMenu> InMenu);
147
150
152 SLATE_API FGeometry ComputeNewWindowMenuPlacement(const FGeometry& AllottedGeometry, const FVector2D& PopupDesiredSize, EMenuPlacement PlacementMode) const;
153
155
158 {
160
165 };
166
173
178 TWeakPtr<IMenu> PopupMenuPtr;
179
185
188
190 TSharedPtr<SWidget> WrappedContent;
191
193 FOnGetContent OnGetMenuContent;
194
196 FOnIsOpenChanged OnMenuOpenChanged;
197
200
202 bool bFitInWindow;
203
206
208 bool bIsCollapsedByParent;
209
212
215
218
221
224
232
238
241};
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 SNew(WidgetType,...)
Definition DeclarativeSyntaxSupport.h:37
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_BEGIN_ARGS(InWidgetType)
Definition DeclarativeSyntaxSupport.h:63
#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_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
return true
Definition ExternalRpcRegistry.cpp:601
#define NSLOCTEXT(InNamespace, InKey, InTextLiteral)
Definition Internationalization.h:300
void Construct(const FArguments &InArgs)
EOrientation
Definition SlateEnums.h:261
EMenuPlacement
Definition SlateEnums.h:214
Definition ArrangedChildren.h:15
Definition ChildrenBase.h:27
Definition PaintArgs.h:23
Definition PopupMethodReply.h:24
Definition SlateRect.h:26
Definition DrawElements.h:220
Definition WidgetStyle.h:15
Definition IMenu.h:30
Definition IMenu.h:15
Definition SPanel.h:30
Definition STextBlock.h:45
Definition SWidget.h:165
Definition SWindow.h:243
Definition Array.h:670
Definition Attribute.h:17
Definition Children.h:461
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
@ false
Definition radaudio_common.h:23
Definition Geometry.h:40
Definition Margin.h:17
Definition Optional.h:131