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;