UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InputBindingManager.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 "UICommandList.h"
9
11
14
15
18
21
26{
27public:
28
33
38
46
51
56
66
74
84
94
102
109
114
119
127
129 FDelegateHandle RegisterUserDefinedChordChanged(const FOnUserDefinedChordChanged::FDelegate& Delegate)
130 {
131 return OnUserDefinedChordChanged.Add(Delegate);
132 }
133
136 {
137 OnUserDefinedChordChanged.Remove(DelegateHandle);
138 }
139
148
157
158 // Type of filter
160 {
161 None,
162
163 DenyList,
165 };
166
176
179
187
194 SLATE_API bool RegisterCommandList(const ::FName InBindingContext, TSharedRef<FUICommandList> CommandList) const;
195
203
210 SLATE_API bool UnregisterCommandList(const ::FName InBindingContext, TSharedRef<FUICommandList> CommandList) const;
211
214
217
218private:
219
224
228 SLATE_API void CheckForDuplicateDefaultChords( const FBindingContext& InBindingContext, TSharedPtr<FUICommandInfo> InCommandInfo ) const;
229
236 SLATE_API void GetAllChildContexts( const FName InBindingContext, TArray<FName>& AllChildren ) const;
237
241 SLATE_API void PrintAllInputCommands(bool bBoundOnly);
242
243private:
244
245 struct FContextEntry
246 {
247 FContextEntry()
248 {
249 ChordToCommandInfoMaps.Init(FChordMap(), static_cast<uint8>(EMultipleKeyBindingIndex::NumChords));
250 }
252 FCommandInfoMap CommandInfoMap;
253
255 TArray<FChordMap> ChordToCommandInfoMaps;
256
258 TSharedPtr< FBindingContext > BindingContext;
259 };
260
261 struct FCommandFilterOwners
262 {
263 TArray<FName> OwnerNames;
264 };
265
266 struct FCommandFilterForContext
267 {
268 TMap<FName, FCommandFilterOwners> CommandDenyList;
269 TMap<FName, FCommandFilterOwners> CommandAllowList;
270 };
271
273 TMap<FName, FCommandFilterForContext> CommandFiltersByContext;
274
277
279 TMultiMap< FName, FName > ParentToChildMap;
280
283
285 TSharedPtr< class FUserDefinedChords > ProjectDefinedChords;
286
288 FOnUserDefinedChordChanged OnUserDefinedChordChanged;
289};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
TMap< FName, TSharedPtr< FUICommandInfo > > FCommandInfoMap
Definition InputBindingManager.h:12
TMap< FInputChord, FName > FChordMap
Definition InputBindingManager.h:13
EMultipleKeyBindingIndex
Definition UICommandInfo.h:42
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition UICommandInfo.h:85
Definition IDelegateInstance.h:14
Definition InputBindingManager.h:26
SLATE_API void GetCommandInfosFromContext(const FName InBindingContext, TArray< TSharedPtr< FUICommandInfo > > &OutCommandInfos) const
Definition InputBindingManager.cpp:423
ECommandFilterType
Definition InputBindingManager.h:160
SLATE_API const TSharedPtr< FUICommandInfo > GetCommandInfoFromInputChord(const FName InBindingContext, const FInputChord &InChord, bool bCheckDefault) const
Definition InputBindingManager.cpp:715
SLATE_API void UnregisterCommandFilterOwner(const FName InOwnerName)
Definition InputBindingManager.cpp:622
SLATE_API void RemoveInputCommand(const TSharedRef< FBindingContext > &InBindingContext, TSharedRef< FUICommandInfo > InUICommandInfo)
Definition InputBindingManager.cpp:539
SLATE_API bool RegisterCommandList(const ::FName InBindingContext, TSharedRef< FUICommandList > CommandList) const
Definition InputBindingManager.cpp:583
SLATE_API void RemoveContextByName(const FName &InContextName)
Definition InputBindingManager.cpp:771
SLATE_API void AddCommandFilter(const FName InOwnerName, const FName InBindingContext, const FName InCommandName, const ECommandFilterType FilterType)
Definition InputBindingManager.cpp:610
SLATE_API const TSharedPtr< FUICommandInfo > FindCommandInContext(const FName InBindingContext, const FInputChord &InChord, bool bCheckDefault) const
Definition InputBindingManager.cpp:655
static SLATE_API FInputBindingManager & Get()
Definition InputBindingManager.cpp:307
SLATE_API bool UnregisterCommandList(const ::FName InBindingContext, TSharedRef< FUICommandList > CommandList) const
Definition InputBindingManager.cpp:600
SLATE_API void SaveInputBindings()
Definition InputBindingManager.cpp:406
SLATE_API void CreateInputCommand(const TSharedRef< FBindingContext > &InBindingContext, TSharedRef< FUICommandInfo > InUICommandInfo)
Definition InputBindingManager.cpp:428
virtual SLATE_API void NotifyActiveChordChanged(const FUICommandInfo &CommandInfo, const EMultipleKeyBindingIndex InChordIndex)
Definition InputBindingManager.cpp:361
SLATE_API void RemoveUserDefinedChords()
Definition InputBindingManager.cpp:414
SLATE_API bool GetUserDefinedChord(const FName InBindingContext, const FName InCommandName, const EMultipleKeyBindingIndex InChordIndex, FInputChord &OutUserDefinedChord)
Definition InputBindingManager.cpp:323
SLATE_API bool GetProjectDefinedChord(const FName InBindingContext, const FName InCommandName, const EMultipleKeyBindingIndex InChordIndex, FInputChord &OutUserDefinedChord)
virtual ~FInputBindingManager()
Definition InputBindingManager.h:37
FOnRegisterCommandList OnUnregisterCommandList
Definition InputBindingManager.h:216
SLATE_API TSharedPtr< FUICommandList > RegisterNewCommandList(const FName InBindingContext) const
Definition InputBindingManager.cpp:593
FDelegateHandle RegisterUserDefinedChordChanged(const FOnUserDefinedChordChanged::FDelegate &Delegate)
Definition InputBindingManager.h:129
SLATE_API bool CommandPassesFilter(const FName InBindingContext, const FName InCommandName) const
Definition InputBindingManager.cpp:566
FOnRegisterCommandList OnRegisterCommandList
Definition InputBindingManager.h:213
SLATE_API TSharedPtr< FBindingContext > GetContextByName(const FName &InContextName)
Definition InputBindingManager.cpp:758
SLATE_API void GetKnownInputContexts(TArray< TSharedPtr< FBindingContext > > &OutInputContexts) const
Definition InputBindingManager.cpp:750
void UnregisterUserDefinedChordChanged(FDelegateHandle DelegateHandle)
Definition InputBindingManager.h:135
Definition NameTypes.h:617
Definition UICommandInfo.h:184
Definition InputBindingManager.cpp:57
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition InputChord.h:24