UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GenericApplication.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "CoreTypes.h"
9#include "HAL/PlatformCrt.h"
10#include "Math/IntPoint.h"
11#include "Math/MathFwd.h"
12#include "Math/Vector2D.h"
13#include "Math/Vector4.h"
18
22class ICursor;
23class IInputInterface;
25
29namespace EModifierKey
30{
31 typedef uint8 Type;
32
34 inline const Type None = 0;
35
37 inline const Type Control = 1 << 0;
38
40 inline const Type Alt = 1 << 1;
41
43 inline const Type Shift = 1 << 2;
44
46 inline const Type Command = 1 << 3;
47
48 inline EModifierKey::Type FromBools(const bool bControl, const bool bAlt, const bool bShift, const bool bCommand)
49 {
53 if (bShift) ModifierMask |= EModifierKey::Shift;
55
56 return ModifierMask;
57 }
58};
59
60
62{
63 enum Type
64 {
67 };
68}
69
70
75{
76
77public:
78
90 const bool bInIsRightShiftDown,
91 const bool bInIsLeftControlDown,
92 const bool bInIsRightControlDown,
93 const bool bInIsLeftAltDown,
94 const bool bInIsRightAltDown,
95 const bool bInIsLeftCommandDown,
96 const bool bInIsRightCommandDown,
97 const bool bInAreCapsLocked)
98 : bIsLeftShiftDown( bInIsLeftShiftDown ),
99 bIsRightShiftDown( bInIsRightShiftDown ),
100 bIsLeftControlDown( bInIsLeftControlDown ),
101 bIsRightControlDown( bInIsRightControlDown ),
102 bIsLeftAltDown( bInIsLeftAltDown ),
103 bIsRightAltDown( bInIsRightAltDown ),
104 bIsLeftCommandDown( bInIsLeftCommandDown ),
105 bIsRightCommandDown( bInIsRightCommandDown ),
106 bAreCapsLocked( bInAreCapsLocked )
107 {
108 }
109
111 : bIsLeftShiftDown(false),
112 bIsRightShiftDown(false),
113 bIsLeftControlDown(false),
114 bIsRightControlDown(false),
115 bIsLeftAltDown(false),
116 bIsRightAltDown(false),
117 bIsLeftCommandDown(false),
118 bIsRightCommandDown(false),
119 bAreCapsLocked(false)
120 {
121 }
122
128 bool IsShiftDown() const
129 {
130 return bIsLeftShiftDown || bIsRightShiftDown;
131 }
132
138 bool IsLeftShiftDown() const
139 {
140 return bIsLeftShiftDown;
141 }
142
148 bool IsRightShiftDown() const
149 {
150 return bIsRightShiftDown;
151 }
152
158 bool IsControlDown() const
159 {
160 return bIsLeftControlDown || bIsRightControlDown;
161 }
162
168 bool IsLeftControlDown() const
169 {
170 return bIsLeftControlDown;
171 }
172
179 {
180 return bIsRightControlDown;
181 }
182
188 bool IsAltDown() const
189 {
190 return bIsLeftAltDown || bIsRightAltDown;
191 }
192
198 bool IsLeftAltDown() const
199 {
200 return bIsLeftAltDown;
201 }
202
208 bool IsRightAltDown() const
209 {
210 return bIsRightAltDown;
211 }
212
218 bool IsCommandDown() const
219 {
220 return bIsLeftCommandDown || bIsRightCommandDown;
221 }
222
228 bool IsLeftCommandDown() const
229 {
230 return bIsLeftCommandDown;
231 }
232
239 {
240 return bIsRightCommandDown;
241 }
242
243
247 bool AreCapsLocked() const
248 {
249 return bAreCapsLocked;
250 }
251
279
283 bool AnyModifiersDown() const
284 {
285 return IsControlDown() || IsCommandDown() || IsShiftDown() || IsAltDown();
286 }
287
288private:
289
291 uint16 bIsLeftShiftDown:1;
292
294 uint16 bIsRightShiftDown:1;
295
297 uint16 bIsLeftControlDown:1;
298
300 uint16 bIsRightControlDown:1;
301
303 uint16 bIsLeftAltDown:1;
304
306 uint16 bIsRightAltDown:1;
307
309 uint16 bIsLeftCommandDown:1;
310
312 uint16 bIsRightCommandDown:1;
313
315 uint16 bAreCapsLocked:1;
316};
317
318
320{
325
326 FPlatformRect() : Left(0), Top(0), Right(0), Bottom(0) {}
328
329 bool operator==(const FPlatformRect& Other) const
330 {
331 return Left == Other.Left && Top == Other.Top && Right == Other.Right && Bottom == Other.Bottom;
332 }
333};
334
335
351
352
357{
359 : TitleSafePaddingSize(0, 0, 0, 0)
360 , ActionSafePaddingSize(0, 0, 0, 0)
361 {
362 }
363
366
369
372
375
378
387
390
391 UE_DEPRECATED(4.21, "Please use RebuildDisplayMetrics - it is functionally the same but is clearer about the function cost")
393
395
398
400 APPLICATIONCORE_API void PrintToLog() const;
401
402 // The title safe zone ratio that will be returned by FDisplayMetrics::GetDisplayMetrics on platforms that don't have a defined safe zone
404protected:
405 // Fills the InOutTitleSafePaddingSize with CVar overwrites (Sets padding to 0 for values that are not set).
407
408 // The action safe zone ratio that will be returned by FDisplayMetrics::GetDisplayMetrics on platforms that don't have a defined safe zone
409 static float GetDebugActionSafeZoneRatio();
410
411 // Apply the debug/default safe zones
413};
414
415
420{
421 enum Type
422 {
428 Right
429 };
430}
431
432
437{
438public:
439
441 typedef FOnConsoleCommandAdded::FDelegate FOnConsoleCommandListener;
442
445
447
449
450#if WITH_ACCESSIBILITY
453#endif
454
455 virtual void PollGameDeviceState( const float TimeDelta ) { }
456
457 virtual void PumpMessages( const float TimeDelta ) { }
458
459 virtual void ProcessDeferredEvents( const float TimeDelta ) { }
460
461 virtual void Tick ( const float TimeDelta ) { }
462
464
466
468
469 virtual void* GetCapture( void ) const { return NULL; }
470
472
474 virtual bool IsCursorDirectlyOverSlateWindow() const { return true; }
475
478
479 virtual bool IsMinimized() const { return false; }
480
482
483 virtual bool IsUsingHighPrecisionMouseMode() const { return false; }
484
485 virtual bool IsUsingTrackpad() const { return false; }
486
487 virtual bool IsMouseAttached() const { return true; }
488
489 virtual bool IsGamepadAttached() const { return false; }
490
492
493 virtual void AddPendingConsoleCommand(const FString& InCommand) {}
494
496 {
498 OutRect.Left = 0;
499 OutRect.Top = 0;
500 OutRect.Right = 0;
501 OutRect.Bottom = 0;
502
503 return OutRect;
504 }
505
507
509
512
514
515
519
522
525
531
536
537 virtual void DestroyApplication() { }
538
539 virtual IInputInterface* GetInputInterface() { return nullptr; }
540
543
545 virtual void SendAnalytics(IAnalyticsProvider* Provider) { }
546
547 virtual bool SupportsSystemHelp() const { return false; }
548
549 virtual void ShowSystemHelp() {}
550
551 virtual bool ApplicationLicenseValid(FPlatformUserId PlatformUser = PLATFORMUSERID_NONE) { return true; }
552
553 virtual bool IsAllowedToRender() const { return true; }
554
555 virtual void FinishedInputThisFrame() {}
556public:
557
559
560protected:
561
563
564#if WITH_ACCESSIBILITY
566#endif
567
568
571
572 // Notifies subscribers when any of the display metrics change: e.g. resolution changes or monitor sare re-arranged.
574
577
580
583};
#define NULL
Definition oodle2base.h:134
constexpr FPlatformUserId PLATFORMUSERID_NONE
Definition CoreMiscDefines.h:516
@ ForceInitToZero
Definition CoreMiscDefines.h:156
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
SharedPointerInternals::TRawPtrProxy< ObjectType > MakeShareable(ObjectType *InObject)
Definition SharedPointer.h:1947
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EWindowTransparency
Definition GenericWindowDefinition.h:35
FInt32Point FIntPoint
Definition MathFwd.h:124
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition GenericWindow.h:94
Definition GenericApplication.h:75
bool IsRightControlDown() const
Definition GenericApplication.h:178
bool IsControlDown() const
Definition GenericApplication.h:158
bool IsLeftCommandDown() const
Definition GenericApplication.h:228
bool IsRightAltDown() const
Definition GenericApplication.h:208
FModifierKeysState(const bool bInIsLeftShiftDown, const bool bInIsRightShiftDown, const bool bInIsLeftControlDown, const bool bInIsRightControlDown, const bool bInIsLeftAltDown, const bool bInIsRightAltDown, const bool bInIsLeftCommandDown, const bool bInIsRightCommandDown, const bool bInAreCapsLocked)
Definition GenericApplication.h:89
FModifierKeysState()
Definition GenericApplication.h:110
bool AreCapsLocked() const
Definition GenericApplication.h:247
bool IsCommandDown() const
Definition GenericApplication.h:218
bool IsRightCommandDown() const
Definition GenericApplication.h:238
bool IsLeftAltDown() const
Definition GenericApplication.h:198
bool IsShiftDown() const
Definition GenericApplication.h:128
bool IsLeftShiftDown() const
Definition GenericApplication.h:138
bool IsLeftControlDown() const
Definition GenericApplication.h:168
bool AreModifersDown(EModifierKey::Type ModiferKeys) const
Definition GenericApplication.h:256
bool IsAltDown() const
Definition GenericApplication.h:188
bool IsRightShiftDown() const
Definition GenericApplication.h:148
bool AnyModifiersDown() const
Definition GenericApplication.h:283
Definition SlateApplication.h:252
Definition GenericApplication.h:437
FOnDisplayMetricsChanged OnDisplayMetricsChangedEvent
Definition GenericApplication.h:573
virtual EWindowTransparency GetWindowTransparencySupport() const
Definition GenericApplication.h:532
virtual void Tick(const float TimeDelta)
Definition GenericApplication.h:461
virtual APPLICATIONCORE_API ~GenericApplication()
virtual void InitializeWindow(const TSharedRef< FGenericWindow > &Window, const TSharedRef< FGenericWindowDefinition > &InDefinition, const TSharedPtr< FGenericWindow > &InParent, const bool bShowImmediately)
Definition GenericApplication.h:465
virtual void SetMessageHandler(const TSharedRef< FGenericApplicationMessageHandler > &InMessageHandler)
Definition GenericApplication.h:446
virtual FPlatformRect GetWorkArea(const FPlatformRect &CurrentWindow) const
Definition GenericApplication.h:495
virtual bool IsGamepadAttached() const
Definition GenericApplication.h:489
virtual void PollGameDeviceState(const float TimeDelta)
Definition GenericApplication.h:455
virtual void ShowSystemHelp()
Definition GenericApplication.h:549
FOnConsoleCommandAdded::FDelegate FOnConsoleCommandListener
Definition GenericApplication.h:441
virtual void ProcessDeferredEvents(const float TimeDelta)
Definition GenericApplication.h:459
virtual bool ApplicationLicenseValid(FPlatformUserId PlatformUser=PLATFORMUSERID_NONE)
Definition GenericApplication.h:551
TSharedRef< class FGenericApplicationMessageHandler > MessageHandler
Definition GenericApplication.h:562
virtual bool SupportsSystemHelp() const
Definition GenericApplication.h:547
virtual void DestroyApplication()
Definition GenericApplication.h:537
virtual void PumpMessages(const float TimeDelta)
Definition GenericApplication.h:457
FOnClipboardContentChanged & OnClipboardContentChanged()
Definition GenericApplication.h:524
DECLARE_EVENT_OneParam(FSlateApplication, FVirtualKeyboardShownEvent, FPlatformRect)
virtual bool IsCursorDirectlyOverSlateWindow() const
Definition GenericApplication.h:474
virtual void FinishedInputThisFrame()
Definition GenericApplication.h:555
virtual void GetInitialDisplayMetrics(FDisplayMetrics &OutDisplayMetrics) const
Definition GenericApplication.h:513
void BroadcastDisplayMetricsChanged(const FDisplayMetrics &InMetrics)
Definition GenericApplication.h:570
virtual FModifierKeysState GetModifierKeys() const
Definition GenericApplication.h:471
virtual ITextInputMethodSystem * GetTextInputMethodSystem()
Definition GenericApplication.h:542
virtual bool IsMouseAttached() const
Definition GenericApplication.h:487
virtual void SendAnalytics(IAnalyticsProvider *Provider)
Definition GenericApplication.h:545
virtual void SetHighPrecisionMouseMode(const bool Enable, const TSharedPtr< FGenericWindow > &InWindow)
Definition GenericApplication.h:481
virtual EWindowTitleAlignment::Type GetWindowTitleAlignment() const
Definition GenericApplication.h:527
virtual TSharedPtr< FGenericWindow > GetWindowUnderCursor()
Definition GenericApplication.h:477
FOnClipboardContentChanged OnClipboardContentChangedEvent
Definition GenericApplication.h:582
DECLARE_MULTICAST_DELEGATE_OneParam(FOnConsoleCommandAdded, const FString &)
virtual void SetCapture(const TSharedPtr< FGenericWindow > &InWindow)
Definition GenericApplication.h:467
TSharedRef< FGenericApplicationMessageHandler > GetMessageHandler()
Definition GenericApplication.h:448
FOnDisplayMetricsChanged & OnDisplayMetricsChanged()
Definition GenericApplication.h:511
DECLARE_EVENT(FSlateApplication, FOnClipboardContentChanged)
virtual TSharedRef< FGenericWindow > MakeWindow()
Definition GenericApplication.h:463
virtual void * GetCapture(void) const
Definition GenericApplication.h:469
virtual IInputInterface * GetInputInterface()
Definition GenericApplication.h:539
virtual bool IsUsingHighPrecisionMouseMode() const
Definition GenericApplication.h:483
virtual bool IsMinimized() const
Definition GenericApplication.h:479
FVirtualKeyboardHiddenEvent & OnVirtualKeyboardHidden()
Definition GenericApplication.h:521
DECLARE_EVENT_OneParam(GenericApplication, FOnDisplayMetricsChanged, const FDisplayMetrics &)
FVirtualKeyboardShownEvent VirtualKeyboardShownEvent
Definition GenericApplication.h:576
virtual bool IsAllowedToRender() const
Definition GenericApplication.h:553
DECLARE_EVENT(FSlateApplication, FVirtualKeyboardHiddenEvent)
virtual bool IsUsingTrackpad() const
Definition GenericApplication.h:485
virtual void RegisterConsoleCommandListener(const FOnConsoleCommandListener &InListener)
Definition GenericApplication.h:491
virtual void AddPendingConsoleCommand(const FString &InCommand)
Definition GenericApplication.h:493
virtual bool TryCalculatePopupWindowPosition(const FPlatformRect &InAnchor, const FVector2D &InSize, const FVector2D &ProposedPlacement, const EPopUpOrientation::Type Orientation, FVector2D *const CalculatedPopUpPosition) const
Definition GenericApplication.h:506
FVirtualKeyboardHiddenEvent VirtualKeyboardHiddenEvent
Definition GenericApplication.h:579
FVirtualKeyboardShownEvent & OnVirtualKeyboardShown()
Definition GenericApplication.h:518
const TSharedPtr< ICursor > Cursor
Definition GenericApplication.h:558
Definition IAnalyticsProvider.h:52
Definition ICursor.h:70
Definition IInputInterface.h:309
Definition ITextInputMethodSystem.h:169
Definition Array.h:670
Definition GenericApplication.h:30
const Type Alt
Definition GenericApplication.h:40
const Type Command
Definition GenericApplication.h:46
const Type Shift
Definition GenericApplication.h:43
const Type None
Definition GenericApplication.h:34
uint8 Type
Definition GenericApplication.h:31
EModifierKey::Type FromBools(const bool bControl, const bool bAlt, const bool bShift, const bool bCommand)
Definition GenericApplication.h:48
const Type Control
Definition GenericApplication.h:37
Definition GenericApplication.h:62
Type
Definition GenericApplication.h:64
@ Horizontal
Definition GenericApplication.h:65
@ Vertical
Definition GenericApplication.h:66
Definition GenericApplication.h:420
Type
Definition GenericApplication.h:422
@ Right
Definition GenericApplication.h:428
@ Left
Definition GenericApplication.h:424
@ Center
Definition GenericApplication.h:426
@ false
Definition radaudio_common.h:23
Definition GenericApplication.h:357
void ApplyDefaultSafeZones()
Definition GenericApplication.cpp:169
APPLICATIONCORE_API void PrintToLog() const
Definition GenericApplication.cpp:191
FVector4 TitleSafePaddingSize
Definition GenericApplication.h:386
static APPLICATIONCORE_API float GetDebugTitleSafeZoneRatio()
Definition GenericApplication.cpp:140
TArray< FMonitorInfo > MonitorInfo
Definition GenericApplication.h:371
FDisplayMetrics()
Definition GenericApplication.h:358
bool TryGetTitleSafeZoneOverwrite(FVector4 &InOutTitleSafePaddingSize)
Definition GenericApplication.cpp:145
int32 PrimaryDisplayHeight
Definition GenericApplication.h:368
APPLICATIONCORE_API FPlatformRect GetMonitorWorkAreaFromPoint(const FVector2D &Point) const
Definition GenericApplication.cpp:126
int32 PrimaryDisplayWidth
Definition GenericApplication.h:365
FPlatformRect PrimaryDisplayWorkAreaRect
Definition GenericApplication.h:374
FVector4 ActionSafePaddingSize
Definition GenericApplication.h:389
static APPLICATIONCORE_API void RebuildDisplayMetrics(struct FDisplayMetrics &OutDisplayMetrics)
Definition AndroidApplication.cpp:171
FPlatformRect VirtualDisplayRect
Definition GenericApplication.h:377
static float GetDebugActionSafeZoneRatio()
Definition GenericApplication.cpp:164
static void GetDisplayMetrics(struct FDisplayMetrics &OutDisplayMetrics)
Definition GenericApplication.h:392
Definition GenericApplication.h:340
FIntPoint MaxResolution
Definition GenericApplication.h:345
bool bIsPrimary
Definition GenericApplication.h:348
FString ID
Definition GenericApplication.h:342
FPlatformRect WorkArea
Definition GenericApplication.h:347
int32 NativeHeight
Definition GenericApplication.h:344
int32 NativeWidth
Definition GenericApplication.h:343
FPlatformRect DisplayRect
Definition GenericApplication.h:346
int32 DPI
Definition GenericApplication.h:349
FString Name
Definition GenericApplication.h:341
Definition GenericApplication.h:320
int32 Left
Definition GenericApplication.h:321
bool operator==(const FPlatformRect &Other) const
Definition GenericApplication.h:329
int32 Top
Definition GenericApplication.h:322
FPlatformRect()
Definition GenericApplication.h:326
FPlatformRect(int32 InLeft, int32 InTop, int32 InRight, int32 InBottom)
Definition GenericApplication.h:327
int32 Right
Definition GenericApplication.h:323
int32 Bottom
Definition GenericApplication.h:324
Definition CoreMiscDefines.h:470
Definition IntPoint.h:25