| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
SDL.Input.Mouse
Synopsis
- data LocationMode
- setMouseLocationMode :: (Functor m, MonadIO m) => LocationMode -> m LocationMode
- getMouseLocationMode :: MonadIO m => m LocationMode
- data MouseButton
- data MouseDevice
- data MouseScrollDirection
- data ModalLocation
- getModalMouseLocation :: MonadIO m => m ModalLocation
- getAbsoluteMouseLocation :: MonadIO m => m (Point V2 CInt)
- getRelativeMouseLocation :: MonadIO m => m (V2 CInt)
- getMouseButtons :: MonadIO m => m (MouseButton -> Bool)
- data WarpMouseOrigin
- warpMouse :: MonadIO m => WarpMouseOrigin -> Point V2 CInt -> m ()
- cursorVisible :: StateVar Bool
- data Cursor
- data SystemCursor
- activeCursor :: StateVar Cursor
- createCursor :: MonadIO m => Vector Word8 -> Vector Word8 -> V2 CInt -> Point V2 CInt -> m Cursor
- createCursorFrom :: MonadIO m => Point V2 CInt -> [[Char]] -> m Cursor
- freeCursor :: MonadIO m => Cursor -> m ()
- createColorCursor :: MonadIO m => Surface -> Point V2 CInt -> m Cursor
- createSystemCursor :: MonadIO m => SystemCursor -> m Cursor
Relative Mouse Mode
data LocationMode Source #
Constructors
| AbsoluteLocation | |
| RelativeLocation |
Instances
setMouseLocationMode :: (Functor m, MonadIO m) => LocationMode -> m LocationMode Source #
Sets the current relative mouse mode.
When relative mouse mode is enabled, cursor is hidden and mouse position will not change. However, you will be delivered relative mouse position change events.
getMouseLocationMode :: MonadIO m => m LocationMode Source #
Check which mouse location mode is currently active.
Mouse and Touch Input
data MouseButton Source #
Constructors
| ButtonLeft | |
| ButtonMiddle | |
| ButtonRight | |
| ButtonX1 | |
| ButtonX2 | |
| ButtonExtra !Int | An unknown mouse button. |
Instances
| Data MouseButton Source # | |||||
Defined in SDL.Input.Mouse Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MouseButton -> c MouseButton Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MouseButton Source # toConstr :: MouseButton -> Constr Source # dataTypeOf :: MouseButton -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MouseButton) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MouseButton) Source # gmapT :: (forall b. Data b => b -> b) -> MouseButton -> MouseButton Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MouseButton -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MouseButton -> r Source # gmapQ :: (forall d. Data d => d -> u) -> MouseButton -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> MouseButton -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MouseButton -> m MouseButton Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MouseButton -> m MouseButton Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MouseButton -> m MouseButton Source # | |||||
| Generic MouseButton Source # | |||||
Defined in SDL.Input.Mouse Associated Types
Methods from :: MouseButton -> Rep MouseButton x Source # to :: Rep MouseButton x -> MouseButton Source # | |||||
| Read MouseButton Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Show MouseButton Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Eq MouseButton Source # | |||||
Defined in SDL.Input.Mouse Methods (==) :: MouseButton -> MouseButton -> Bool Source # (/=) :: MouseButton -> MouseButton -> Bool Source # | |||||
| Ord MouseButton Source # | |||||
Defined in SDL.Input.Mouse Methods compare :: MouseButton -> MouseButton -> Ordering Source # (<) :: MouseButton -> MouseButton -> Bool Source # (<=) :: MouseButton -> MouseButton -> Bool Source # (>) :: MouseButton -> MouseButton -> Bool Source # (>=) :: MouseButton -> MouseButton -> Bool Source # max :: MouseButton -> MouseButton -> MouseButton Source # min :: MouseButton -> MouseButton -> MouseButton Source # | |||||
| FromNumber MouseButton Word8 Source # | |||||
Defined in SDL.Input.Mouse Methods fromNumber :: Word8 -> MouseButton Source # | |||||
| ToNumber MouseButton Word8 Source # | |||||
Defined in SDL.Input.Mouse Methods toNumber :: MouseButton -> Word8 Source # | |||||
| type Rep MouseButton Source # | |||||
Defined in SDL.Input.Mouse type Rep MouseButton = D1 ('MetaData "MouseButton" "SDL.Input.Mouse" "sdl2-2.5.5.1-AgF6e4ywebPJjPO67cQCnV" 'False) ((C1 ('MetaCons "ButtonLeft" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ButtonMiddle" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ButtonRight" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ButtonX1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ButtonX2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ButtonExtra" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int))))) | |||||
data MouseDevice Source #
Identifies what kind of mouse-like device this is.
Constructors
| Mouse !Int | An actual mouse. The number identifies which mouse. |
| Touch | Some sort of touch device. |
Instances
| Data MouseDevice Source # | |||||
Defined in SDL.Input.Mouse Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MouseDevice -> c MouseDevice Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MouseDevice Source # toConstr :: MouseDevice -> Constr Source # dataTypeOf :: MouseDevice -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MouseDevice) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MouseDevice) Source # gmapT :: (forall b. Data b => b -> b) -> MouseDevice -> MouseDevice Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MouseDevice -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MouseDevice -> r Source # gmapQ :: (forall d. Data d => d -> u) -> MouseDevice -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> MouseDevice -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MouseDevice -> m MouseDevice Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MouseDevice -> m MouseDevice Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MouseDevice -> m MouseDevice Source # | |||||
| Generic MouseDevice Source # | |||||
Defined in SDL.Input.Mouse Associated Types
Methods from :: MouseDevice -> Rep MouseDevice x Source # to :: Rep MouseDevice x -> MouseDevice Source # | |||||
| Read MouseDevice Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Show MouseDevice Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Eq MouseDevice Source # | |||||
Defined in SDL.Input.Mouse Methods (==) :: MouseDevice -> MouseDevice -> Bool Source # (/=) :: MouseDevice -> MouseDevice -> Bool Source # | |||||
| Ord MouseDevice Source # | |||||
Defined in SDL.Input.Mouse Methods compare :: MouseDevice -> MouseDevice -> Ordering Source # (<) :: MouseDevice -> MouseDevice -> Bool Source # (<=) :: MouseDevice -> MouseDevice -> Bool Source # (>) :: MouseDevice -> MouseDevice -> Bool Source # (>=) :: MouseDevice -> MouseDevice -> Bool Source # max :: MouseDevice -> MouseDevice -> MouseDevice Source # min :: MouseDevice -> MouseDevice -> MouseDevice Source # | |||||
| FromNumber MouseDevice Word32 Source # | |||||
Defined in SDL.Input.Mouse Methods fromNumber :: Word32 -> MouseDevice Source # | |||||
| type Rep MouseDevice Source # | |||||
Defined in SDL.Input.Mouse type Rep MouseDevice = D1 ('MetaData "MouseDevice" "SDL.Input.Mouse" "sdl2-2.5.5.1-AgF6e4ywebPJjPO67cQCnV" 'False) (C1 ('MetaCons "Mouse" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int)) :+: C1 ('MetaCons "Touch" 'PrefixI 'False) (U1 :: Type -> Type)) | |||||
data MouseScrollDirection Source #
Identifies mouse scroll direction.
Constructors
| ScrollNormal | |
| ScrollFlipped |
Instances
| Data MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MouseScrollDirection -> c MouseScrollDirection Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MouseScrollDirection Source # toConstr :: MouseScrollDirection -> Constr Source # dataTypeOf :: MouseScrollDirection -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MouseScrollDirection) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MouseScrollDirection) Source # gmapT :: (forall b. Data b => b -> b) -> MouseScrollDirection -> MouseScrollDirection Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MouseScrollDirection -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MouseScrollDirection -> r Source # gmapQ :: (forall d. Data d => d -> u) -> MouseScrollDirection -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> MouseScrollDirection -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MouseScrollDirection -> m MouseScrollDirection Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MouseScrollDirection -> m MouseScrollDirection Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MouseScrollDirection -> m MouseScrollDirection Source # | |||||
| Bounded MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Enum MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse Methods succ :: MouseScrollDirection -> MouseScrollDirection Source # pred :: MouseScrollDirection -> MouseScrollDirection Source # toEnum :: Int -> MouseScrollDirection Source # fromEnum :: MouseScrollDirection -> Int Source # enumFrom :: MouseScrollDirection -> [MouseScrollDirection] Source # enumFromThen :: MouseScrollDirection -> MouseScrollDirection -> [MouseScrollDirection] Source # enumFromTo :: MouseScrollDirection -> MouseScrollDirection -> [MouseScrollDirection] Source # enumFromThenTo :: MouseScrollDirection -> MouseScrollDirection -> MouseScrollDirection -> [MouseScrollDirection] Source # | |||||
| Generic MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse Associated Types
Methods from :: MouseScrollDirection -> Rep MouseScrollDirection x Source # to :: Rep MouseScrollDirection x -> MouseScrollDirection Source # | |||||
| Read MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Show MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Eq MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse Methods (==) :: MouseScrollDirection -> MouseScrollDirection -> Bool Source # (/=) :: MouseScrollDirection -> MouseScrollDirection -> Bool Source # | |||||
| Ord MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse Methods compare :: MouseScrollDirection -> MouseScrollDirection -> Ordering Source # (<) :: MouseScrollDirection -> MouseScrollDirection -> Bool Source # (<=) :: MouseScrollDirection -> MouseScrollDirection -> Bool Source # (>) :: MouseScrollDirection -> MouseScrollDirection -> Bool Source # (>=) :: MouseScrollDirection -> MouseScrollDirection -> Bool Source # max :: MouseScrollDirection -> MouseScrollDirection -> MouseScrollDirection Source # min :: MouseScrollDirection -> MouseScrollDirection -> MouseScrollDirection Source # | |||||
| FromNumber MouseScrollDirection Word32 Source # | |||||
Defined in SDL.Input.Mouse Methods | |||||
| type Rep MouseScrollDirection Source # | |||||
Defined in SDL.Input.Mouse | |||||
Mouse State
data ModalLocation Source #
Constructors
| AbsoluteModalLocation (Point V2 CInt) | |
| RelativeModalLocation (V2 CInt) |
Instances
| Generic ModalLocation Source # | |||||
Defined in SDL.Input.Mouse Associated Types
Methods from :: ModalLocation -> Rep ModalLocation x Source # to :: Rep ModalLocation x -> ModalLocation Source # | |||||
| Read ModalLocation Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Show ModalLocation Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Eq ModalLocation Source # | |||||
Defined in SDL.Input.Mouse Methods (==) :: ModalLocation -> ModalLocation -> Bool Source # (/=) :: ModalLocation -> ModalLocation -> Bool Source # | |||||
| Ord ModalLocation Source # | |||||
Defined in SDL.Input.Mouse Methods compare :: ModalLocation -> ModalLocation -> Ordering Source # (<) :: ModalLocation -> ModalLocation -> Bool Source # (<=) :: ModalLocation -> ModalLocation -> Bool Source # (>) :: ModalLocation -> ModalLocation -> Bool Source # (>=) :: ModalLocation -> ModalLocation -> Bool Source # max :: ModalLocation -> ModalLocation -> ModalLocation Source # min :: ModalLocation -> ModalLocation -> ModalLocation Source # | |||||
| type Rep ModalLocation Source # | |||||
Defined in SDL.Input.Mouse type Rep ModalLocation = D1 ('MetaData "ModalLocation" "SDL.Input.Mouse" "sdl2-2.5.5.1-AgF6e4ywebPJjPO67cQCnV" 'False) (C1 ('MetaCons "AbsoluteModalLocation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point V2 CInt))) :+: C1 ('MetaCons "RelativeModalLocation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (V2 CInt)))) | |||||
getModalMouseLocation :: MonadIO m => m ModalLocation Source #
Return proper mouse location depending on mouse mode
getAbsoluteMouseLocation :: MonadIO m => m (Point V2 CInt) Source #
Retrieve the current location of the mouse, relative to the currently focused window.
getMouseButtons :: MonadIO m => m (MouseButton -> Bool) Source #
Retrieve a mapping of which buttons are currently held down.
Warping the Mouse
data WarpMouseOrigin Source #
Constructors
| WarpInWindow Window | Move the mouse pointer within a given |
| WarpCurrentFocus | Move the mouse pointer within whichever |
| WarpGlobal | Move the mouse pointer in global screen space. |
Instances
| Data WarpMouseOrigin Source # | |||||
Defined in SDL.Input.Mouse Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WarpMouseOrigin -> c WarpMouseOrigin Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c WarpMouseOrigin Source # toConstr :: WarpMouseOrigin -> Constr Source # dataTypeOf :: WarpMouseOrigin -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c WarpMouseOrigin) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WarpMouseOrigin) Source # gmapT :: (forall b. Data b => b -> b) -> WarpMouseOrigin -> WarpMouseOrigin Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WarpMouseOrigin -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WarpMouseOrigin -> r Source # gmapQ :: (forall d. Data d => d -> u) -> WarpMouseOrigin -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> WarpMouseOrigin -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> WarpMouseOrigin -> m WarpMouseOrigin Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WarpMouseOrigin -> m WarpMouseOrigin Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WarpMouseOrigin -> m WarpMouseOrigin Source # | |||||
| Generic WarpMouseOrigin Source # | |||||
Defined in SDL.Input.Mouse Associated Types
Methods from :: WarpMouseOrigin -> Rep WarpMouseOrigin x Source # to :: Rep WarpMouseOrigin x -> WarpMouseOrigin Source # | |||||
| Show WarpMouseOrigin Source # | |||||
Defined in SDL.Input.Mouse | |||||
| Eq WarpMouseOrigin Source # | |||||
Defined in SDL.Input.Mouse Methods (==) :: WarpMouseOrigin -> WarpMouseOrigin -> Bool Source # (/=) :: WarpMouseOrigin -> WarpMouseOrigin -> Bool Source # | |||||
| Ord WarpMouseOrigin Source # | |||||
Defined in SDL.Input.Mouse Methods compare :: WarpMouseOrigin -> WarpMouseOrigin -> Ordering Source # (<) :: WarpMouseOrigin -> WarpMouseOrigin -> Bool Source # (<=) :: WarpMouseOrigin -> WarpMouseOrigin -> Bool Source # (>) :: WarpMouseOrigin -> WarpMouseOrigin -> Bool Source # (>=) :: WarpMouseOrigin -> WarpMouseOrigin -> Bool Source # max :: WarpMouseOrigin -> WarpMouseOrigin -> WarpMouseOrigin Source # min :: WarpMouseOrigin -> WarpMouseOrigin -> WarpMouseOrigin Source # | |||||
| type Rep WarpMouseOrigin Source # | |||||
Defined in SDL.Input.Mouse type Rep WarpMouseOrigin = D1 ('MetaData "WarpMouseOrigin" "SDL.Input.Mouse" "sdl2-2.5.5.1-AgF6e4ywebPJjPO67cQCnV" 'False) (C1 ('MetaCons "WarpInWindow" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Window)) :+: (C1 ('MetaCons "WarpCurrentFocus" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "WarpGlobal" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
warpMouse :: MonadIO m => WarpMouseOrigin -> Point V2 CInt -> m () Source #
Move the current location of a mouse pointer. The WarpMouseOrigin specifies the origin for the given warp coordinates.
Cursor Visibility
cursorVisible :: StateVar Bool Source #
Get or set whether the cursor is currently visible.
This StateVar can be modified using $= and the current value retrieved with get.
See SDL_ShowCursor and SDL_HideCursor for C documentation.
Cursor Shape
data SystemCursor Source #
Constructors
| SystemCursorArrow | |
| SystemCursorIBeam | |
| SystemCursorWait | |
| SystemCursorCrossHair | |
| SystemCursorWaitArrow | |
| SystemCursorSizeNWSE | |
| SystemCursorSizeNESW | |
| SystemCursorSizeWE | |
| SystemCursorSizeNS | |
| SystemCursorSizeAll | |
| SystemCursorNo | |
| SystemCursorHand |
Instances
| ToNumber SystemCursor Word32 Source # | |
Defined in SDL.Input.Mouse Methods toNumber :: SystemCursor -> Word32 Source # | |
activeCursor :: StateVar Cursor Source #
Get or set the currently active cursor. You can create new Cursors with createCursor.
This StateVar can be modified using $= and the current value retrieved with get.
See SDL_SetCursor and SDL_GetCursor for C documentation.
Arguments
| :: MonadIO m | |
| => Vector Word8 | Whether this part of the cursor is black. Use |
| -> Vector Word8 | Whether or not pixels are visible. Use |
| -> V2 CInt | The width and height of the cursor. |
| -> Point V2 CInt | The X- and Y-axis location of the upper left corner of the cursor relative to the actual mouse position |
| -> m Cursor |
Create a cursor using the specified bitmap data and mask (in MSB format).
Arguments
| :: MonadIO m | |
| => Point V2 CInt | The X- and Y-axis location of the upper left corner of the cursor relative to the actual mouse position |
| -> [[Char]] | |
| -> m Cursor |
Create a cursor from a bit art painting of it.
The number of columns must be a multiple of 8.
Symbols used: (space) - transparent, . - visible black, # (or anything else) - visible white.
A minimal cursor template:
source8x8 :: [[Char]]
source8x8 =
[ " "
, " "
, " "
, " "
, " "
, " "
, " "
, " "
]
freeCursor :: MonadIO m => Cursor -> m () Source #
Free a cursor created with createCursor, createColorCusor and createSystemCursor.
See SDL_FreeCursor for C documentation.
Create a color cursor.
See SDL_CreateColorCursor for C documentation.
createSystemCursor :: MonadIO m => SystemCursor -> m Cursor Source #
Create system cursor.
See SDL_CreateSystemCursor for C documentation.