UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GameMenuPage.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"
9#include "GameMenuItem.h"
10
11class FString;
15
17{
18public:
20
23
26
29
37 bool InitialiseRootMenu(APlayerController* InPCOwner, const FString& InStyleName, UGameViewportClient* InGameViewport);
38
39 void DestroyRootMenu();
40
41 /* Return the number of items in menu item list. */
42 int32 NumItems() const;
43
44 /* Get the specified item in the menu item list. Will assert if the value is out of range. */
46
47 /* Is the supplied index with the valid range of menu items. Returns false if it is not. */
48 bool IsValidMenuEntryIndex(int32 Index) const;
49
52
54 void ShowRootMenu();
55
58
61
70
71 /*
72 *
73 * Add a menu item.
74 *
75 * @param Text Label of the menu item
76 * @param InObj Menu page object
77 * @param InMethod Method to call when selection changes.
78 * @returns SharedRef to the MenuItem that was created.
79 */
80 template< class UserClass >
81 inline TSharedRef<FGameMenuItem> AddMenuItem(const FText& InText, UserClass* InObj, typename FGameMenuItem::FOnConfirmMenuItem::TMethodPtr< UserClass > InMethod)
82 {
84 Item->OnConfirmMenuItem.BindSP(InObj, InMethod);
85 MenuItems.Add(Item);
86 return Item.ToSharedRef();
87 }
88
98 template< class UserClass >
99 inline TSharedRef<FGameMenuItem> AddMenuItemWithOptions(const FText& Text, const TArray<FText>& OptionsList, UserClass* InObj, typename FGameMenuItem::FOnOptionChanged::TMethodPtr< UserClass > InMethod)
100 {
102 Item->OnOptionChanged.BindSP(InObj, InMethod);
103 MenuItems.Add(Item);
104 return Item.ToSharedRef();
105 }
106
116 template< class UserClass >
117 inline TSharedRef<FGameMenuItem> AddCustomMenuItem(const FText& Text, TSharedPtr<SGameMenuItemWidget> CustomWidget, UserClass* InObj, typename FGameMenuItem::FOnOptionChanged::TMethodPtr< UserClass > InMethod)
118 {
119 TSharedPtr<FGameMenuItem> Item = MakeShareable(new FGameMenuItem(CustomWidget));
120 Item->OnOptionChanged.BindSP(InObj, InMethod);
121 MenuItems.Add(Item);
122 return Item.ToSharedRef();
123 }
124
131 template< class UserClass >
132 inline void SetCancelHandler(UserClass* InObj, typename FGameMenuPage::FOnMenuGoBack::TMethodPtr< UserClass > InMethod)
133 {
134 OnGoBackCancel.BindSP(InObj, InMethod);
135 }
136
143 template< class UserClass >
144 inline void SetOnHiddenHandler(UserClass* InObj, typename FGameMenuPage::FOnMenuHidden::TMethodPtr< UserClass > InMethod)
145 {
146 OnMenuHidden.BindSP(InObj, InMethod);
147 }
148
155 template< class UserClass >
156 inline void SetAcceptHandler(UserClass* InObj, typename FGameMenuPage::FOnMenuGoBack::TMethodPtr< UserClass > InMethod)
157 {
158 OnGoBack.BindSP(InObj, InMethod);
159 }
160
167 template< class UserClass >
168 inline void SetOnOpenHandler(UserClass* InObj, typename FGameMenuPage::FOnMenuHidden::TMethodPtr< UserClass > InMethod)
169 {
170 OnMenuOpening.BindSP(InObj, InMethod);
171 }
172
178 void LockControls(bool bLockState);
179
182
185 {
186 OnGoBack.ExecuteIfBound();
187 }
188
191 {
192 OnGoBackCancel.ExecuteIfBound();
193 }
194
195 /* Called when the menu has finished hiding. */
197 {
198 OnMenuHidden.ExecuteIfBound();
199 }
200
201 /* Called when the menu is about to be opened. */
203 {
204 OnMenuOpening.ExecuteIfBound();
205 }
206
207 /* Hide the menu. */
208 void HideMenu();
209
210 /* Remove all the items from the item array. */
211 void RemoveAllItems();
212
213protected:
214
217
220
223
226
227 /* Array of menu items that represents the menu. */
230};
231
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
SharedPointerInternals::TRawPtrProxy< ObjectType > MakeShareable(ObjectType *InObject)
Definition SharedPointer.h:1947
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition PlayerController.h:261
Definition GameMenuItem.h:25
Definition GameMenuPage.h:17
TWeakObjectPtr< APlayerController > PCOwner
Definition GameMenuPage.h:51
FOnMenuOpening OnMenuOpening
Definition GameMenuPage.h:225
void SetOnHiddenHandler(UserClass *InObj, typename FGameMenuPage::FOnMenuHidden::TMethodPtr< UserClass > InMethod)
Definition GameMenuPage.h:144
void MenuHidden()
Definition GameMenuPage.h:196
int32 SelectedIndex
Definition GameMenuPage.h:57
DECLARE_DELEGATE(FOnMenuGoBack)
FOnMenuHidden OnMenuHidden
Definition GameMenuPage.h:222
void MenuGoBack()
Definition GameMenuPage.h:184
void MenuOpening()
Definition GameMenuPage.h:202
void SetOnOpenHandler(UserClass *InObj, typename FGameMenuPage::FOnMenuHidden::TMethodPtr< UserClass > InMethod)
Definition GameMenuPage.h:168
TSharedRef< FGameMenuItem > AddCustomMenuItem(const FText &Text, TSharedPtr< SGameMenuItemWidget > CustomWidget, UserClass *InObj, typename FGameMenuItem::FOnOptionChanged::TMethodPtr< UserClass > InMethod)
Definition GameMenuPage.h:117
void MenuGoBackCancel()
Definition GameMenuPage.h:190
TSharedRef< FGameMenuItem > AddMenuItem(const FText &InText, UserClass *InObj, typename FGameMenuItem::FOnConfirmMenuItem::TMethodPtr< UserClass > InMethod)
Definition GameMenuPage.h:81
DECLARE_DELEGATE(FOnMenuOpening)
TSharedRef< FGameMenuItem > AddMenuItemWithOptions(const FText &Text, const TArray< FText > &OptionsList, UserClass *InObj, typename FGameMenuItem::FOnOptionChanged::TMethodPtr< UserClass > InMethod)
Definition GameMenuPage.h:99
void SetCancelHandler(UserClass *InObj, typename FGameMenuPage::FOnMenuGoBack::TMethodPtr< UserClass > InMethod)
Definition GameMenuPage.h:132
TArray< TSharedPtr< FGameMenuItem > > MenuItemList
Definition GameMenuPage.h:228
FText MenuTitle
Definition GameMenuPage.h:60
MenuItemList MenuItems
Definition GameMenuPage.h:229
FOnMenuGoBack OnGoBack
Definition GameMenuPage.h:216
DECLARE_DELEGATE(FOnMenuHidden)
FOnMenuGoBack OnGoBackCancel
Definition GameMenuPage.h:219
void SetAcceptHandler(UserClass *InObj, typename FGameMenuPage::FOnMenuGoBack::TMethodPtr< UserClass > InMethod)
Definition GameMenuPage.h:156
TSharedPtr< SGameMenuPageWidget > RootMenuPageWidget
Definition GameMenuPage.h:181
Definition Text.h:385
Definition SGameMenuItemWidget.h:24
Definition SGameMenuPageWidget.h:91
Definition Array.h:670
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
TSharedRef< ObjectType, Mode > ToSharedRef() const &
Definition SharedPointer.h:1028
Definition SharedPointer.h:153
Definition GameViewportClient.h:71
U16 Index
Definition radfft.cpp:71
Definition WeakObjectPtrTemplates.h:25