UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ToolMenuBase.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/NamePermissionList.h
"
7
8
#include "ToolMenuBase.generated.h"
9
10
class
FMultiBox
;
11
12
UENUM
()
13
enum
class
ECustomizedToolMenuVisibility
14
{
15
None
,
16
Visible
,
17
Hidden
18
};
19
20
USTRUCT
()
21
struct
FCustomizedToolMenuEntry
22
{
23
GENERATED_BODY
()
24
25
FCustomizedToolMenuEntry
() :
26
Visibility
(
ECustomizedToolMenuVisibility
::
None
)
27
{
28
}
29
30
UPROPERTY
()
31
ECustomizedToolMenuVisibility
Visibility
;
32
};
33
34
USTRUCT
()
35
struct
FCustomizedToolMenuSection
36
{
37
GENERATED_BODY
()
38
39
FCustomizedToolMenuSection
() :
40
Visibility
(
ECustomizedToolMenuVisibility
::
None
)
41
{
42
}
43
44
UPROPERTY
()
45
ECustomizedToolMenuVisibility
Visibility
;
46
};
47
48
USTRUCT
()
49
struct
FCustomizedToolMenuNameArray
50
{
51
GENERATED_BODY
()
52
53
UPROPERTY
()
54
TArray
<
FName
>
Names
;
55
};
56
57
/*
58
* A menu profile is a way for systems to modify instances of a menu by showing/hiding specific items. You can have multiple profiles active on
59
* a single menu at the same time.
60
*/
61
USTRUCT
()
62
struct
FToolMenuProfile
63
{
64
GENERATED_BODY
()
65
66
UPROPERTY
()
67
FName
Name
;
68
69
UPROPERTY
()
70
TMap
<
FName
,
FCustomizedToolMenuEntry
> Entries;
71
72
UPROPERTY
()
73
TMap
<
FName
,
FCustomizedToolMenuSection
> Sections;
74
75
UPROPERTY
()
76
TArray
<
FName
> SuppressExtenders;
77
78
FNamePermissionList
MenuPermissions;
79
80
SLATE_API
FCustomizedToolMenuEntry
* FindEntry(const
FName
InEntryName
);
81
SLATE_API
const
FCustomizedToolMenuEntry
* FindEntry(const
FName
InEntryName
) const;
82
SLATE_API
FCustomizedToolMenuEntry
* AddEntry(const
FName
InEntryName
);
83
SLATE_API
ECustomizedToolMenuVisibility
GetEntryVisiblity(const
FName
InSectionName
) const;
84
SLATE_API
bool
IsEntryHidden(const
FName
InEntryName
) const;
85
86
SLATE_API
FCustomizedToolMenuSection
* FindSection(const
FName
InSectionName
);
87
SLATE_API
const
FCustomizedToolMenuSection
* FindSection(const
FName
InSectionName
) const;
88
SLATE_API
FCustomizedToolMenuSection
* AddSection(const
FName
InSectionName
);
89
SLATE_API
ECustomizedToolMenuVisibility
GetSectionVisiblity(const
FName
InSectionName
) const;
90
SLATE_API
bool
IsSectionHidden(const
FName
InSectionName
) const;
91
92
SLATE_API
void
SetSuppressExtenders(const
FName
InOwnerName
, const
bool
bInSuppress
);
93
SLATE_API
bool
IsSuppressExtenders() const;
94
95
};
96
97
/*
98
* A menu customization is a specialization of menu profiles - that allows for advanced behavior such as modifying the order of sections/entries
99
* A menu can only have one customization active at a time
100
*/
101
USTRUCT
()
102
struct
FCustomizedToolMenu
:
public
FToolMenuProfile
103
{
104
GENERATED_BODY
()
105
106
SLATE_API
FName
GetEntrySectionName(
const
FName
InEntryName
)
const
;
107
108
UPROPERTY
()
109
TMap
<
FName
,
FCustomizedToolMenuNameArray
> EntryOrder;
110
111
UPROPERTY
()
112
TArray
<
FName
> SectionOrder;
113
};
114
115
/*
116
* Structure to describe a menu profile for the whole hierarchy of a menu
117
*/
118
struct
FToolMenuProfileHierarchy
119
{
120
SLATE_API
FToolMenuProfile
GenerateFlattenedMenuProfile()
const
;
121
122
TArray<const FToolMenuProfile*>
ProfileHierarchy
;
123
TArray<const FToolMenuProfile*>
RuntimeProfileHierarchy
;
124
};
125
126
/*
127
* Structure to describe the menu customization for the whole hierarchy of a menu
128
*/
129
struct
FCustomizedToolMenuHierarchy
:
public
FToolMenuProfileHierarchy
130
{
131
SLATE_API
FName
GetEntrySectionName
(
const
FName
InEntryName
)
const
;
132
SLATE_API
bool
IsEntryHidden
(
const
FName
InEntryName
)
const
;
133
SLATE_API
bool
IsSectionHidden
(
const
FName
InSectionName
)
const
;
134
SLATE_API
bool
IsSuppressExtenders
()
const
;
135
SLATE_API
FCustomizedToolMenu
GenerateFlattened
()
const
;
136
137
TArray<const FCustomizedToolMenu*>
Hierarchy
;
138
TArray<const FCustomizedToolMenu*>
RuntimeHierarchy
;
139
};
140
141
UCLASS
(Abstract, MinimalAPI)
142
class
UToolMenuBase
:
public
UObject
143
{
144
GENERATED_BODY
()
145
146
public
:
147
148
virtual
bool
IsEditing
()
const
{
return
false
; }
149
virtual
FName
GetSectionName
(
const
FName
InEntryName
)
const
{
return
NAME_None
; }
150
151
virtual
bool
ContainsSection
(
const
FName
InName)
const
{
return
false
; }
152
virtual
bool
ContainsEntry
(
const
FName
InName)
const
{
return
false
; }
153
154
virtual
FCustomizedToolMenu
*
FindMenuCustomization
()
const
{
return
nullptr
; }
155
virtual
FCustomizedToolMenu
*
AddMenuCustomization
()
const
{
return
nullptr
; }
156
virtual
FCustomizedToolMenuHierarchy
GetMenuCustomizationHierarchy
()
const
{
return
FCustomizedToolMenuHierarchy
(); }
157
158
virtual
FToolMenuProfile
*
FindMenuProfile
(
const
FName
& ProfileName)
const
{
return
nullptr
; }
159
virtual
FToolMenuProfile
*
AddMenuProfile
(
const
FName
& ProfileName)
const
{
return
nullptr
; }
160
virtual
FToolMenuProfileHierarchy
GetMenuProfileHierarchy
(
const
FName
& ProfileName)
const
{
return
FToolMenuProfileHierarchy
(); }
161
162
virtual
void
UpdateMenuCustomizationFromMultibox
(
const
TSharedRef<const FMultiBox>
&
InMultiBox
) {}
163
virtual
void
OnMenuDestroyed
() {}
164
};
165
ECbValidateMode::Names
@ Names
CoreMinimal.h
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
EDatasmithPropertyCategory::Visibility
@ Visibility
NamePermissionList.h
UPROPERTY
#define UPROPERTY(...)
UObject definition macros.
Definition
ObjectMacros.h:744
GENERATED_BODY
#define GENERATED_BODY(...)
Definition
ObjectMacros.h:765
UCLASS
#define UCLASS(...)
Definition
ObjectMacros.h:776
UENUM
#define UENUM(...)
Definition
ObjectMacros.h:749
USTRUCT
#define USTRUCT(...)
Definition
ObjectMacros.h:746
ECustomizedToolMenuVisibility
ECustomizedToolMenuVisibility
Definition
ToolMenuBase.h:14
ECustomizedToolMenuVisibility::None
@ None
ECustomizedToolMenuVisibility::Hidden
@ Hidden
ECustomizedToolMenuVisibility::Visible
@ Visible
EVariantTypes::Name
@ Name
FMultiBox
Definition
MultiBox.h:332
FNamePermissionList
Definition
NamePermissionList.h:22
FName
Definition
NameTypes.h:617
TArray
Definition
Array.h:670
TMap
Definition
UnrealString.h.inl:34
TSharedRef
Definition
SharedPointer.h:153
UObject
Definition
Object.h:95
UToolMenuBase
Definition
ToolMenuBase.h:143
UToolMenuBase::UpdateMenuCustomizationFromMultibox
virtual void UpdateMenuCustomizationFromMultibox(const TSharedRef< const FMultiBox > &InMultiBox)
Definition
ToolMenuBase.h:162
UToolMenuBase::FindMenuProfile
virtual FToolMenuProfile * FindMenuProfile(const FName &ProfileName) const
Definition
ToolMenuBase.h:158
UToolMenuBase::GetMenuCustomizationHierarchy
virtual FCustomizedToolMenuHierarchy GetMenuCustomizationHierarchy() const
Definition
ToolMenuBase.h:156
UToolMenuBase::AddMenuProfile
virtual FToolMenuProfile * AddMenuProfile(const FName &ProfileName) const
Definition
ToolMenuBase.h:159
UToolMenuBase::OnMenuDestroyed
virtual void OnMenuDestroyed()
Definition
ToolMenuBase.h:163
UToolMenuBase::ContainsEntry
virtual bool ContainsEntry(const FName InName) const
Definition
ToolMenuBase.h:152
UToolMenuBase::AddMenuCustomization
virtual FCustomizedToolMenu * AddMenuCustomization() const
Definition
ToolMenuBase.h:155
UToolMenuBase::GetSectionName
virtual FName GetSectionName(const FName InEntryName) const
Definition
ToolMenuBase.h:149
UToolMenuBase::FindMenuCustomization
virtual FCustomizedToolMenu * FindMenuCustomization() const
Definition
ToolMenuBase.h:154
UToolMenuBase::IsEditing
virtual bool IsEditing() const
Definition
ToolMenuBase.h:148
UToolMenuBase::GetMenuProfileHierarchy
virtual FToolMenuProfileHierarchy GetMenuProfileHierarchy(const FName &ProfileName) const
Definition
ToolMenuBase.h:160
UToolMenuBase::ContainsSection
virtual bool ContainsSection(const FName InName) const
Definition
ToolMenuBase.h:151
FCustomizedToolMenuEntry
Definition
ToolMenuBase.h:22
FCustomizedToolMenuHierarchy
Definition
ToolMenuBase.h:130
FCustomizedToolMenuHierarchy::GetEntrySectionName
SLATE_API FName GetEntrySectionName(const FName InEntryName) const
Definition
ToolMenuCustomization.cpp:181
FCustomizedToolMenuHierarchy::IsSuppressExtenders
SLATE_API bool IsSuppressExtenders() const
Definition
ToolMenuCustomization.cpp:244
FCustomizedToolMenuHierarchy::GenerateFlattened
SLATE_API FCustomizedToolMenu GenerateFlattened() const
Definition
ToolMenuCustomization.cpp:260
FCustomizedToolMenuHierarchy::IsEntryHidden
SLATE_API bool IsEntryHidden(const FName InEntryName) const
Definition
ToolMenuCustomization.cpp:198
FCustomizedToolMenuHierarchy::RuntimeHierarchy
TArray< const FCustomizedToolMenu * > RuntimeHierarchy
Definition
ToolMenuBase.h:138
FCustomizedToolMenuHierarchy::IsSectionHidden
SLATE_API bool IsSectionHidden(const FName InSectionName) const
Definition
ToolMenuCustomization.cpp:221
FCustomizedToolMenuHierarchy::Hierarchy
TArray< const FCustomizedToolMenu * > Hierarchy
Definition
ToolMenuBase.h:137
FCustomizedToolMenuNameArray
Definition
ToolMenuBase.h:50
FCustomizedToolMenuSection
Definition
ToolMenuBase.h:36
FCustomizedToolMenu
Definition
ToolMenuBase.h:103
FToolMenuProfileHierarchy
Definition
ToolMenuBase.h:119
FToolMenuProfileHierarchy::ProfileHierarchy
TArray< const FToolMenuProfile * > ProfileHierarchy
Definition
ToolMenuBase.h:122
FToolMenuProfileHierarchy::RuntimeProfileHierarchy
TArray< const FToolMenuProfile * > RuntimeProfileHierarchy
Definition
ToolMenuBase.h:123
FToolMenuProfile
Definition
ToolMenuBase.h:63
Engine
Source
Runtime
Slate
Public
Framework
MultiBox
ToolMenuBase.h
Generated by
1.9.8