hois-0.1.0.0: OIS/OISMouse.hs
{-# LANGUAGE ForeignFunctionInterface #-}
module OIS.OISMouse(
mouseState_with,
mouseEvent_with,
mouseState_delete,
mouseState_new,
mouseState_buttonDown,
mouseState_clear,
mouseEvent_new,
mouseEvent_delete,
mouseListener_delete,
mouseListener_mouseMoved,
mouseListener_mousePressed,
mouseListener_mouseReleased,
mouse_delete,
mouse_setEventCallback,
mouse_getEventCallback,
mouse_getMouseState
)
where
import OIS.Types
import Control.Monad
import Foreign
import Foreign.C.String
import Foreign.C.Types
mouseState_with :: (MouseState -> IO a) -> IO a
mouseState_with f = do
obj <- mouseState_new
res <- f obj
mouseState_delete obj
return res
mouseEvent_with :: Object -> MouseState -> (MouseEvent -> IO a) -> IO a
mouseEvent_with p1 p2 f = do
obj <- mouseEvent_new p1 p2
res <- f obj
mouseEvent_delete obj
return res
foreign import ccall "OISMouse.h OIS_MouseState_delete" c_mouseState_delete :: MouseState -> IO ()
mouseState_delete :: MouseState -> IO ()
mouseState_delete p1 = c_mouseState_delete p1
foreign import ccall "OISMouse.h OIS_MouseState_new" c_mouseState_new :: IO MouseState
mouseState_new :: IO MouseState
mouseState_new = c_mouseState_new
foreign import ccall "OISMouse.h OIS_MouseState_buttonDown" c_mouseState_buttonDown :: MouseState -> CInt -> IO CBool
mouseState_buttonDown :: MouseState -> MouseButtonID -> IO Bool
mouseState_buttonDown p1 p2 = liftM toBool $ c_mouseState_buttonDown p1 (mouseButtonIDToCInt p2)
foreign import ccall "OISMouse.h OIS_MouseState_clear" c_mouseState_clear :: MouseState -> IO ()
mouseState_clear :: MouseState -> IO ()
mouseState_clear p1 = c_mouseState_clear p1
foreign import ccall "OISMouse.h OIS_MouseEvent_new" c_mouseEvent_new :: Object -> MouseState -> IO MouseEvent
mouseEvent_new :: Object -> MouseState -> IO MouseEvent
mouseEvent_new p1 p2 = c_mouseEvent_new p1 p2
foreign import ccall "OISMouse.h OIS_MouseEvent_delete" c_mouseEvent_delete :: MouseEvent -> IO ()
mouseEvent_delete :: MouseEvent -> IO ()
mouseEvent_delete p1 = c_mouseEvent_delete p1
foreign import ccall "OISMouse.h OIS_MouseListener_delete" c_mouseListener_delete :: MouseListener -> IO ()
mouseListener_delete :: MouseListener -> IO ()
mouseListener_delete p1 = c_mouseListener_delete p1
foreign import ccall "OISMouse.h OIS_MouseListener_mouseMoved" c_mouseListener_mouseMoved :: MouseListener -> MouseEvent -> IO CBool
mouseListener_mouseMoved :: MouseListener -> MouseEvent -> IO Bool
mouseListener_mouseMoved p1 p2 = liftM toBool $ c_mouseListener_mouseMoved p1 p2
foreign import ccall "OISMouse.h OIS_MouseListener_mousePressed" c_mouseListener_mousePressed :: MouseListener -> MouseEvent -> CInt -> IO CBool
mouseListener_mousePressed :: MouseListener -> MouseEvent -> MouseButtonID -> IO Bool
mouseListener_mousePressed p1 p2 p3 = liftM toBool $ c_mouseListener_mousePressed p1 p2 (mouseButtonIDToCInt p3)
foreign import ccall "OISMouse.h OIS_MouseListener_mouseReleased" c_mouseListener_mouseReleased :: MouseListener -> MouseEvent -> CInt -> IO CBool
mouseListener_mouseReleased :: MouseListener -> MouseEvent -> MouseButtonID -> IO Bool
mouseListener_mouseReleased p1 p2 p3 = liftM toBool $ c_mouseListener_mouseReleased p1 p2 (mouseButtonIDToCInt p3)
foreign import ccall "OISMouse.h OIS_Mouse_delete" c_mouse_delete :: Mouse -> IO ()
mouse_delete :: Mouse -> IO ()
mouse_delete p1 = c_mouse_delete p1
foreign import ccall "OISMouse.h OIS_Mouse_setEventCallback" c_mouse_setEventCallback :: Mouse -> MouseListener -> IO ()
mouse_setEventCallback :: Mouse -> MouseListener -> IO ()
mouse_setEventCallback p1 p2 = c_mouse_setEventCallback p1 p2
foreign import ccall "OISMouse.h OIS_Mouse_getEventCallback" c_mouse_getEventCallback :: Mouse -> IO MouseListener
mouse_getEventCallback :: Mouse -> IO MouseListener
mouse_getEventCallback p1 = c_mouse_getEventCallback p1
foreign import ccall "OISMouse.h OIS_Mouse_getMouseState" c_mouse_getMouseState :: Mouse -> IO MouseState
mouse_getMouseState :: Mouse -> IO MouseState
mouse_getMouseState p1 = c_mouse_getMouseState p1