UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SGameMenuPageWidget.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 "Math/IntPoint.h"
9#include "Math/Color.h"
10#include "Layout/Visibility.h"
11#include "Layout/Margin.h"
14#include "Styling/ISlateStyle.h"
15#include "Styling/SlateColor.h"
17#include "Input/Reply.h"
22#include "GameMenuWidgetStyle.h"
23
25class FGameMenuPage;
26class SVerticalBox;
27class SWidget;
28struct FFocusEvent;
29struct FGeometry;
30struct FKeyEvent;
31struct FPointerEvent;
32
33namespace EPanelState
34{
35 enum Type
36 {
37 /* Menu is opening. */
39 /* Menu is open. */
41 /* Menu is closing. */
43 /* Menu is closed. */
44 Closed
45 };
46
47};
48
50
51// Simple class to contain the menu panels/animations
53{
54public:
55 FMenuPanel();
56
57 void Tick(float Delta);
58
59 /* Close the panel */
60 void ClosePanel(TSharedRef<SWidget> OwnerWidget);
61
62 /* Open the panel */
63 void OpenPanel(TSharedRef<SWidget> OwnerWidget);
64
65 /* Force the panel to be fully open. */
66 void ForcePanelOpen();
67
68 /* Force the panel to be fully closed. */
69 void ForcePanelClosed();
70
71 void SetStyle(const FGameMenuStyle* InStyle);
72
73 /* Delegate called when the panel becomes open or closed. */
75
76 /* Animation curve/handle for panel animation. */
78
79 /* The current state of the panel. */
81
82private:
83 /* Animation sequence used to open or close the panel. */
84 FCurveSequence AnimationSequence;
85};
86
87class FGameMenuPage;
88
89// Simple Menu page widget class
91{
92public:
95
98
99
101
102
104
105
107
108
111
114
116 void Construct(const FArguments& InArgs);
117
118 //~ Begin SWidget Interface
120 virtual void Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime ) override;
121
124
127
129 virtual bool SupportsKeyboardFocus() const override { return true; }
130
132 virtual FReply OnFocusReceived(const FGeometry& MyGeometry, const FFocusEvent& InFocusEvent) override;
133
134 //~ End SWidget Interface
135
142 virtual void OnMainPanelStateChange(bool bWasOpened);
143
144
151 virtual void OnSubPanelStateChange(bool bWasOpened);
152
154 void SetupAnimations();
155
157 void EnterSubMenu(TSharedPtr<FGameMenuPage> InSubMenu);
158
165 void MenuGoBack(bool bIsCancel=false);
166
168 void ConfirmMenuItem();
169
176 void BuildAndShowMenu(TSharedPtr< FGameMenuPage > InMenu);
177
179 void HideMenu();
180
188
195 void ChangeOption(int32 InMoveBy);
196
198 void LockControls(bool bEnable);
199
206 void OpenMainPanel(TSharedPtr< FGameMenuPage > InMenu);
207
214 bool SelectItem(int32 InSelection);
215
216 void ResetMenu();
217
218 /* The viewport I am attached to. */
220
221 TSharedPtr< FGameMenuPage > GetCurrentMenu();
222protected:
223
224 /* Set the current menu. Also sets the owner widget of that menu to this and resets the previous menu owner. */
225 void SetCurrentMenu(TSharedPtr< FGameMenuPage > InMenu);
226
228 EVisibility GetSlateVisibility() const;
229
230 /* Returns true if the submenu should be visible. */
231 EVisibility GetSubMenuVisiblity() const;
232
234 float GetUIScale() const;
235
246
248 FLinearColor GetPanelsColor() const;
249 FSlateColor GetPanelsBackgroundColor() const;
250 FMargin GetMainMenuOffset() const;
251 FMargin GetSubMenuOffset() const;
252 FMargin GetMenuTitleOffset() const;
253 FMargin GetMenuOffset() const;
254 FMargin GetMenuItemPadding() const;
255 FMargin GetSubMenuItemPadding() const;
256 FSlateColor GetTitleColor() const;
257 FSlateColor GetTextColor() const;
258
265 virtual FReply SelectionChanged(int32 SelectionIndex);
266
273 virtual FReply MouseButtonClicked(int32 SelectionIndex);
274
282
284 FText GetMenuTitle() const;
285
287 EVisibility GetMenuTitleVisibility() const;
288
290 void FadeIn();
291
297 void SetTitleAnimation(bool bShowTitle);
298
299 /* Opens any pending sub menu if there is one. */
300 void OpenPendingSubMenu();
301
303 //FKey ControllerHideMenuKey;
304
307
310
313
316
319
322
325
328
331
334
337
340
341 /* Used to animate the title widget (NYI) */
343
346
349
352
355
358
361
364
367
370
373
376
379
382
385
388
390 FOnSelectionChanged OnSelectionChange;
391};
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 SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
void Construct(const FArguments &InArgs)
virtual FReply OnMouseButtonDown(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent)
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition GameMenuItem.h:25
Definition GameMenuPage.h:17
Definition SGameMenuPageWidget.h:53
FMenuPanel()
Definition SGameMenuPageWidget.cpp:21
FPanelStateChanged OnStateChanged
Definition SGameMenuPageWidget.h:74
void OpenPanel(TSharedRef< SWidget > OwnerWidget)
Definition SGameMenuPageWidget.cpp:84
void SetStyle(const FGameMenuStyle *InStyle)
Definition SGameMenuPageWidget.cpp:30
FCurveHandle AnimationHandle
Definition SGameMenuPageWidget.h:77
EPanelState::Type CurrentState
Definition SGameMenuPageWidget.h:80
void ForcePanelOpen()
Definition SGameMenuPageWidget.cpp:111
void ClosePanel(TSharedRef< SWidget > OwnerWidget)
Definition SGameMenuPageWidget.cpp:57
void ForcePanelClosed()
Definition SGameMenuPageWidget.cpp:121
Definition Reply.h:24
Definition Text.h:385
Definition SCompoundWidget.h:22
Definition SGameMenuPageWidget.h:91
FIntPoint ScreenRes
Definition SGameMenuPageWidget.h:348
FCurveSequence TitleWidgetAnimation
Definition SGameMenuPageWidget.h:339
TArray< TSharedPtr< FGameMenuPage > > MenuHistory
Definition SGameMenuPageWidget.h:384
TWeakObjectPtr< UGameViewportClient > MyGameViewport
Definition SGameMenuPageWidget.h:219
int32 SelectedIndex
Definition SGameMenuPageWidget.h:354
TSharedPtr< FGameMenuPage > NextMenu
Definition SGameMenuPageWidget.h:318
TWeakObjectPtr< class APlayerController > PCOwner
Definition SGameMenuPageWidget.h:345
uint8 bGameMenu
Definition SGameMenuPageWidget.h:363
FCurveHandle ColorFadeCurve
Definition SGameMenuPageWidget.h:333
TSharedPtr< SVerticalBox > MainPanel
Definition SGameMenuPageWidget.h:375
TSharedPtr< SVerticalBox > SubPanel
Definition SGameMenuPageWidget.h:378
FOnSelectionChanged OnSelectionChange
Definition SGameMenuPageWidget.h:390
uint8 bMenuHiding
Definition SGameMenuPageWidget.h:357
FCurveSequence MenuWidgetAnimation
Definition SGameMenuPageWidget.h:327
uint8 bMenuHidden
Definition SGameMenuPageWidget.h:360
TSharedPtr< FGameMenuPage > PendingSubMenu
Definition SGameMenuPageWidget.h:372
FOnToggleMenu OnToggleMenu
Definition SGameMenuPageWidget.h:387
FCurveHandle MenuAnimationCurve
Definition SGameMenuPageWidget.h:336
TSharedPtr< FGameMenuPage > CurrentMenu
Definition SGameMenuPageWidget.h:321
FCurveHandle TopColorCurve
Definition SGameMenuPageWidget.h:330
FMenuPanel SubMenuPanel
Definition SGameMenuPageWidget.h:315
FText CurrentMenuTitle
Definition SGameMenuPageWidget.h:306
bool bConsoleVisible
Definition SGameMenuPageWidget.h:309
TSharedPtr< FGameMenuPage > PendingMainMenu
Definition SGameMenuPageWidget.h:369
TAttribute< float > UIScale
Definition SGameMenuPageWidget.h:324
FCurveHandle TitleWidgetCurve
Definition SGameMenuPageWidget.h:342
FMenuPanel MainMenuPanel
Definition SGameMenuPageWidget.h:312
const FGameMenuStyle * MenuStyle
Definition SGameMenuPageWidget.h:381
int32 MainAnimNumber
Definition SGameMenuPageWidget.h:351
SLATE_BEGIN_ARGS(SGameMenuPageWidget)
Definition SGameMenuPageWidget.h:93
uint8 bControlsLocked
Definition SGameMenuPageWidget.h:366
Definition SBoxPanel.h:322
Definition SWidget.h:165
virtual SLATECORE_API FReply OnFocusReceived(const FGeometry &MyGeometry, const FFocusEvent &InFocusEvent)
Definition SWidget.cpp:389
Definition Array.h:670
Definition Attribute.h:17
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition GameViewportClient.h:71
Definition SGameMenuPageWidget.h:34
Type
Definition SGameMenuPageWidget.h:36
@ Closing
Definition SGameMenuPageWidget.h:42
@ Closed
Definition SGameMenuPageWidget.h:44
@ Opening
Definition SGameMenuPageWidget.h:38
@ Open
Definition SGameMenuPageWidget.h:40
Definition Visibility.h:12
Definition CurveHandle.h:40
Definition CurveSequence.h:26
Definition Events.h:51
Definition GameMenuWidgetStyle.h:30
Definition Geometry.h:40
Definition Events.h:431
Definition Color.h:48
Definition Margin.h:17
Definition Events.h:695
Definition SlateColor.h:42
Definition WeakObjectPtrTemplates.h:25
Definition IntPoint.h:25