11#ifndef INCGUARD_MGL_MOUSE_DELEGATE_APPLE_GC_H_1656972059
12#define INCGUARD_MGL_MOUSE_DELEGATE_APPLE_GC_H_1656972059
16#if defined(MGL_TARGET_MACOS) || defined(MGL_TARGET_IOS) || defined(MGL_TARGET_TVOS)
20#include <GameController/GameController.h>
28class AppleGCMouseDelegate :
public MouseDelegate
31 static bool IsAvailable() noexcept;
33 AppleGCMouseDelegate() noexcept;
34 ~AppleGCMouseDelegate() noexcept;
36 void UpdateState(MouseState &state) noexcept override;
37 void PostUpdatePosition(const MouseState &state) noexcept override;
38 bool SetCursorMode(CursorMode cursorMode) noexcept override;
39 [[nodiscard]] CursorMode GetCursorMode() const noexcept override;
40 void SetCursorVisibleMode(CursorVisibleMode visibleMode) noexcept override;
41 [[nodiscard]] CursorVisibleMode GetCursorVisibleMode() const noexcept override;
43 [[nodiscard]]
bool IsConnecting() const noexcept override;
46 void RegisterNotification() noexcept;
48 void OnMove(
float deltaX,
float deltaY) noexcept;
51 API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) GCMouseInput *_currentInput;
52 NSObject *_becomeObserver;
53 NSObject *_stopObserver;
56 void *_becomeObserver;