UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MacCursor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Math/IntRect.h"
7#include "Math/IntVector.h"
8
9@class FCocoaWindow;
10
11class FMacCursor : public ICursor
12{
13public:
14
15 FMacCursor();
16
17 virtual ~FMacCursor();
18
19 virtual void* CreateCursorFromFile(const FString& InPathToCursorWithoutExtension, FVector2D HotSpot) override;
20
21 virtual bool IsCreateCursorFromRGBABufferSupported() const override { return true; }
22
23 virtual void* CreateCursorFromRGBABuffer(const FColor* Pixels, int32 Width, int32 Height, FVector2D InHotSpot) override;
24
25 virtual FVector2D GetPosition() const override;
26
27 virtual void SetPosition(const int32 X, const int32 Y) override;
28
29 virtual void SetType(const EMouseCursor::Type InNewCursor) override;
30
31 virtual EMouseCursor::Type GetType() const override { return CurrentType; }
32
33 virtual void GetSize(int32& Width, int32& Height) const override;
34
35 virtual void Show(bool bShow) override;
36
37 virtual void Lock(const RECT* const Bounds) override;
38
39 virtual void SetTypeShape(EMouseCursor::Type InCursorType, void* CursorHandle) override;
40
41public:
42
43 bool UpdateCursorClipping(FIntVector2& CursorPosition);
44
45 void WarpCursor(const int32 X, const int32 Y);
46
48
50
51 void SetHighPrecisionMouseMode(const bool bEnable);
52
54
55 void UpdateVisibility();
56
57 bool IsLocked() const { return CursorClipRect.Area() > 0; }
58
59 void SetShouldIgnoreLocking(bool bIgnore) { bShouldIgnoreLocking = bIgnore; }
60
61private:
62
63 EMouseCursor::Type CurrentType;
64
66 NSCursor* CursorOverrideHandles[EMouseCursor::TotalCursorCount];
67
68 FIntRect CursorClipRect;
69
70 bool bIsVisible;
71 bool bUseHighPrecisionMode;
72 NSCursor* CurrentCursor;
73 int32 CursorTypeOverride;
74
75 FIntVector2 CurrentPosition;
76 FIntVector2 MouseWarpDelta;
77 bool bIsPositionInitialised;
78 bool bShouldIgnoreLocking;
79
80 io_object_t HIDInterface;
81 double SavedAcceleration;
82};
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
#define X(Name, Desc)
Definition FormatStringSan.h:47
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
Definition CocoaWindow.cpp:20
Definition MacCursor.h:12
void SetShouldIgnoreLocking(bool bIgnore)
Definition MacCursor.h:59
FIntVector2 GetIntPosition() const
Definition MacCursor.cpp:298
virtual void GetSize(int32 &Width, int32 &Height) const override
Definition MacCursor.cpp:357
virtual EMouseCursor::Type GetType() const override
Definition MacCursor.h:31
FIntVector2 GetMouseWarpDelta()
Definition MacCursor.cpp:513
virtual void SetPosition(const int32 X, const int32 Y) override
Definition MacCursor.cpp:317
virtual void SetTypeShape(EMouseCursor::Type InCursorType, void *CursorHandle) override
Definition MacCursor.cpp:570
virtual bool IsCreateCursorFromRGBABufferSupported() const override
Definition MacCursor.h:21
void UpdateVisibility()
Definition MacCursor.cpp:443
virtual void Show(bool bShow) override
Definition MacCursor.cpp:364
void UpdateCurrentPosition(const FIntVector2 &Position)
Definition MacCursor.cpp:482
virtual ~FMacCursor()
Definition MacCursor.cpp:185
void SetHighPrecisionMouseMode(const bool bEnable)
Definition MacCursor.cpp:520
virtual FVector2D GetPosition() const override
Definition MacCursor.cpp:311
FMacCursor()
Definition MacCursor.cpp:27
bool UpdateCursorClipping(FIntVector2 &CursorPosition)
Definition MacCursor.cpp:401
virtual void SetType(const EMouseCursor::Type InNewCursor) override
Definition MacCursor.cpp:338
bool IsLocked() const
Definition MacCursor.h:57
virtual void * CreateCursorFromFile(const FString &InPathToCursorWithoutExtension, FVector2D HotSpot) override
Definition MacCursor.cpp:230
void WarpCursor(const int32 X, const int32 Y)
Definition MacCursor.cpp:488
virtual void * CreateCursorFromRGBABuffer(const FColor *Pixels, int32 Width, int32 Height, FVector2D InHotSpot) override
Definition MacCursor.cpp:259
Definition ICursor.h:70
Type
Definition ICursor.h:18
@ TotalCursorCount
Definition ICursor.h:65
Definition Color.h:486
IntType Area() const
Definition IntRect.h:272
Definition AndroidSystemIncludes.h:36