UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UICommandInfo.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 "InputCoreTypes.h"
8#include "Layout/Visibility.h"
12#include "UICommandInfo.generated.h"
13
14class FBindingContext;
15class FUICommandInfo;
16
18UENUM(BlueprintType)
20{
22 None,
23
25 Button,
26
29
32
34 Check,
35
38};
39
40UENUM()
47
48class FUICommandInfo;
49
50
77
79
84 : public TSharedFromThis<FBindingContext>
85{
86public:
96 : ContextName( InContextName )
97 , ContextParent( InContextParent )
98 , ContextDesc( InContextDesc )
99 , StyleSetName( InStyleSetName )
100 {
101 check(!InStyleSetName.IsNone());
102 }
103
108
113
117 FName GetContextName() const { return ContextName; }
118
122 FName GetContextParent() const { return ContextParent; }
123
127 FName GetStyleSetName() const { return StyleSetName; }
128
132 const FText& GetContextDesc() const { return ContextDesc; }
133
141 SLATE_API void AddBundle(const FName Name, const FText& Desc);
142
150
152 {
153 return GetTypeHash( Context.ContextName );
154 }
155
156 bool operator==( const FBindingContext& Other ) const
157 {
158 return ContextName == Other.ContextName;
159 }
160
163
164private:
165
167 FName ContextName;
168
170 FName ContextParent;
171
173 FText ContextDesc;
174
176 FName StyleSetName;
177
179 TMap<FName, FText> Bundles;
180};
181
182
184{
186 friend class FUICommandInfoDecl;
187
188public:
189
196
202 SLATE_API const FText GetInputText() const;
203
208
212 const bool HasActiveChord(const FInputChord InChord) const { return *ActiveChords[static_cast<uint8>(EMultipleKeyBindingIndex::Primary)] == InChord ||
213 *ActiveChords[static_cast<uint8>(EMultipleKeyBindingIndex::Secondary)] == InChord; }
214
219 return ActiveChords[static_cast<uint8>(EMultipleKeyBindingIndex::Primary)]->IsValidChord()
220 ? ActiveChords[static_cast<uint8>(EMultipleKeyBindingIndex::Primary)]
221 : ActiveChords[static_cast<uint8>(EMultipleKeyBindingIndex::Secondary)];
222 }
223
227 const bool HasDefaultChord(const FInputChord InChord) const {
228 return (DefaultChords[static_cast<uint8>(EMultipleKeyBindingIndex::Primary)] == InChord) ||
229 (DefaultChords[static_cast<uint8>(EMultipleKeyBindingIndex::Secondary)] == InChord);
230 }
231
232 const FInputChord& GetDefaultChord(const EMultipleKeyBindingIndex InChordIndex) const { return DefaultChords[static_cast<uint8>(InChordIndex)]; }
233
236
239
241 const FText& GetLabel() const { return Label; }
242
244 const FText& GetDescription() const { return Description; }
245
247 const FSlateIcon& GetIcon() const { return Icon; }
248
250 EUserInterfaceActionType GetUserInterfaceType() const { return UserInterfaceType; }
251
253 FName GetCommandName() const { return CommandName; }
254
256 FName GetBindingContext() const { return BindingContext; }
257
259 FName GetBundle() const { return Bundle; }
260
262 bool GetUseLongDisplayName() const { return bUseLongDisplayName; }
263
265 void SetUseLongDisplayName(const bool bInUseLongDisplayName) { bUseLongDisplayName = bInUseLongDisplayName; }
266
269
272
279
280private:
281
283 TArray<TSharedRef<FInputChord>> ActiveChords;
284
286 FText Label;
287
289 FText Description;
290
292 TArray<FInputChord> DefaultChords;
293
296
298 FName UIStyle;
299
301 FName CommandName;
302
304 FName BindingContext;
305
307 FName Bundle;
308
310 EUserInterfaceActionType UserInterfaceType;
311
313 bool bUseLongDisplayName;
314};
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define UENUM(...)
Definition ObjectMacros.h:749
EUserInterfaceActionType
Definition UICommandInfo.h:20
EMultipleKeyBindingIndex
Definition UICommandInfo.h:42
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition UICommandInfo.h:85
FBindingContext(const FName InContextName, const FText &InContextDesc, const FName InContextParent, const FName InStyleSetName)
Definition UICommandInfo.h:95
FName GetContextParent() const
Definition UICommandInfo.h:122
static SLATE_API FOnBindingContextChanged CommandsChanged
Definition UICommandInfo.h:162
SLATE_API const FText & GetBundleLabel(const FName Name)
Definition UICommandInfo.cpp:42
FBindingContext(const FBindingContext &)=default
bool operator==(const FBindingContext &Other) const
Definition UICommandInfo.h:156
FName GetContextName() const
Definition UICommandInfo.h:117
FBindingContext & operator=(FBindingContext &&)=default
SLATE_API void AddBundle(const FName Name, const FText &Desc)
Definition UICommandInfo.cpp:26
FBindingContext(FBindingContext &&)=default
SLATE_API FUICommandInfoDecl NewCommand(const FName InCommandName, const FText &InCommandLabel, const FText &InCommandDesc)
Definition UICommandInfo.cpp:20
FBindingContext & operator=(const FBindingContext &)=default
FName GetStyleSetName() const
Definition UICommandInfo.h:127
friend uint32 GetTypeHash(const FBindingContext &Context)
Definition UICommandInfo.h:151
const FText & GetContextDesc() const
Definition UICommandInfo.h:132
Definition InputBindingManager.h:26
Definition NameTypes.h:617
Definition Text.h:385
Definition UICommandInfo.h:55
SLATE_API FUICommandInfoDecl & Description(const FText &InDesc)
Definition UICommandInfo.cpp:86
SLATE_API FUICommandInfoDecl & UserInterfaceType(EUserInterfaceActionType InType)
Definition UICommandInfo.cpp:74
SLATE_API FUICommandInfoDecl & DefaultChord(const FInputChord &InDefaultChord, const EMultipleKeyBindingIndex InChordIndex=EMultipleKeyBindingIndex::Primary)
Definition UICommandInfo.cpp:69
Definition UICommandInfo.h:184
const FInputChord & GetDefaultChord(const EMultipleKeyBindingIndex InChordIndex) const
Definition UICommandInfo.h:232
EUserInterfaceActionType GetUserInterfaceType() const
Definition UICommandInfo.h:250
const bool HasActiveChord(const FInputChord InChord) const
Definition UICommandInfo.h:212
const bool HasDefaultChord(const FInputChord InChord) const
Definition UICommandInfo.h:227
const FText & GetLabel() const
Definition UICommandInfo.h:241
const FText & GetDescription() const
Definition UICommandInfo.h:244
static SLATE_API void MakeCommandInfo(const TSharedRef< class FBindingContext > &InContext, TSharedPtr< FUICommandInfo > &OutCommand, const FName InCommandName, const FText &InCommandLabel, const FText &InCommandDesc, const FSlateIcon &InIcon, const EUserInterfaceActionType InUserInterfaceType, const FInputChord &InDefaultChord, const FInputChord &InAlternateDefaultChord=FInputChord(), const FName InBundle=NAME_None)
Definition UICommandInfo.cpp:126
const TSharedRef< const FInputChord > GetActiveChord(const EMultipleKeyBindingIndex InChordIndex) const
Definition UICommandInfo.h:207
FName GetBundle() const
Definition UICommandInfo.h:259
static SLATE_API void UnregisterCommandInfo(const TSharedRef< class FBindingContext > &InContext, const TSharedRef< FUICommandInfo > &InCommand)
Definition UICommandInfo.cpp:144
FName GetCommandName() const
Definition UICommandInfo.h:253
const FSlateIcon & GetIcon() const
Definition UICommandInfo.h:247
SLATE_API TSharedRef< class SToolTip > MakeTooltip(const TAttribute< FText > &InText=TAttribute< FText >(), const TAttribute< EVisibility > &InToolTipVisibility=TAttribute< EVisibility >()) const
Definition UICommandInfo.cpp:168
SLATE_API const FText GetInputText() const
Definition UICommandInfo.cpp:119
bool GetUseLongDisplayName() const
Definition UICommandInfo.h:262
SLATE_API void RemoveActiveChord(const EMultipleKeyBindingIndex InChordIndex)
Definition UICommandInfo.cpp:158
FName GetBindingContext() const
Definition UICommandInfo.h:256
void SetUseLongDisplayName(const bool bInUseLongDisplayName)
Definition UICommandInfo.h:265
const TSharedRef< const FInputChord > GetFirstValidChord() const
Definition UICommandInfo.h:218
SLATE_API void SetActiveChord(const FInputChord &NewChord, const EMultipleKeyBindingIndex InChordIndex)
Definition UICommandInfo.cpp:149
Definition Array.h:670
Definition Attribute.h:17
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition InputChord.h:24
Definition SlateIcon.h:13