UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavigationConfig.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 "InputCoreTypes.h"
7#include "Input/Events.h"
8
9struct FKeyEvent;
10enum class EUINavigation : uint8;
11
12/* Since we now support multiple analog values driving the same navigation axis,
13 * we need to key their repeat-state by both FKey and EUINavigation */
15{
18
23
24 bool operator==(const FAnalogNavigationKey& Rhs) const
25 {
26 return AnalogKey == Rhs.AnalogKey
27 && NavigationDir == Rhs.NavigationDir;
28 }
29
31 {
32 const uint32 KeyHash = GetTypeHash(InAnalogNavKey.AnalogKey);
33 const uint32 NavDirHash = GetTypeHash(InAnalogNavKey.NavigationDir);
34 return HashCombine(KeyHash, NavDirHash);
35 }
36};
37
49
56
60class FNavigationConfig : public TSharedFromThis<FNavigationConfig>
61{
62public:
67
72
74 SLATE_API virtual void OnRegister();
76 SLATE_API virtual void OnUnregister();
78 SLATE_API virtual void OnUserRemoved(int32 UserIndex);
79
82
85
86 UE_DEPRECATED(4.24, "GetNavigationActionForKey doesn't handle multiple users properly, use GetNavigationActionFromKey instead")
88
90 SLATE_API virtual FString ToString() const;
91
94
95public:
104
109
114
117
120
128
133
135 virtual bool IsAnalogVerticalKey (const FKey& InKey) const { return InKey == AnalogVerticalKey; }
136
139};
140
141
144{
145public:
147 {
148 bTabNavigation = false;
149 bKeyNavigation = false;
150 bAnalogNavigation = false;
151 }
152};
153
156{
157public:
159
160protected:
161 SLATE_API virtual bool IsAnalogHorizontalKey(const FKey& InKey) const override;
162 SLATE_API virtual bool IsAnalogVerticalKey(const FKey& InKey) const override;
163};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
EUINavigationAction
Definition SlateEnums.h:124
EUINavigation
Definition SlateEnums.h:99
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NavigationConfig.h:61
float AnalogNavigationHorizontalThreshold
Definition NavigationConfig.h:106
virtual SLATE_API EUINavigation GetNavigationDirectionFromAnalogInternal(const FAnalogInputEvent &InAnalogEvent)
Definition NavigationConfig.cpp:107
bool bAnalogNavigation
Definition NavigationConfig.h:101
TMap< FKey, EUINavigationAction > KeyActionRules
Definition NavigationConfig.h:119
virtual SLATE_API void OnRegister()
Definition NavigationConfig.cpp:45
bool IsAnalogEventBeyondNavigationThreshold(const FAnalogInputEvent &InAnalogEvent) const
Definition NavigationConfig.cpp:208
bool bKeyNavigation
Definition NavigationConfig.h:99
virtual SLATE_API EUINavigation GetNavigationDirectionFromKey(const FKeyEvent &InKeyEvent) const
Definition NavigationConfig.cpp:59
virtual void OnNavigationChangedFocus(TSharedPtr< SWidget > OldWidget, TSharedPtr< SWidget > NewWidget, FFocusEvent FocusEvent)
Definition NavigationConfig.h:81
virtual SLATE_API float GetRepeatRateForPressure(float InPressure, int32 InRepeats) const
Definition NavigationConfig.cpp:153
virtual SLATE_API EUINavigationAction GetNavigationActionForKey(const FKey &InKey) const
Definition NavigationConfig.cpp:178
bool bTabNavigation
Definition NavigationConfig.h:97
TMap< FKey, EUINavigation > KeyEventRules
Definition NavigationConfig.h:116
virtual SLATE_API ~FNavigationConfig()
Definition NavigationConfig.cpp:41
virtual bool IsAnalogHorizontalKey(const FKey &InKey) const
Definition NavigationConfig.h:134
virtual bool IsAnalogVerticalKey(const FKey &InKey) const
Definition NavigationConfig.h:135
FKey AnalogHorizontalKey
Definition NavigationConfig.h:111
SLATE_API FNavigationConfig()
Definition NavigationConfig.cpp:8
TMap< int, FUserNavigationState > UserNavigationState
Definition NavigationConfig.h:138
virtual SLATE_API void OnUnregister()
Definition NavigationConfig.cpp:50
virtual SLATE_API void OnUserRemoved(int32 UserIndex)
Definition NavigationConfig.cpp:54
virtual SLATE_API EUINavigation GetNavigationDirectionFromAnalog(const FAnalogInputEvent &InAnalogEvent)
Definition NavigationConfig.cpp:83
FKey AnalogVerticalKey
Definition NavigationConfig.h:113
bool bIgnoreModifiersForNavigationActions
Definition NavigationConfig.h:103
float AnalogNavigationVerticalThreshold
Definition NavigationConfig.h:108
virtual SLATE_API EUINavigationAction GetNavigationActionFromKey(const FKeyEvent &InKeyEvent) const
Definition NavigationConfig.cpp:164
virtual SLATE_API FString ToString() const
Definition NavigationConfig.cpp:187
Definition NavigationConfig.h:144
FNullNavigationConfig()
Definition NavigationConfig.h:146
Definition NavigationConfig.h:156
virtual SLATE_API bool IsAnalogVerticalKey(const FKey &InKey) const override
Definition NavigationConfig.cpp:240
SLATE_API FTwinStickNavigationConfig()
Definition NavigationConfig.cpp:222
virtual SLATE_API bool IsAnalogHorizontalKey(const FKey &InKey) const override
Definition NavigationConfig.cpp:235
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition Events.h:528
Definition NavigationConfig.h:15
FKey AnalogKey
Definition NavigationConfig.h:16
bool operator==(const FAnalogNavigationKey &Rhs) const
Definition NavigationConfig.h:24
FAnalogNavigationKey(const FKey &InKey, const EUINavigation InNavDir)
Definition NavigationConfig.h:19
EUINavigation NavigationDir
Definition NavigationConfig.h:17
friend uint32 GetTypeHash(const FAnalogNavigationKey &InAnalogNavKey)
Definition NavigationConfig.h:30
Definition NavigationConfig.h:39
int32 Repeats
Definition NavigationConfig.h:41
double LastNavigationTime
Definition NavigationConfig.h:40
FAnalogNavigationState()
Definition NavigationConfig.h:43
Definition Events.h:51
Definition Events.h:431
Definition InputCoreTypes.h:50
Definition NavigationConfig.h:52
TMap< FAnalogNavigationKey, FAnalogNavigationState > AnalogNavigationState
Definition NavigationConfig.h:54