UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InputBehavior.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 "InputState.h"
8#include "UObject/Object.h"
11
12#include "InputBehavior.generated.h"
13
18UENUM()
20{
21 None = 0,
22 Left = 1,
23 Right = 2,
24 Both = 3,
25 Any = 99
26};
27
47
52UENUM()
54{
55 Begin = 1,
56 Ignore = 2
57};
58
59// predeclaration
60class UInputBehavior;
61
113
118UENUM()
120{
121 Begin = 1, // start capturing (which should always be the case if BeginCapture is called)
122 Continue = 2, // Behavior wants to continue capturing
123 End = 3, // Behavior wants to end capturing
124 Ignore = 4 // Behavior ignored this event
125};
126
183
189{
190 static constexpr int DEFAULT_GIZMO_PRIORITY = 50;
191 static constexpr int DEFAULT_TOOL_PRIORITY = 100;
192
195
197 {
198 Priority = priority;
199 }
200
206
212
214 {
215 return l.Priority < r.Priority;
216 }
218 {
219 return l.Priority == r.Priority;
220 }
221};
222
247UCLASS(Transient, MinimalAPI)
249{
251
252public:
254
257
259 INTERACTIVETOOLSFRAMEWORK_API virtual void SetDefaultPriority(const FInputCapturePriority& Priority);
260
262 INTERACTIVETOOLSFRAMEWORK_API virtual EInputDevices GetSupportedDevices();
263
266
270 );
271
277 const FInputDeviceState& InputState, const FInputCaptureData& CaptureData
278 );
279
281 INTERACTIVETOOLSFRAMEWORK_API virtual void ForceEndCapture(const FInputCaptureData& CaptureData);
282
283 //
284 // hover support (optional)
285 //
286
288 INTERACTIVETOOLSFRAMEWORK_API virtual bool WantsHoverEvents();
289
292
294 INTERACTIVETOOLSFRAMEWORK_API virtual FInputCaptureUpdate BeginHoverCapture(
296 );
297
300
302 INTERACTIVETOOLSFRAMEWORK_API virtual void EndHoverCapture();
303
308 INTERACTIVETOOLSFRAMEWORK_API virtual bool WantsForceEndCapture();
309
313 UE_EXPERIMENTAL(5.7, "Capture stealing is experimental behavior. Its implementation may change in the future.")
314 INTERACTIVETOOLSFRAMEWORK_API virtual bool AllowsCaptureStealing();
315
319 UE_EXPERIMENTAL(5.7, "Capture stealing is experimental behavior. Its implementation may change in the future.")
321
322protected:
325
326 UE_EXPERIMENTAL(5.7, "Capture stealing is experimental behavior. Its implementation may change in the future.")
328 TAttribute<bool> CaptureStealing;
329};
#define UE_EXPERIMENTAL(Version, Message)
Definition CoreMiscDefines.h:369
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EInputCaptureSide
Definition InputBehavior.h:20
EInputCaptureRequestType
Definition InputBehavior.h:54
EInputCaptureState
Definition InputBehavior.h:120
EInputDevices
Definition InputState.h:30
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
Definition Attribute.h:17
Definition InputBehavior.h:249
FInputCapturePriority DefaultPriority
Definition InputBehavior.h:324
Definition Object.h:95
Definition InputBehavior.h:35
void * CustomData
Definition InputBehavior.h:39
EInputCaptureSide WhichSide
Definition InputBehavior.h:37
FInputCaptureData()
Definition InputBehavior.h:41
Definition InputBehavior.h:189
int Priority
Definition InputBehavior.h:194
FInputCapturePriority MakeLower(int DeltaAmount=1) const
Definition InputBehavior.h:202
static constexpr int DEFAULT_GIZMO_PRIORITY
Definition InputBehavior.h:190
FInputCapturePriority(int priority=DEFAULT_TOOL_PRIORITY)
Definition InputBehavior.h:196
friend bool operator<(const FInputCapturePriority &l, const FInputCapturePriority &r)
Definition InputBehavior.h:213
friend bool operator==(const FInputCapturePriority &l, const FInputCapturePriority &r)
Definition InputBehavior.h:217
FInputCapturePriority MakeHigher(int DeltaAmount=1) const
Definition InputBehavior.h:208
static constexpr int DEFAULT_TOOL_PRIORITY
Definition InputBehavior.h:191
Definition InputBehavior.h:67
friend bool operator<(const FInputCaptureRequest &l, const FInputCaptureRequest &r)
Definition InputBehavior.cpp:9
static FInputCaptureRequest Ignore()
Definition InputBehavior.h:104
static FInputCaptureRequest Begin(UInputBehavior *behavior, EInputCaptureSide whichSide, double hitDepth=TNumericLimits< double >::Max())
Definition InputBehavior.h:96
UInputBehavior * Source
Definition InputBehavior.h:69
FInputCaptureRequest(EInputCaptureRequestType type, UInputBehavior *behavior, EInputCaptureSide whichSide, double hitDepth=TNumericLimits< double >::Max())
Definition InputBehavior.h:81
EInputCaptureSide Side
Definition InputBehavior.h:73
void * Owner
Definition InputBehavior.h:79
double HitDepth
Definition InputBehavior.h:76
EInputCaptureRequestType Type
Definition InputBehavior.h:71
Definition InputBehavior.h:132
UInputBehavior * Source
Definition InputBehavior.h:136
static FInputCaptureUpdate Ignore()
Definition InputBehavior.h:162
EInputCaptureState State
Definition InputBehavior.h:134
FInputCaptureData Data
Definition InputBehavior.h:138
FInputCaptureUpdate(EInputCaptureState StateIn, UInputBehavior *SourceBehaviorIn, EInputCaptureSide WhichSideIn, void *CustomData=nullptr)
Definition InputBehavior.h:173
static FInputCaptureUpdate End()
Definition InputBehavior.h:157
static FInputCaptureUpdate Continue()
Definition InputBehavior.h:152
static FInputCaptureUpdate Begin(UInputBehavior *SourceBehavior, EInputCaptureSide WhichSide, void *CustomData=nullptr)
Definition InputBehavior.h:146
Definition InputState.h:264
Definition NumericLimits.h:41