xhb-0.0.2009.1.6: patched/Graphics/XHB/Gen/Input.hs
module Graphics.XHB.Gen.Input
(extension, getExtensionVersion, listInputDevices, openDevice,
closeDevice, setDeviceMode, selectExtensionEvent,
getSelectedExtensionEvents, changeDeviceDontPropagateList,
getDeviceDontPropagateList, getDeviceMotionEvents,
changeKeyboardDevice, changePointerDevice, grabDevice,
ungrabDevice, grabDeviceKey, ungrabDeviceKey, grabDeviceButton,
ungrabDeviceButton, allowDeviceEvents, getDeviceFocus,
setDeviceFocus, getFeedbackControl, getDeviceKeyMapping,
changeDeviceKeyMapping, getDeviceModifierMapping,
setDeviceModifierMapping, getDeviceButtonMapping,
setDeviceButtonMapping, queryDeviceState, sendExtensionEvent,
deviceBell, setDeviceValuators, getDeviceControl,
module Graphics.XHB.Gen.Input.Types)
where
import Graphics.XHB.Gen.Input.Types
import Graphics.XHB.Connection.Internal
import Graphics.XHB.Connection.Extension
import Graphics.XHB.Connection.Types
import Control.Concurrent.STM
import Foreign.C.Types
import Data.Binary.Put (runPut)
import Graphics.XHB.Shared hiding (Event(..), Error(..))
import Graphics.XHB.Gen.Xproto.Types
hiding (FocusIn(..), FocusOut(..), deserializeError,
deserializeEvent)
import qualified Graphics.XHB.Gen.Xproto.Types
extension :: ExtensionId
extension = "XInputExtension"
getExtensionVersion ::
Graphics.XHB.Connection.Types.Connection ->
CARD16 -> [CChar] -> IO (Receipt GetExtensionVersionReply)
getExtensionVersion c name_len name
= do receipt <- newEmptyReceiptIO
let req = MkGetExtensionVersion name_len name
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
listInputDevices ::
Graphics.XHB.Connection.Types.Connection ->
IO (Receipt ListInputDevicesReply)
listInputDevices c
= do receipt <- newEmptyReceiptIO
let req = MkListInputDevices
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
openDevice ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> IO (Receipt OpenDeviceReply)
openDevice c device_id
= do receipt <- newEmptyReceiptIO
let req = MkOpenDevice device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
closeDevice ::
Graphics.XHB.Connection.Types.Connection -> CARD8 -> IO ()
closeDevice c device_id
= do let req = MkCloseDevice device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
setDeviceMode ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> CARD8 -> IO (Receipt SetDeviceModeReply)
setDeviceMode c device_id mode
= do receipt <- newEmptyReceiptIO
let req = MkSetDeviceMode device_id mode
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
selectExtensionEvent ::
Graphics.XHB.Connection.Types.Connection ->
SelectExtensionEvent -> IO ()
selectExtensionEvent c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
getSelectedExtensionEvents ::
Graphics.XHB.Connection.Types.Connection ->
WINDOW -> IO (Receipt GetSelectedExtensionEventsReply)
getSelectedExtensionEvents c window
= do receipt <- newEmptyReceiptIO
let req = MkGetSelectedExtensionEvents window
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
changeDeviceDontPropagateList ::
Graphics.XHB.Connection.Types.Connection ->
ChangeDeviceDontPropagateList -> IO ()
changeDeviceDontPropagateList c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
getDeviceDontPropagateList ::
Graphics.XHB.Connection.Types.Connection ->
WINDOW -> IO (Receipt GetDeviceDontPropagateListReply)
getDeviceDontPropagateList c window
= do receipt <- newEmptyReceiptIO
let req = MkGetDeviceDontPropagateList window
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
getDeviceMotionEvents ::
Graphics.XHB.Connection.Types.Connection ->
GetDeviceMotionEvents -> IO (Receipt GetDeviceMotionEventsReply)
getDeviceMotionEvents c req
= do receipt <- newEmptyReceiptIO
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
changeKeyboardDevice ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> IO (Receipt ChangeKeyboardDeviceReply)
changeKeyboardDevice c device_id
= do receipt <- newEmptyReceiptIO
let req = MkChangeKeyboardDevice device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
changePointerDevice ::
Graphics.XHB.Connection.Types.Connection ->
ChangePointerDevice -> IO (Receipt ChangePointerDeviceReply)
changePointerDevice c req
= do receipt <- newEmptyReceiptIO
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
grabDevice ::
Graphics.XHB.Connection.Types.Connection ->
GrabDevice -> IO (Receipt GrabDeviceReply)
grabDevice c req
= do receipt <- newEmptyReceiptIO
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
ungrabDevice ::
Graphics.XHB.Connection.Types.Connection ->
TIMESTAMP -> CARD8 -> IO ()
ungrabDevice c time device_id
= do let req = MkUngrabDevice time device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
grabDeviceKey ::
Graphics.XHB.Connection.Types.Connection -> GrabDeviceKey -> IO ()
grabDeviceKey c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
ungrabDeviceKey ::
Graphics.XHB.Connection.Types.Connection ->
UngrabDeviceKey -> IO ()
ungrabDeviceKey c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
grabDeviceButton ::
Graphics.XHB.Connection.Types.Connection ->
GrabDeviceButton -> IO ()
grabDeviceButton c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
ungrabDeviceButton ::
Graphics.XHB.Connection.Types.Connection ->
UngrabDeviceButton -> IO ()
ungrabDeviceButton c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
allowDeviceEvents ::
Graphics.XHB.Connection.Types.Connection ->
AllowDeviceEvents -> IO ()
allowDeviceEvents c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
getDeviceFocus ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> IO (Receipt GetDeviceFocusReply)
getDeviceFocus c device_id
= do receipt <- newEmptyReceiptIO
let req = MkGetDeviceFocus device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
setDeviceFocus ::
Graphics.XHB.Connection.Types.Connection -> SetDeviceFocus -> IO ()
setDeviceFocus c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
getFeedbackControl ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> IO (Receipt GetFeedbackControlReply)
getFeedbackControl c device_id
= do receipt <- newEmptyReceiptIO
let req = MkGetFeedbackControl device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
getDeviceKeyMapping ::
Graphics.XHB.Connection.Types.Connection ->
GetDeviceKeyMapping -> IO (Receipt GetDeviceKeyMappingReply)
getDeviceKeyMapping c req
= do receipt <- newEmptyReceiptIO
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
changeDeviceKeyMapping ::
Graphics.XHB.Connection.Types.Connection ->
ChangeDeviceKeyMapping -> IO ()
changeDeviceKeyMapping c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
getDeviceModifierMapping ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> IO (Receipt GetDeviceModifierMappingReply)
getDeviceModifierMapping c device_id
= do receipt <- newEmptyReceiptIO
let req = MkGetDeviceModifierMapping device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
setDeviceModifierMapping ::
Graphics.XHB.Connection.Types.Connection ->
SetDeviceModifierMapping ->
IO (Receipt SetDeviceModifierMappingReply)
setDeviceModifierMapping c req
= do receipt <- newEmptyReceiptIO
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
getDeviceButtonMapping ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> IO (Receipt GetDeviceButtonMappingReply)
getDeviceButtonMapping c device_id
= do receipt <- newEmptyReceiptIO
let req = MkGetDeviceButtonMapping device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
setDeviceButtonMapping ::
Graphics.XHB.Connection.Types.Connection ->
SetDeviceButtonMapping -> IO (Receipt SetDeviceButtonMappingReply)
setDeviceButtonMapping c req
= do receipt <- newEmptyReceiptIO
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
queryDeviceState ::
Graphics.XHB.Connection.Types.Connection ->
CARD8 -> IO (Receipt QueryDeviceStateReply)
queryDeviceState c device_id
= do receipt <- newEmptyReceiptIO
let req = MkQueryDeviceState device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
sendExtensionEvent ::
Graphics.XHB.Connection.Types.Connection ->
SendExtensionEvent -> IO ()
sendExtensionEvent c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
deviceBell ::
Graphics.XHB.Connection.Types.Connection -> DeviceBell -> IO ()
deviceBell c req
= do putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequest c chunk
setDeviceValuators ::
Graphics.XHB.Connection.Types.Connection ->
SetDeviceValuators -> IO (Receipt SetDeviceValuatorsReply)
setDeviceValuators c req
= do receipt <- newEmptyReceiptIO
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt
getDeviceControl ::
Graphics.XHB.Connection.Types.Connection ->
CARD16 -> CARD8 -> IO (Receipt GetDeviceControlReply)
getDeviceControl c control_id device_id
= do receipt <- newEmptyReceiptIO
let req = MkGetDeviceControl control_id device_id
putAction <- serializeExtensionRequest c req
let chunk = runPut putAction
sendRequestWithReply c chunk receipt
return receipt