macos-corelibs-0.0.1.0: src/MacSdk/Framework/CoreGraphics/Mouse.hs
-- | Core Graphics functions to control the mouse cursor.
module MacSdk.Framework.CoreGraphics.Mouse where
import MacSdk.Framework.CoreGraphics.Error
import MacSdk.Framework.CoreGraphics.Rect
import Foreign.C.Types
import Foreign
import Control.Monad.IO.Class(MonadIO(..))
-- | Moves the mouse cursor without generating events.
foreign import ccall unsafe "CGWarpMouseCursorPosition_"
cgWarpMouseCursorPosition :: Ptr Point -> IO CInt
warpMouseCursorPosition :: (MonadIO m, MonadError e m, AsCGError e) => Point -> m ()
warpMouseCursorPosition p = except . liftIO $
intToCGError <$> alloca (\ptr -> poke ptr p >> cgWarpMouseCursorPosition ptr)