xhb (empty) → 0.0.2009.1.6
raw patch · 63 files changed
+29891/−0 lines, 63 filesdep +Xauthdep +basedep +binarysetup-changed
Dependencies added: Xauth, base, binary, byteorder, bytestring, containers, network, parsec, stm
Files
- CONTRIBUTORS +6/−0
- Graphics/XHB.hs +54/−0
- Graphics/XHB/Connection.hs +438/−0
- Graphics/XHB/Connection/Auth.hs +56/−0
- Graphics/XHB/Connection/Extension.hs +73/−0
- Graphics/XHB/Connection/Internal.hs +98/−0
- Graphics/XHB/Connection/Open.hs +101/−0
- Graphics/XHB/Connection/Types.hs +42/−0
- Graphics/XHB/Shared.hs +373/−0
- LICENSE +30/−0
- Setup.hs +2/−0
- patched/Graphics/XHB/Gen/BigRequests.hs +25/−0
- patched/Graphics/XHB/Gen/BigRequests/Types.hs +46/−0
- patched/Graphics/XHB/Gen/Composite.hs +108/−0
- patched/Graphics/XHB/Gen/Composite/Types.hs +236/−0
- patched/Graphics/XHB/Gen/DPMS.hs +73/−0
- patched/Graphics/XHB/Gen/DPMS/Types.hs +178/−0
- patched/Graphics/XHB/Gen/Damage.hs +65/−0
- patched/Graphics/XHB/Gen/Damage/Types.hs +169/−0
- patched/Graphics/XHB/Gen/Extension.hs +122/−0
- patched/Graphics/XHB/Gen/Glx.hs +980/−0
- patched/Graphics/XHB/Gen/Glx/Types.hs +3666/−0
- patched/Graphics/XHB/Gen/Input.hs +346/−0
- patched/Graphics/XHB/Gen/Input/Types.hs +2927/−0
- patched/Graphics/XHB/Gen/RandR.hs +245/−0
- patched/Graphics/XHB/Gen/RandR/Types.hs +1344/−0
- patched/Graphics/XHB/Gen/Record.hs +92/−0
- patched/Graphics/XHB/Gen/Record/Types.hs +417/−0
- patched/Graphics/XHB/Gen/Render.hs +282/−0
- patched/Graphics/XHB/Gen/Render/Types.hs +1497/−0
- patched/Graphics/XHB/Gen/Res.hs +62/−0
- patched/Graphics/XHB/Gen/Res/Types.hs +186/−0
- patched/Graphics/XHB/Gen/SELinux.hs +265/−0
- patched/Graphics/XHB/Gen/SELinux/Types.hs +707/−0
- patched/Graphics/XHB/Gen/ScreenSaver.hs +73/−0
- patched/Graphics/XHB/Gen/ScreenSaver/Types.hs +251/−0
- patched/Graphics/XHB/Gen/Shape.hs +98/−0
- patched/Graphics/XHB/Gen/Shape/Types.hs +376/−0
- patched/Graphics/XHB/Gen/Shm.hs +68/−0
- patched/Graphics/XHB/Gen/Shm/Types.hs +272/−0
- patched/Graphics/XHB/Gen/Sync.hs +154/−0
- patched/Graphics/XHB/Gen/Sync/Types.hs +556/−0
- patched/Graphics/XHB/Gen/Test.hs +55/−0
- patched/Graphics/XHB/Gen/Test/Types.hs +144/−0
- patched/Graphics/XHB/Gen/XCMisc.hs +48/−0
- patched/Graphics/XHB/Gen/XCMisc/Types.hs +115/−0
- patched/Graphics/XHB/Gen/XF86Dri.hs +142/−0
- patched/Graphics/XHB/Gen/XF86Dri/Types.hs +457/−0
- patched/Graphics/XHB/Gen/XFixes.hs +301/−0
- patched/Graphics/XHB/Gen/XFixes/Types.hs +882/−0
- patched/Graphics/XHB/Gen/XPrint.hs +250/−0
- patched/Graphics/XHB/Gen/XPrint/Types.hs +802/−0
- patched/Graphics/XHB/Gen/Xevie.hs +70/−0
- patched/Graphics/XHB/Gen/Xevie/Types.hs +186/−0
- patched/Graphics/XHB/Gen/Xinerama.hs +84/−0
- patched/Graphics/XHB/Gen/Xinerama/Types.hs +230/−0
- patched/Graphics/XHB/Gen/Xproto.hs +935/−0
- patched/Graphics/XHB/Gen/Xproto/Types.hs +6146/−0
- patched/Graphics/XHB/Gen/Xv.hs +209/−0
- patched/Graphics/XHB/Gen/Xv/Types.hs +1102/−0
- patched/Graphics/XHB/Gen/XvMC.hs +108/−0
- patched/Graphics/XHB/Gen/XvMC/Types.hs +367/−0
- xhb.cabal +99/−0
+ CONTRIBUTORS view
@@ -0,0 +1,6 @@+In order of appearance:++Antoine Latter <aslatter@gmail.com>+Spencer Janssen+Artyom Shalkhakov+
+ Graphics/XHB.hs view
@@ -0,0 +1,54 @@+-- Module to re-export te portions of XHB.Shared that should be public,+-- as well as tie together core functionality.+++{- |++X Haskell Bindings+This module containes (or re-exports) the core functionality needed to+communicate with an X server.++No frills.++If you'd like to work with an extension to the X Protocol, you should be+able to find what you're looking for in one of the Graphics.XHB.Gen.*+modules. Also, the module Graphics.XHB.Connection.Extension may be of use.++-}++module Graphics.XHB+ ( module Graphics.XHB.Connection+ , module Graphics.XHB.Gen.Xproto+ , Xid+ , XidLike(..)+ , SimpleEnum(..)+ , BitEnum(..)+ , fromMask+ , toMask+ , ValueParam()+ , toValueParam+ , fromValueParam+ , emptyValueParam+ , stringToCList+ , Receipt+ , getReply+ , Error(..)+ , SomeError+ , UnknownError(..)+ , Event(..)+ , SomeEvent+ , UnknownEvent(..)+ , CARD8+ , CARD16+ , CARD32+ , INT8+ , INT16+ , INT32+ , BOOL+ , BYTE+ ) where++import Graphics.XHB.Connection+import Graphics.XHB.Shared++import Graphics.XHB.Gen.Xproto
+ Graphics/XHB/Connection.hs view
@@ -0,0 +1,438 @@+{- |++Basic functions for initiating and working with a connection to an+X11 server.++-}++module Graphics.XHB.Connection+ (Connection+ ,connect+ ,connectTo+ ,displayInfo+ ,connectionSetup+ ,mkConnection+ ,newResource+ ,pollForEvent+ ,waitForEvent+ ,pollForError+ ,waitForError+ ,setCrashOnError+ ,SomeError+ ,SomeEvent+ ,getRoot+ )+ where++import Data.Word++-- MAY import generated type modules (XHB.Gen.*.Types)+-- MAY NOT import other generated modules++import Control.Concurrent.STM+import Control.Concurrent+import Control.Monad++import System.IO+import System.ByteOrder++import Foreign.C.String++import Data.List (genericLength)+import Data.Maybe+import Data.Monoid(mempty)+import qualified Data.Map as M++import Data.ByteString.Lazy(ByteString)+import qualified Data.ByteString.Lazy as BS++import Data.Binary.Get+import Data.Binary.Put++import Data.Bits++import Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.Extension++import Graphics.XHB.Connection.Types+import Graphics.XHB.Connection.Internal+import Graphics.XHB.Connection.Open+import Graphics.XHB.Shared++import Graphics.X11.Xauth++-- | Returns the 'Setup' information returned by the server+-- during the initiation of the connection.+connectionSetup :: Connection -> Setup+connectionSetup = conf_setup . conn_conf++newResource :: XidLike a => Connection -> IO a+newResource c = do+ xidM <- nextXid c+ case xidM of+ Just xid -> return . fromXid $ xid+ Nothing -> error "resource ids exhausted" -- request more here++nextXid :: Connection -> IO (Maybe Xid)+nextXid c = atomically $ do+ let tv = conn_resource_ids c+ xids <- readTVar tv+ case xids of+ [] -> return Nothing+ (x:xs) -> do+ writeTVar tv xs+ return . return $ x+++pollForEvent :: Connection -> IO (Maybe SomeEvent)+pollForEvent c = atomically $ pollTChan $ conn_event_queue c++waitForEvent :: Connection -> IO SomeEvent+waitForEvent c = atomically $ readTChan $ conn_event_queue c+ +pollForError :: Connection -> IO (Maybe SomeError)+pollForError c = atomically $ pollTChan $ conn_error_queue c++waitForError :: Connection -> IO SomeError+waitForError c = atomically $ readTChan $ conn_error_queue c++pollTChan :: TChan a -> STM (Maybe a)+pollTChan tc = do+ empty <- isEmptyTChan tc+ if empty then return Nothing+ else Just `liftM` readTChan tc+++-- | If you don't feel like writing error handlers, but at least want to know that+-- one happened for debugging purposes, call this to have execution come to an+-- abrupt end if an error is received.+setCrashOnError :: Connection -> IO ()+setCrashOnError c = do+ forkIO $ do+ waitForError c+ error "Received error from server. Crashing."+ return ()+++-- Any response from the server is first read into+-- this type.+data GenericReply = GenericReply+ {grep_response_type :: ResponseType+ ,grep_error_code :: Word8+ ,grep_sequence :: Word16+ ,grep_reply_length :: Word32 -- only useful for replies+ }++data ResponseType+ = ResponseTypeEvent Word8+ | ResponseTypeError+ | ResponseTypeReply++instance Deserialize GenericReply where+ deserialize = do+ type_flag <- deserialize+ let rType = case type_flag of+ 0 -> ResponseTypeError+ 1 -> ResponseTypeReply+ _ -> ResponseTypeEvent type_flag+ code <- deserialize+ sequence <- deserialize+ reply_length <- deserialize+ return $ GenericReply rType code sequence reply_length++++-- state maintained by the read loop+data ReadLoop = ReadLoop+ {read_error_queue :: TChan SomeError -- write only+ ,read_event_queue :: TChan SomeEvent -- write only+ ,read_input_queue :: Handle -- read only+ ,read_reps :: TChan PendedReply -- read only+ ,read_config :: ConnectionConfig+ ,read_extensions :: TVar ExtensionMap+ }++---- Processing for events/errors++-- reverse-lookup infrastructure for extensions. Not pretty or+-- maybe not even fast. But it is straight-forward.+queryExtMap :: (QueryExtensionReply -> CARD8)+ -> ReadLoop -> CARD8 -> IO (Maybe (ExtensionId, CARD8))+queryExtMap f r code = do+ ext_map <- atomically . readTVar $ read_extensions r+ return $ findFromCode ext_map+ where findFromCode xmap = foldr go Nothing (M.toList xmap)+ go (ident, extInfo) old+ | num <= code =+ case old of+ Just (_oldIndent, oldNum) | oldNum > num -> old+ _ -> Just (ident, num)+ | otherwise = old+ where num = f extInfo++-- | Returns the extension id and the base event code+extensionIdFromEventCode :: ReadLoop -> CARD8+ -> IO (Maybe (ExtensionId, CARD8))+extensionIdFromEventCode = queryExtMap first_event_QueryExtensionReply++-- | Returns the extension id and the base error code+extensionIdFromErrorCode :: ReadLoop -> CARD8+ -> IO (Maybe (ExtensionId, CARD8))+extensionIdFromErrorCode = queryExtMap first_error_QueryExtensionReply+++bsToError :: ReadLoop+ -> ByteString -- ^Raw data+ -> Word8 -- ^Error code+ -> IO SomeError+bsToError _r chunk code | code < 128 = case deserializeError code of+ Nothing -> return . toError . UnknownError $ chunk+ Just getAction -> return $ runGet getAction chunk+bsToError r chunk code+ = extensionIdFromErrorCode r code >>= \errInfo -> case errInfo of+ Nothing -> return . toError . UnknownError $ chunk+ Just (extId, baseErr) ->+ case errorDispatch extId (code - baseErr) of+ Nothing -> return . toError . UnknownError $ chunk+ Just getAction -> return $ runGet getAction chunk+ ++bsToEvent :: ReadLoop+ -> ByteString -- ^Raw data+ -> Word8 -- ^Event code+ -> IO SomeEvent+bsToEvent _r chunk code | code < 64 = case deserializeEvent code of+ Nothing -> return . toEvent . UnknownEvent $ chunk+ Just getAction -> return $ runGet getAction chunk+bsToEvent r chunk code+ = extensionIdFromEventCode r code >>= \evInfo -> case evInfo of+ Nothing -> return . toEvent . UnknownEvent $ chunk+ Just (extId, baseEv) ->+ case eventDispatch extId (code - baseEv) of+ Nothing -> return . toEvent . UnknownEvent $ chunk+ Just getAction -> return $ runGet getAction chunk++deserializeInReadLoop rl = deserialize++readBytes :: ReadLoop -> Int -> IO ByteString+readBytes rl n = BS.hGet (read_input_queue rl) n++-- the read loop slurps bytes off of the handle, and places+-- them into the appropriate shared structure.+readLoop :: ReadLoop -> IO ()+readLoop rl = do+ chunk <- readBytes rl 32+ let genRep = flip runGet chunk $ deserialize+ + case grep_response_type genRep of+ ResponseTypeError -> readLoopError rl genRep chunk+ ResponseTypeReply -> readLoopReply rl genRep chunk+ ResponseTypeEvent _ -> readLoopEvent rl genRep chunk+ readLoop rl++-- handle a response to a request+readLoopReply :: ReadLoop -> GenericReply -> ByteString -> IO ()+readLoopReply rl genRep chunk = do++ -- grab the rest of the response bytes+ let rlength = grep_reply_length genRep+ extra <- readBytes rl $ fromIntegral $ 4 * rlength+ let bytes = chunk `BS.append` extra++ -- place the response into the pending reply TMVar, or discard it+ atomically $ do+ nextPend <- readTChan $ read_reps rl+ if (pended_sequence nextPend) == (grep_sequence genRep)+ then case pended_reply nextPend of+ WrappedReply replyHole -> + let reply = flip runGet bytes $ deserializeInReadLoop rl+ in putReceipt replyHole $ Right reply+ else unGetTChan (read_reps rl) nextPend+++-- take the bytes making up the error response, shove it in+-- a queue.+--+-- If the error corresponds to one of the pending replies,+-- place the error into the pending reply TMVar instead.+readLoopError rl genRep chunk = do+ let errorCode = grep_error_code genRep++ err <- bsToError rl chunk errorCode+ atomically $ do+ nextPend <- readTChan $ read_reps rl+ if (pended_sequence nextPend) == (grep_sequence genRep)+ then case pended_reply nextPend of+ WrappedReply replyHole -> putReceipt replyHole (Left err)+ else do+ unGetTChan (read_reps rl) nextPend+ writeTChan (read_error_queue rl) err++-- take the bytes making up the event response, shove it in+-- a queue+readLoopEvent rl genRep chunk = do+ ev <- bsToEvent rl chunk eventCode+ atomically $ writeTChan (read_event_queue rl) ev++ where eventCode = case grep_response_type genRep of+ ResponseTypeEvent w -> w .&. 127++-- | Connect to the the default display.+connect :: IO (Maybe Connection)+connect = connectTo ""++-- | Connect to the display specified.+-- The string must be of the format used in the+-- DISPLAY environment variable.+connectTo :: String -> IO (Maybe Connection)+connectTo display = do+ (h, xau, dispName) <- open display+ hSetBuffering h NoBuffering+ mkConnection h xau dispName++-- | Returns the information about what we originally tried to+-- connect to.+displayInfo :: Connection -> DispName+displayInfo = conn_dispInfo++-- Handshake with the server+-- parse result of handshake+-- launch the thread which holds the handle for reading+mkConnection :: Handle -> Maybe Xauth -> DispName -> IO (Maybe Connection)+mkConnection hnd auth dispInfo = do+ errorQueue <- newTChanIO+ eventQueue <- newTChanIO+ replies <- newTChanIO+ sequence <- initialSequence+ extensions <- newTVarIO mempty++ wrappedHandle <- newMVar hnd ++ confM <- handshake hnd auth+ if isNothing confM then return Nothing else do+ let Just conf = confM++ rIds <- newTVarIO $ resourceIds conf++ let rlData = ReadLoop errorQueue eventQueue hnd replies conf extensions+ + readTid <- forkIO $ readLoop rlData++ return $ Just $ + Connection+ errorQueue+ eventQueue+ readTid+ wrappedHandle+ replies+ conf+ sequence+ rIds+ extensions+ dispInfo++resourceIds :: ConnectionConfig -> [Xid]+resourceIds cc = resourceIdsFromSetup $ conf_setup cc++resourceIdsFromSetup :: Setup -> [Xid]+resourceIdsFromSetup s =+ let base = resource_id_base_Setup s+ mask = resource_id_mask_Setup s+ max = mask+ step = mask .&. (-mask)+ in map MkXid $ map (.|. base) [0,step .. max]++-- first 8 bytes of the response from the setup request+data GenericSetup = GenericSetup+ {setup_status :: SetupStatus+ ,setup_length :: Word16+ }+ deriving Show++instance Deserialize GenericSetup where+ deserialize = do+ status <- deserialize+ skip 5+ length <- deserialize+ return $ GenericSetup status length ++data SetupStatus = SetupFailed | SetupAuthenticate | SetupSuccess+ deriving Show++instance Deserialize SetupStatus where+ deserialize = wordToStatus `liftM` deserialize+ where wordToStatus :: Word8 -> SetupStatus+ wordToStatus 0 = SetupFailed+ wordToStatus 1 = SetupSuccess+ wordToStatus 2 = SetupAuthenticate+ wordToStatus n = error $ + "Unkonwn setup status flag: " ++ show n++-- send the setup request to the server,+-- receive the setup response+handshake :: Handle -> Maybe Xauth -> IO (Maybe ConnectionConfig)+handshake hnd auth = do++ -- send setup request+ let requestChunk = runPut $ serialize $ setupRequest auth+ BS.hPut hnd $ requestChunk++ -- grab an 8-byte chunk to get the response type and size+ firstChunk <- BS.hGet hnd 8++ let genSetup = runGet deserialize firstChunk++ -- grab the rest of the setup response+ secondChunk <- BS.hGet hnd $ fromIntegral $ (4 *) $ setup_length genSetup+ let setupBytes = firstChunk `BS.append` secondChunk++ -- handle the response type+ case setup_status genSetup of+ SetupFailed -> do+ let failed = runGet deserialize setupBytes+ failMessage = map castCCharToChar (reason_SetupFailed failed)+ hPutStrLn stderr failMessage+ return Nothing+ SetupAuthenticate -> do+ let auth = runGet deserialize setupBytes+ authMessage = map castCCharToChar (reason_SetupAuthenticate auth)+ hPutStrLn stderr authMessage+ return Nothing+ SetupSuccess -> do+ let setup = runGet deserialize setupBytes+ return . return $ ConnectionConfig setup+ +padBS n = BS.replicate n 0++initialSequence :: IO (TVar SequenceId)+initialSequence = newTVarIO 1++setupRequest :: Maybe Xauth -> SetupRequest+setupRequest auth = MkSetupRequest+ (fromIntegral $ byteOrderToNum byteOrder)+ 11 -- major version+ 0 -- minor version+ anamelen -- auth name length+ adatalen -- auth data length+ -- TODO this manual padding is a horrible hack, it should be+ -- done by the serialization instance+ (aname ++ replicate (requiredPadding anamelen) 0)+ -- auth name+ (adata ++ replicate (requiredPadding adatalen) 0)+ -- auth data+ where+ (anamelen, aname, adatalen, adata) = case auth of+ Nothing -> (0, [], 0, [])+ Just (Xauth n d) -> (genericLength n, n, genericLength d, d)+++-- | I plan on deprecating this one soon, but until I put together+-- some sort of 'utils' package, it will live here.+--+-- Given a connection, this function returns the root window of the+-- first screen.+--+-- If your display string specifies a screen other than the first,+-- this probably doesnt do what you want.+getRoot :: Connection -> WINDOW+getRoot = root_SCREEN . head . roots_Setup . conf_setup . conn_conf
+ Graphics/XHB/Connection/Auth.hs view
@@ -0,0 +1,56 @@+module Graphics.XHB.Connection.Auth (getAuthInfo) where++import Data.Bits+import Data.Word++import System.IO++import Graphics.X11.Xauth++import Network.Socket+import Network.BSD (getHostName)++import Foreign.C (CChar)+import Foreign.C.String (castCharToCChar)++-- | Yields libxau record for given socket/display configuration.+getAuthInfo :: Socket -> Int -> IO (Maybe Xauth)+getAuthInfo fd display = do+ sock <- getPeerName fd+ (addr, fam) <- f sock+ getAuthByAddr fam addr (cstring $ show display) (cstring atype)+ where+ f x | isLocal x = getHostName >>= \h ->+ return (cstring h, 256) -- familyLocal+ -- XCB_FAMILY_INTERNET+ | isIPv4 x || isIPv6Mappedv4 x = return (host x, 0)+ -- XCB_FAMILY_INTERNET_6+ | otherwise = return (host x, 6)++ isLocal (SockAddrUnix _) = True+ isLocal (SockAddrInet _ h) = h == 16777343 -- 127.0.0.1+ isLocal (SockAddrInet6 _ _ (0,0,0,1) _) = True+ isLocal _ = False++ isIPv4 (SockAddrInet _ _) = True+ isIPv4 _ = False++ isIPv6Mappedv4 (SockAddrInet6 _ _ (0,0,0xFFFF,x) _) = True+ isIPv6Mappedv4 _ = False++ -- tear it to bytes+ -- we do this because we need bare bytes for comparison on C side+ bytes :: Word32 -> [CChar]+ bytes x = foldr g [] [0,8..24] where+ g a = let r = (x `shiftR` a) .&. 0xFF+ in ((fromIntegral r):)++ -- N.B.: no endianness conversion necessary+ host (SockAddrInet _ h) = bytes h+ host (SockAddrInet6 _ _ (x,y,z,w) _) = concatMap bytes [x,y,z,w]++ atype = "MIT-MAGIC-COOKIE-1"++cstring :: String -> [CChar]+cstring = map castCharToCChar+
+ Graphics/XHB/Connection/Extension.hs view
@@ -0,0 +1,73 @@+-- helper functions for working with extensions.++module Graphics.XHB.Connection.Extension+ ( ExtensionId+ , RequestOpCode+ , extensionPresent+ , extensionOpCode+ , extensionInfo+ , serializeExtensionRequest+ )+ where++import Control.Exception(assert)++import Data.Binary(Put)++import Data.List(genericLength)++import Graphics.XHB.Gen.Xproto+import Graphics.XHB.Gen.Xproto.Types++import Graphics.XHB.Connection.Internal+import Graphics.XHB.Connection.Types+import Graphics.XHB.Connection+import Graphics.XHB.Shared++-- | Convert an extension request to a put action.+-- Handles grabbing the extension opcode and feeding it+-- into the 'serializeRequest' function.+serializeExtensionRequest :: ExtensionRequest a => Connection -> a -> IO Put+serializeExtensionRequest c req = do+ extRep <- extensionInfo c $ extensionId req+ let present = _extensionPresent extRep+ opCode = _extensionOpCode extRep++ putAction = serializeRequest req opCode++ assert present $ return ()+ return putAction++-- | Lookup an extension. Will attempt to check the extension cache+-- first. Will block until the info is retrieved from the server.+-- Will cache the extension information when found.+extensionInfo :: Connection -> ExtensionId -> IO (QueryExtensionReply)+extensionInfo c extId = do++ extInfoMaybe <- lookupExtension c extId++ case extInfoMaybe of+ Just extInfo -> return extInfo++ Nothing -> do+ receipt <- queryExtension c (genericLength extId) (stringToCList extId)+ reply <- getReply receipt+ case reply of+ Left{} -> error $ "Fatal error resolving extension info"+ Right extInfo -> do+ cacheExtension c extId extInfo+ return extInfo++-- friendly helper functions.++extensionOpCode :: Connection -> ExtensionId -> IO RequestOpCode+extensionOpCode c x = _extensionOpCode `fmap` extensionInfo c x++extensionPresent :: Connection -> ExtensionId -> IO Bool+extensionPresent c x = _extensionPresent `fmap` extensionInfo c x++_extensionOpCode :: QueryExtensionReply -> RequestOpCode+_extensionOpCode = major_opcode_QueryExtensionReply++_extensionPresent :: QueryExtensionReply -> Bool+_extensionPresent = (/= 0) . present_QueryExtensionReply
+ Graphics/XHB/Connection/Internal.hs view
@@ -0,0 +1,98 @@++-- | This module contains functioanlity only for use+-- by other XHB modules, while still trying to hide some+-- of the implementation details of the 'Connection'+-- data type.++module Graphics.XHB.Connection.Internal+ (sendRequest+ ,sendRequestWithReply+ ,lookupExtension+ ,cacheExtension+ ,Connection+ ) where++import Data.Word(Word16)+import Control.Exception(bracket)++import Control.Concurrent.STM+import Control.Concurrent++import System.IO++import Data.ByteString.Lazy(ByteString)+import qualified Data.ByteString.Lazy as BS++import Data.Maybe+import qualified Data.Map as M++import Graphics.XHB.Connection.Types+import Graphics.XHB.Shared++import Graphics.XHB.Gen.Xproto.Types++-- Assumes that the input bytestring is a properly formatted+-- and padded request.+sendRequest :: Connection -> ByteString -> IO ()+sendRequest c bytes = withConnectionHandle c $ \h -> do++ -- send bytes onto connection+ BS.hPut h bytes++ -- increment sequence+ _ <- atomically $ nextSequence c++ return ()++sendRequestWithReply :: Deserialize a => Connection -> ByteString -> Receipt a -> IO ()+sendRequestWithReply c bytes r = withConnectionHandle c $ \h -> do++ BS.hPut h bytes++ atomically $ do+ seq <- nextSequence c+ writeTChan (conn_reps c) $ PendedReply seq $ WrappedReply r+++-- Returns the next sequence ID+nextSequence :: Connection -> STM SequenceId+nextSequence c = do+ let tv = conn_next_sequence c+ seq <- readTVar tv+ writeTVar tv (seq + 1)+ return seq++-- Locks the handle for use by the passed in function. Intended for+-- write access only.+--+-- NOTE: the read loop has a separate reference to the handle,+-- so it will not be blocked by this.+withConnectionHandle :: Connection -> (Handle -> IO a) -> IO a+withConnectionHandle c f = do+ let mv = conn_handle c+ bracket+ (takeMVar mv)+ (putMVar mv)+ f+{-# INLINE withConnectionHandle #-}++-- | Lookup an extension in the extension cache. Returns 'Nothing'+-- if queried extension is not cached+lookupExtension :: Connection -> ExtensionId -> IO (Maybe QueryExtensionReply)+lookupExtension c extId = atomically $ do+ m <- readTVar $ conn_extensions c+ return $ M.lookup extId m++-- | Add an extension to the extension cache.+cacheExtension :: Connection -> ExtensionId -> QueryExtensionReply -> IO ()+cacheExtension c extId ext = atomically $ do+ let tv = conn_extensions c++ m <- readTVar tv+ if isNothing (M.lookup extId m)+ then + let m' = M.insert extId ext m+ in writeTVar tv m'+ else return ()++
+ Graphics/XHB/Connection/Open.hs view
@@ -0,0 +1,101 @@+module Graphics.XHB.Connection.Open (open, DispName(..)) where++import System.Environment(getEnv)+import System.IO++import Control.Exception hiding (try)+import Control.Monad+import Control.Applicative((<$>))++import Data.Foldable (foldrM)++import Network.Socket+import Graphics.X11.Xauth++import Data.Maybe (fromMaybe)+import Text.ParserCombinators.Parsec++import Graphics.XHB.Connection.Auth++data DispName = DispName { proto :: String+ , host :: String+ , display :: Int+ , screen :: Int+ } deriving Show++-- | Open a Handle to the X11 server specified in the argument. The DISPLAY+-- environment variable is consulted if the argument is null.+open :: String -> IO (Handle , Maybe Xauth, DispName)+open [] = (getEnv "DISPLAY") >>= open+open disp+ | take 11 disp == "/tmp/launch" = do+ fd <- fromMaybe (error "couldn't open socket") <$> openUnix "" disp+ hndl <- socketToHandle fd ReadWriteMode+ return (hndl, Nothing, launchDDisplayInfo disp)+open xs = let+ cont (DispName p h d s)+ | null h || null p && h == "unix" = openUnix p+ ("/tmp/.X11-unix/X" ++ show d)+ | otherwise = openTCP p h (6000 + d)++ openTCP proto host port+ | proto == [] || proto == "tcp" =+ let addrInfo = defaultHints { addrFlags = [ AI_ADDRCONFIG+ , AI_NUMERICSERV+ ]+ , addrFamily = AF_UNSPEC+ , addrSocketType = Stream+ }+ conn (AddrInfo _ fam socktype proto addr _) Nothing = do+ fd <- socket fam socktype proto+ connect fd addr+ return $ Just fd+ conn _ x = return x+ in getAddrInfo (Just addrInfo) (Just host) (Just (show port))+ >>= foldrM conn Nothing+ | otherwise = error "'protocol' should be empty or 'tcp'"+ + in case parseDisplay xs of+ (Left e) -> error (show e)+ (Right x) -> do+ socket <- cont x >>= return . fromMaybe+ (error "couldn't open socket")+ auth <- getAuthInfo socket (display x) + hndl <- socketToHandle socket ReadWriteMode+ return (hndl, auth, x)++openUnix proto file+ | proto == [] || proto == "unix" = do+ fd <- socket AF_UNIX Stream defaultProtocol+ connect fd (SockAddrUnix file)+ return $ Just fd+ | otherwise = error "'protocol' should be empty or 'unix'"+++-- | Parse the contents of an X11 DISPLAY environment variable.+-- TODO: make a public version (see xcb_parse_display)+parseDisplay :: String -> Either ParseError DispName+parseDisplay [] = Right defaultDisplayInfo+parseDisplay xs = parse exp "" xs where+ exp = do+ p <- option "" (try $ skip '/') <?> "protocol"+ h <- option "" ((try ipv6) <|> (try host)) <?> "host"+ d <- char ':' >> integer <?> "display"+ s <- option 0 (char '.' >> integer <?> "screen")+ return $ DispName p h d s+ eat c s = char c >> return s+ anyExcept c = many1 (noneOf [c])+ skip c = anyExcept c >>= eat c+ ipv6 = char '[' >> skip ']'+ host = anyExcept ':'+ integer :: Parser Int+ integer = many1 digit >>= \x -> return $ read x++-- | Given a launchd display-string, return the appropriate+-- DispName structure for it.+launchDDisplayInfo :: String -> DispName+launchDDisplayInfo str = case parseDisplay (dropWhile (/= ':') str) of+ Left{} -> defaultDisplayInfo+ Right d -> d++defaultDisplayInfo = DispName "" "" 0 0
+ Graphics/XHB/Connection/Types.hs view
@@ -0,0 +1,42 @@+module Graphics.XHB.Connection.Types where++import Graphics.XHB.Shared+import Graphics.XHB.Connection.Open++import Control.Concurrent.STM+import Control.Concurrent++import System.IO++import Data.Word+import Data.Map(Map)++import Graphics.XHB.Gen.Xproto.Types++data Connection = Connection+ {conn_error_queue :: TChan SomeError -- read only+ ,conn_event_queue :: TChan SomeEvent -- read only+ ,conn_read_loop_tid :: ThreadId+ ,conn_handle :: MVar Handle -- write only+ ,conn_reps :: TChan PendedReply -- insert only+ ,conn_conf :: ConnectionConfig+ ,conn_next_sequence :: TVar SequenceId+ ,conn_resource_ids :: TVar [Xid]+ ,conn_extensions :: TVar ExtensionMap+ ,conn_dispInfo :: DispName -- what we were told to connect to+ }++type ExtensionMap = Map ExtensionId QueryExtensionReply++data ConnectionConfig = ConnectionConfig+ { conf_setup :: Setup+ }++type SequenceId = Word16++data PendedReply = PendedReply+ {pended_sequence :: SequenceId+ ,pended_reply :: WrappedReply+ }++data WrappedReply = forall a . Deserialize a => WrappedReply (Receipt a)
@@ -0,0 +1,373 @@+{-# LANGUAGE GeneralizedNewtypeDeriving, BangPatterns #-}++module Graphics.XHB.Shared where++-- MAY NOT import any gnerated files++import Data.Typeable++import Data.Binary.Put+import Data.Binary.Get++import Data.Word+import Data.Int+import Data.Bits+import Data.Maybe++import Control.Monad+import Control.Exception+import Data.Function++import Data.List as L++import Foreign.C.Types (CChar, CFloat, CDouble)+import Foreign.C.String++import qualified Data.ByteString.Lazy as BS+import Data.ByteString.Lazy (ByteString)++import Control.Concurrent.STM+ ( TMVar+ , STM+ , putTMVar+ , newEmptyTMVarIO+ , takeTMVar+ , putTMVar+ , atomically+ )++import System.ByteOrder++-- crazy imports for put/get storable+import qualified Data.ByteString.Internal as Strict+import Foreign+import Foreign.Storable+import Foreign.Ptr+import Foreign.ForeignPtr++byteOrderToNum :: ByteOrder -> Int+byteOrderToNum BigEndian = fromEnum '\o102' -- B+byteOrderToNum LittleEndian = fromEnum '\o154' -- l+byteOrderToNum Mixed{} = error "Mixed endian platforms not supported."++type CARD8 = Word8+type CARD16 = Word16+type CARD32 = Word32++type INT32 = Int32+type INT16 = Int16+type INT8 = Int8++type BOOL = Word8++type BYTE = Word8++newtype Xid = MkXid Word32+ deriving (Eq, Ord, Serialize, Deserialize)++instance Show Xid where+ show (MkXid x) = show x++class XidLike a where+ fromXid :: Xid -> a+ toXid :: a -> Xid++instance XidLike Xid where+ fromXid = id+ toXid = id++-- Enums and ValueParams++class SimpleEnum a where+ toValue :: Num n => a -> n+ fromValue :: Num n => n -> a++class BitEnum a where+ toBit :: a -> Int+ fromBit :: Int -> a++instance BitEnum Integer where+ toBit = fromIntegral+ fromBit = fromIntegral++fromMask :: (Bits b, BitEnum e) => b -> [e]+fromMask x = mapMaybe go [0..(bitSize x) - 1]+ where go i | x `testBit` i = return $ fromBit i+ | otherwise = Nothing++toMask :: (Bits b, BitEnum e) => [e] -> b+toMask = foldl' (.|.) 0 . map (bit . toBit)+++data ValueParam a = VP a [Word32]++toValueParam :: (Bits a, BitEnum e) => [(e,Word32)] -> ValueParam a+toValueParam xs = + let (es,ws) = unzip $ L.sortBy (compare `on` toBit . fst) xs+ in VP (toMask es) ws++fromValueParam :: (Bits a, BitEnum e) => ValueParam a -> [(e,Word32)]+fromValueParam (VP x ws) =+ let es = fromMask x+ in assert (length es == length ws) $ zip es ws++emptyValueParam :: Bits a => ValueParam a+emptyValueParam = VP 0 []++instance (Bits a, Show a) => Show (ValueParam a) where+ show v = show (fromValueParam v :: [(Integer,Word32)])++stringToCList :: String -> [CChar]+stringToCList = map castCharToCChar+++class Serialize a where+ serialize :: a -> Put+ size :: a -> Int -- Size in bytes++class Deserialize a where+ deserialize :: Get a++class ExtensionRequest a where+ serializeRequest :: a -> RequestOpCode -> Put+ extensionId :: a -> ExtensionId++type RequestOpCode = Word8+type ExtensionId = String -- limited to ASCII+ ++-- In units of four bytes+type ReplyLength = Word32++newtype Receipt a = MkReceipt+ {unReceipt :: TMVar (Either SomeError a)}++newEmptyReceiptIO :: IO (Receipt a)+newEmptyReceiptIO = MkReceipt `fmap` newEmptyTMVarIO++putReceipt :: Receipt a -> Either SomeError a -> STM ()+putReceipt = putTMVar . unReceipt++-- | Extracts a reply from the receipt from the request.+-- Blocks until the reply is available.+getReply :: Receipt a -> IO (Either SomeError a)+getReply (MkReceipt r)+ = atomically $ do+ a <- takeTMVar r+ putTMVar r a+ return a++-- Because new errors and events are introduced with each extension,+-- I don't want to give the users of this library pattern-match+-- error every time a new extension is added.++class (Typeable a, Show a) => Error a where+ fromError :: SomeError -> Maybe a+ toError :: a -> SomeError++ fromError (SomeError e) = cast e+ toError = SomeError++data SomeError = forall a . Error a => SomeError a++instance Show SomeError where+ show se = case se of+ SomeError err -> show err++data UnknownError = UnknownError BS.ByteString deriving (Typeable, Show)+instance Error UnknownError++++class Typeable a => Event a where+ fromEvent :: SomeEvent -> Maybe a+ toEvent :: a -> SomeEvent++ fromEvent (SomeEvent e) = cast e+ toEvent = SomeEvent++data SomeEvent = forall a . Event a => SomeEvent a++data UnknownEvent = UnknownEvent BS.ByteString deriving (Typeable)+instance Event UnknownEvent++++++deserializeList :: Deserialize a => Int -> Get [a]+deserializeList n = go n+ where go 0 = return []+ go n = do+ x <- deserialize+ xs <- go (n-1)+ return $ x : xs++serializeList :: Serialize a => [a] -> Put+serializeList = mapM_ serialize++convertBytesToRequestSize n =+ fromIntegral $ case quotRem n 4 of+ (d,0) -> d+ (d,r) -> d + 1++requiredPadding n = + fromIntegral $ case quotRem n 4 of+ (_,0) -> 0+ (_,r) -> 4 - r++--Instances++-- Words+instance Serialize Word8 where+ serialize = putWord8+ size _ = 1++instance Deserialize Word8 where+ deserialize = getWord8++instance Serialize Word16 where+ serialize = putWord16host+ size _ = 2++instance Deserialize Word16 where+ deserialize = getWord16host+++instance Serialize Word32 where+ serialize = putWord32host+ size _ = 4++instance Deserialize Word32 where+ deserialize = getWord32host++-- Ints+instance Serialize Int8 where+ serialize = putInt8+ size _ = 1++instance Deserialize Int8 where+ deserialize = getInt8+++instance Serialize Int16 where+ serialize = putInt16host+ size _ = 2++instance Deserialize Int16 where+ deserialize = getInt16host+++instance Serialize Int32 where+ serialize = putInt32host+ size _ = 4++instance Deserialize Int32 where+ deserialize = getInt32host+++instance Serialize CChar where+ serialize = putWord8 . fromIntegral -- assumes a CChar is one word+ size _ = 1++instance Deserialize CChar where+ deserialize = liftM fromIntegral getWord8++++-- Binary.Missing++-- All of this relies on being able to roundtrip:+-- (IntN -> WordN) and (WordN -> IntN) using 'fromIntegral'++putInt8 :: Int8 -> Put+putInt8 = putWord8 . fromIntegral++getInt8 :: Get Int8+getInt8 = liftM fromIntegral getWord8++putInt16host :: Int16 -> Put+putInt16host = putWord16host . fromIntegral++getInt16host :: Get Int16+getInt16host = liftM fromIntegral getWord16host++putInt32host :: Int32 -> Put+putInt32host = putWord32host . fromIntegral++getInt32host :: Get Int32+getInt32host = liftM fromIntegral getWord32host++-- Fun stuff++-- I've no idea if this is what the other end expects+instance Deserialize CFloat where+ deserialize = getStorable++instance Serialize CFloat where+ size x = sizeOf x+ serialize = putStorable++instance Deserialize CDouble where+ deserialize = getStorable+++getStorable :: Storable a => Get a+getStorable = (\dummy -> do+ let n = sizeOf dummy+ bytes <- getBytes n+ return $ storableFromBS bytes `asTypeOf` dummy+ ) undefined ++putStorable :: Storable a => a -> Put+putStorable = putByteString . bsFromStorable++storableFromBS (Strict.PS fptr len off) = + unsafePerformIO $ withForeignPtr fptr $ flip peekElemOff off . castPtr++bsFromStorable x = Strict.unsafeCreate (sizeOf x) $ \p -> do+ poke (castPtr p) x++-- Other++instance (Serialize a, Bits a) => Serialize (ValueParam a) where+ serialize = serializeValueParam 0+ size (VP mask xs) = size mask + sum (map size xs)++-- there's one value param which needs funny padding, so it+-- uses the special function+serializeValueParam :: (Serialize a, Bits a) =>+ Int -> ValueParam a -> Put+serializeValueParam pad (VP mask xs) = do+ serialize mask+ putSkip pad+ assert (length xs == setBits mask) $ return ()+ serializeList xs+ ++instance (Deserialize a, Bits a) => Deserialize (ValueParam a) where+ deserialize = deserializeValueParam 0++deserializeValueParam :: (Deserialize a, Bits a) =>+ Int -> Get (ValueParam a)+deserializeValueParam pad = do+ mask <- deserialize+ skip pad+ let n = setBits mask+ xs <- deserializeList n+ return $ VP mask xs++-- |Returns the number of bits set in the passed-in+-- bitmask.+setBits :: Bits a => a -> Int+setBits a = foldl' go 0 [0 .. (bitSize a) - 1]+ where go !n bit | a `testBit` bit = n + 1+ | otherwise = n+++putSkip :: Int -> Put+putSkip 0 = return ()+putSkip n = replicateM_ n $ putWord8 0++isCard32 :: CARD32 -> a+isCard32 = undefined
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c) 2008, 2009 Antoine Latter and other contributors++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of the author nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ patched/Graphics/XHB/Gen/BigRequests.hs view
@@ -0,0 +1,25 @@+module Graphics.XHB.Gen.BigRequests+ (extension, enable, module Graphics.XHB.Gen.BigRequests.Types)+ where+import Graphics.XHB.Gen.BigRequests.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(..))+ +extension :: ExtensionId+extension = "BIG-REQUESTS"+ +enable ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt EnableReply)+enable c+ = do receipt <- newEmptyReceiptIO+ let req = MkEnable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/BigRequests/Types.hs view
@@ -0,0 +1,46 @@+module Graphics.XHB.Gen.BigRequests.Types+ (deserializeError, deserializeEvent, Enable(..), EnableReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data Enable = MkEnable{}+ deriving (Show, Typeable)+ +instance ExtensionRequest Enable where+ extensionId _ = "BIG-REQUESTS"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data EnableReply = MkEnableReply{maximum_request_length_EnableReply+ :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize EnableReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ maximum_request_length <- deserialize+ let _ = isCard32 length+ return (MkEnableReply maximum_request_length)
+ patched/Graphics/XHB/Gen/Composite.hs view
@@ -0,0 +1,108 @@+module Graphics.XHB.Gen.Composite+ (extension, queryVersion, redirectWindow, redirectSubwindows,+ unredirectWindow, unredirectSubwindows, createRegionFromBorderClip,+ nameWindowPixmap, getOverlayWindow, releaseOverlayWindow,+ module Graphics.XHB.Gen.Composite.Types)+ where+import Graphics.XHB.Gen.Composite.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.XFixes.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.XFixes.Types+ +extension :: ExtensionId+extension = "Composite"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt QueryVersionReply)+queryVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +redirectWindow ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CARD8 -> IO ()+redirectWindow c window update+ = do let req = MkRedirectWindow window update+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +redirectSubwindows ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CARD8 -> IO ()+redirectSubwindows c window update+ = do let req = MkRedirectSubwindows window update+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +unredirectWindow ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CARD8 -> IO ()+unredirectWindow c window update+ = do let req = MkUnredirectWindow window update+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +unredirectSubwindows ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CARD8 -> IO ()+unredirectSubwindows c window update+ = do let req = MkUnredirectSubwindows window update+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createRegionFromBorderClip ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> WINDOW -> IO ()+createRegionFromBorderClip c region window+ = do let req = MkCreateRegionFromBorderClip region window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +nameWindowPixmap ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> PIXMAP -> IO ()+nameWindowPixmap c window pixmap+ = do let req = MkNameWindowPixmap window pixmap+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getOverlayWindow ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetOverlayWindowReply)+getOverlayWindow c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetOverlayWindow window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +releaseOverlayWindow ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+releaseOverlayWindow c window+ = do let req = MkReleaseOverlayWindow window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/Composite/Types.hs view
@@ -0,0 +1,236 @@+module Graphics.XHB.Gen.Composite.Types+ (deserializeError, deserializeEvent, Redirect(..),+ QueryVersion(..), QueryVersionReply(..), RedirectWindow(..),+ RedirectSubwindows(..), UnredirectWindow(..),+ UnredirectSubwindows(..), CreateRegionFromBorderClip(..),+ NameWindowPixmap(..), GetOverlayWindow(..),+ GetOverlayWindowReply(..), ReleaseOverlayWindow(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.XFixes.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.XFixes.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data Redirect = RedirectAutomatic+ | RedirectManual+ +instance SimpleEnum Redirect where+ toValue RedirectAutomatic{} = 0+ toValue RedirectManual{} = 1+ fromValue 0 = RedirectAutomatic+ fromValue 1 = RedirectManual+ +data QueryVersion = MkQueryVersion{client_major_version_QueryVersion+ :: CARD32,+ client_minor_version_QueryVersion :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_QueryVersion x) ++ size (client_minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_QueryVersion x)+ serialize (client_minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD32,+ minor_version_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ skip 16+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data RedirectWindow = MkRedirectWindow{window_RedirectWindow ::+ WINDOW,+ update_RedirectWindow :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest RedirectWindow where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (window_RedirectWindow x) ++ size (update_RedirectWindow x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_RedirectWindow x)+ serialize (update_RedirectWindow x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data RedirectSubwindows = MkRedirectSubwindows{window_RedirectSubwindows+ :: WINDOW,+ update_RedirectSubwindows :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest RedirectSubwindows where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (window_RedirectSubwindows x) ++ size (update_RedirectSubwindows x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_RedirectSubwindows x)+ serialize (update_RedirectSubwindows x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data UnredirectWindow = MkUnredirectWindow{window_UnredirectWindow+ :: WINDOW,+ update_UnredirectWindow :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest UnredirectWindow where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (window_UnredirectWindow x) ++ size (update_UnredirectWindow x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_UnredirectWindow x)+ serialize (update_UnredirectWindow x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data UnredirectSubwindows = MkUnredirectSubwindows{window_UnredirectSubwindows+ :: WINDOW,+ update_UnredirectSubwindows :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest UnredirectSubwindows where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (window_UnredirectSubwindows x) ++ size (update_UnredirectSubwindows x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_UnredirectSubwindows x)+ serialize (update_UnredirectSubwindows x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data CreateRegionFromBorderClip = MkCreateRegionFromBorderClip{region_CreateRegionFromBorderClip+ :: REGION,+ window_CreateRegionFromBorderClip ::+ WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateRegionFromBorderClip where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (region_CreateRegionFromBorderClip x) ++ size (window_CreateRegionFromBorderClip x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_CreateRegionFromBorderClip x)+ serialize (window_CreateRegionFromBorderClip x)+ putSkip (requiredPadding size__)+ +data NameWindowPixmap = MkNameWindowPixmap{window_NameWindowPixmap+ :: WINDOW,+ pixmap_NameWindowPixmap :: PIXMAP}+ deriving (Show, Typeable)+ +instance ExtensionRequest NameWindowPixmap where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (window_NameWindowPixmap x) ++ size (pixmap_NameWindowPixmap x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_NameWindowPixmap x)+ serialize (pixmap_NameWindowPixmap x)+ putSkip (requiredPadding size__)+ +data GetOverlayWindow = MkGetOverlayWindow{window_GetOverlayWindow+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetOverlayWindow where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (window_GetOverlayWindow x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetOverlayWindow x)+ putSkip (requiredPadding size__)+ +data GetOverlayWindowReply = MkGetOverlayWindowReply{overlay_win_GetOverlayWindowReply+ :: WINDOW}+ deriving (Show, Typeable)+ +instance Deserialize GetOverlayWindowReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ overlay_win <- deserialize+ skip 20+ let _ = isCard32 length+ return (MkGetOverlayWindowReply overlay_win)+ +data ReleaseOverlayWindow = MkReleaseOverlayWindow{window_ReleaseOverlayWindow+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest ReleaseOverlayWindow where+ extensionId _ = "Composite"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__ = 4 + size (window_ReleaseOverlayWindow x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_ReleaseOverlayWindow x)+ putSkip (requiredPadding size__)
+ patched/Graphics/XHB/Gen/DPMS.hs view
@@ -0,0 +1,73 @@+module Graphics.XHB.Gen.DPMS+ (extension, getVersion, capable, getTimeouts, setTimeouts,+ forceLevel, info, module Graphics.XHB.Gen.DPMS.Types)+ where+import Graphics.XHB.Gen.DPMS.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(..))+ +extension :: ExtensionId+extension = "DPMS"+ +getVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD16 -> CARD16 -> IO (Receipt GetVersionReply)+getVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkGetVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +capable ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt CapableReply)+capable c+ = do receipt <- newEmptyReceiptIO+ let req = MkCapable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTimeouts ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetTimeoutsReply)+getTimeouts c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetTimeouts+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setTimeouts ::+ Graphics.XHB.Connection.Types.Connection -> SetTimeouts -> IO ()+setTimeouts c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +forceLevel ::+ Graphics.XHB.Connection.Types.Connection -> CARD16 -> IO ()+forceLevel c power_level+ = do let req = MkForceLevel power_level+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +info ::+ Graphics.XHB.Connection.Types.Connection -> IO (Receipt InfoReply)+info c+ = do receipt <- newEmptyReceiptIO+ let req = MkInfo+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/DPMS/Types.hs view
@@ -0,0 +1,178 @@+module Graphics.XHB.Gen.DPMS.Types+ (deserializeError, deserializeEvent, GetVersion(..),+ GetVersionReply(..), Capable(..), CapableReply(..),+ GetTimeouts(..), GetTimeoutsReply(..), SetTimeouts(..),+ ForceLevel(..), Info(..), InfoReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data GetVersion = MkGetVersion{client_major_version_GetVersion ::+ CARD16,+ client_minor_version_GetVersion :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetVersion where+ extensionId _ = "DPMS"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_GetVersion x) ++ size (client_minor_version_GetVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_GetVersion x)+ serialize (client_minor_version_GetVersion x)+ putSkip (requiredPadding size__)+ +data GetVersionReply = MkGetVersionReply{server_major_version_GetVersionReply+ :: CARD16,+ server_minor_version_GetVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ server_major_version <- deserialize+ server_minor_version <- deserialize+ let _ = isCard32 length+ return+ (MkGetVersionReply server_major_version server_minor_version)+ +data Capable = MkCapable{}+ deriving (Show, Typeable)+ +instance ExtensionRequest Capable where+ extensionId _ = "DPMS"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data CapableReply = MkCapableReply{capable_CapableReply :: BOOL}+ deriving (Show, Typeable)+ +instance Deserialize CapableReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ capable <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkCapableReply capable)+ +data GetTimeouts = MkGetTimeouts{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTimeouts where+ extensionId _ = "DPMS"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetTimeoutsReply = MkGetTimeoutsReply{standby_timeout_GetTimeoutsReply+ :: CARD16,+ suspend_timeout_GetTimeoutsReply :: CARD16,+ off_timeout_GetTimeoutsReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetTimeoutsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ standby_timeout <- deserialize+ suspend_timeout <- deserialize+ off_timeout <- deserialize+ skip 18+ let _ = isCard32 length+ return+ (MkGetTimeoutsReply standby_timeout suspend_timeout off_timeout)+ +data SetTimeouts = MkSetTimeouts{standby_timeout_SetTimeouts ::+ CARD16,+ suspend_timeout_SetTimeouts :: CARD16,+ off_timeout_SetTimeouts :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetTimeouts where+ extensionId _ = "DPMS"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (standby_timeout_SetTimeouts x) ++ size (suspend_timeout_SetTimeouts x)+ + size (off_timeout_SetTimeouts x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (standby_timeout_SetTimeouts x)+ serialize (suspend_timeout_SetTimeouts x)+ serialize (off_timeout_SetTimeouts x)+ putSkip (requiredPadding size__)+ +data ForceLevel = MkForceLevel{power_level_ForceLevel :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest ForceLevel where+ extensionId _ = "DPMS"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__ = 4 + size (power_level_ForceLevel x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (power_level_ForceLevel x)+ putSkip (requiredPadding size__)+ +data Info = MkInfo{}+ deriving (Show, Typeable)+ +instance ExtensionRequest Info where+ extensionId _ = "DPMS"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data InfoReply = MkInfoReply{power_level_InfoReply :: CARD16,+ state_InfoReply :: BOOL}+ deriving (Show, Typeable)+ +instance Deserialize InfoReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ power_level <- deserialize+ state <- deserialize+ skip 21+ let _ = isCard32 length+ return (MkInfoReply power_level state)
+ patched/Graphics/XHB/Gen/Damage.hs view
@@ -0,0 +1,65 @@+module Graphics.XHB.Gen.Damage+ (extension, queryVersion, create, destroy, subtract, add,+ module Graphics.XHB.Gen.Damage.Types)+ where+import Prelude hiding (subtract)+import Graphics.XHB.Gen.Damage.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.XFixes.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.XFixes.Types+ +extension :: ExtensionId+extension = "DAMAGE"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt QueryVersionReply)+queryVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +create ::+ Graphics.XHB.Connection.Types.Connection -> Create -> IO ()+create c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +destroy ::+ Graphics.XHB.Connection.Types.Connection -> DAMAGE -> IO ()+destroy c damage+ = do let req = MkDestroy damage+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +subtract ::+ Graphics.XHB.Connection.Types.Connection -> Subtract -> IO ()+subtract c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +add ::+ Graphics.XHB.Connection.Types.Connection ->+ DRAWABLE -> REGION -> IO ()+add c drawable region+ = do let req = MkAdd drawable region+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/Damage/Types.hs view
@@ -0,0 +1,169 @@+module Graphics.XHB.Gen.Damage.Types+ (deserializeError, deserializeEvent, DAMAGE, ReportLevel(..),+ QueryVersion(..), QueryVersionReply(..), Create(..), Destroy(..),+ Subtract(..), Add(..), Notify(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.XFixes.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.XFixes.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get Notify))+deserializeEvent _ = Nothing+ +newtype DAMAGE = MkDAMAGE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data ReportLevel = ReportLevelRawRectangles+ | ReportLevelDeltaRectangles+ | ReportLevelBoundingBox+ | ReportLevelNonEmpty+ +instance SimpleEnum ReportLevel where+ toValue ReportLevelRawRectangles{} = 0+ toValue ReportLevelDeltaRectangles{} = 1+ toValue ReportLevelBoundingBox{} = 2+ toValue ReportLevelNonEmpty{} = 3+ fromValue 0 = ReportLevelRawRectangles+ fromValue 1 = ReportLevelDeltaRectangles+ fromValue 2 = ReportLevelBoundingBox+ fromValue 3 = ReportLevelNonEmpty+ +data QueryVersion = MkQueryVersion{client_major_version_QueryVersion+ :: CARD32,+ client_minor_version_QueryVersion :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "DAMAGE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_QueryVersion x) ++ size (client_minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_QueryVersion x)+ serialize (client_minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD32,+ minor_version_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ skip 16+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data Create = MkCreate{damage_Create :: DAMAGE,+ drawable_Create :: DRAWABLE, level_Create :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest Create where+ extensionId _ = "DAMAGE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (damage_Create x) + size (drawable_Create x) ++ size (level_Create x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (damage_Create x)+ serialize (drawable_Create x)+ serialize (level_Create x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data Destroy = MkDestroy{damage_Destroy :: DAMAGE}+ deriving (Show, Typeable)+ +instance ExtensionRequest Destroy where+ extensionId _ = "DAMAGE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (damage_Destroy x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (damage_Destroy x)+ putSkip (requiredPadding size__)+ +data Subtract = MkSubtract{damage_Subtract :: DAMAGE,+ repair_Subtract :: REGION, parts_Subtract :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest Subtract where+ extensionId _ = "DAMAGE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (damage_Subtract x) + size (repair_Subtract x) ++ size (parts_Subtract x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (damage_Subtract x)+ serialize (repair_Subtract x)+ serialize (parts_Subtract x)+ putSkip (requiredPadding size__)+ +data Add = MkAdd{drawable_Add :: DRAWABLE, region_Add :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest Add where+ extensionId _ = "DAMAGE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (drawable_Add x) + size (region_Add x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_Add x)+ serialize (region_Add x)+ putSkip (requiredPadding size__)+ +data Notify = MkNotify{level_Notify :: CARD8,+ drawable_Notify :: DRAWABLE, damage_Notify :: DAMAGE,+ timestamp_Notify :: TIMESTAMP, area_Notify :: RECTANGLE,+ geometry_Notify :: RECTANGLE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event Notify+ +instance Deserialize Notify where+ deserialize+ = do skip 1+ level <- deserialize+ skip 2+ drawable <- deserialize+ damage <- deserialize+ timestamp <- deserialize+ area <- deserialize+ geometry <- deserialize+ return (MkNotify level drawable damage timestamp area geometry)
+ patched/Graphics/XHB/Gen/Extension.hs view
@@ -0,0 +1,122 @@+module Graphics.XHB.Gen.Extension where+import Graphics.XHB.Shared+import Data.Binary.Get+import Data.Word+import qualified Graphics.XHB.Gen.BigRequests.Types+import qualified Graphics.XHB.Gen.Composite.Types+import qualified Graphics.XHB.Gen.Damage.Types+import qualified Graphics.XHB.Gen.DPMS.Types+import qualified Graphics.XHB.Gen.Glx.Types+import qualified Graphics.XHB.Gen.RandR.Types+import qualified Graphics.XHB.Gen.Record.Types+import qualified Graphics.XHB.Gen.Render.Types+import qualified Graphics.XHB.Gen.Res.Types+import qualified Graphics.XHB.Gen.ScreenSaver.Types+import qualified Graphics.XHB.Gen.Shape.Types+import qualified Graphics.XHB.Gen.Shm.Types+import qualified Graphics.XHB.Gen.Sync.Types+import qualified Graphics.XHB.Gen.XCMisc.Types+import qualified Graphics.XHB.Gen.Xevie.Types+import qualified Graphics.XHB.Gen.XF86Dri.Types+import qualified Graphics.XHB.Gen.XFixes.Types+import qualified Graphics.XHB.Gen.Xinerama.Types+import qualified Graphics.XHB.Gen.Input.Types+import qualified Graphics.XHB.Gen.XPrint.Types+import qualified Graphics.XHB.Gen.SELinux.Types+import qualified Graphics.XHB.Gen.Test.Types+import qualified Graphics.XHB.Gen.Xv.Types+import qualified Graphics.XHB.Gen.XvMC.Types+ +errorDispatch :: ExtensionId -> Word8 -> Maybe (Get SomeError)+errorDispatch "BIG-REQUESTS"+ = Graphics.XHB.Gen.BigRequests.Types.deserializeError+errorDispatch "Composite"+ = Graphics.XHB.Gen.Composite.Types.deserializeError+errorDispatch "DAMAGE"+ = Graphics.XHB.Gen.Damage.Types.deserializeError+errorDispatch "DPMS" = Graphics.XHB.Gen.DPMS.Types.deserializeError+errorDispatch "GLX" = Graphics.XHB.Gen.Glx.Types.deserializeError+errorDispatch "RANDR"+ = Graphics.XHB.Gen.RandR.Types.deserializeError+errorDispatch "RECORD"+ = Graphics.XHB.Gen.Record.Types.deserializeError+errorDispatch "RENDER"+ = Graphics.XHB.Gen.Render.Types.deserializeError+errorDispatch "X-Resource"+ = Graphics.XHB.Gen.Res.Types.deserializeError+errorDispatch "MIT-SCREEN-SAVER"+ = Graphics.XHB.Gen.ScreenSaver.Types.deserializeError+errorDispatch "SHAPE"+ = Graphics.XHB.Gen.Shape.Types.deserializeError+errorDispatch "MIT-SHM"+ = Graphics.XHB.Gen.Shm.Types.deserializeError+errorDispatch "SYNC" = Graphics.XHB.Gen.Sync.Types.deserializeError+errorDispatch "XC-MISC"+ = Graphics.XHB.Gen.XCMisc.Types.deserializeError+errorDispatch "XEVIE"+ = Graphics.XHB.Gen.Xevie.Types.deserializeError+errorDispatch "XFree86-DRI"+ = Graphics.XHB.Gen.XF86Dri.Types.deserializeError+errorDispatch "XFIXES"+ = Graphics.XHB.Gen.XFixes.Types.deserializeError+errorDispatch "XINERAMA"+ = Graphics.XHB.Gen.Xinerama.Types.deserializeError+errorDispatch "XInputExtension"+ = Graphics.XHB.Gen.Input.Types.deserializeError+errorDispatch "XpExtension"+ = Graphics.XHB.Gen.XPrint.Types.deserializeError+errorDispatch "SELinux"+ = Graphics.XHB.Gen.SELinux.Types.deserializeError+errorDispatch "XTEST"+ = Graphics.XHB.Gen.Test.Types.deserializeError+errorDispatch "XVideo" = Graphics.XHB.Gen.Xv.Types.deserializeError+errorDispatch "XVideo-MotionCompensation"+ = Graphics.XHB.Gen.XvMC.Types.deserializeError+errorDispatch _ = const (Nothing)+ +eventDispatch :: ExtensionId -> Word8 -> Maybe (Get SomeEvent)+eventDispatch "BIG-REQUESTS"+ = Graphics.XHB.Gen.BigRequests.Types.deserializeEvent+eventDispatch "Composite"+ = Graphics.XHB.Gen.Composite.Types.deserializeEvent+eventDispatch "DAMAGE"+ = Graphics.XHB.Gen.Damage.Types.deserializeEvent+eventDispatch "DPMS" = Graphics.XHB.Gen.DPMS.Types.deserializeEvent+eventDispatch "GLX" = Graphics.XHB.Gen.Glx.Types.deserializeEvent+eventDispatch "RANDR"+ = Graphics.XHB.Gen.RandR.Types.deserializeEvent+eventDispatch "RECORD"+ = Graphics.XHB.Gen.Record.Types.deserializeEvent+eventDispatch "RENDER"+ = Graphics.XHB.Gen.Render.Types.deserializeEvent+eventDispatch "X-Resource"+ = Graphics.XHB.Gen.Res.Types.deserializeEvent+eventDispatch "MIT-SCREEN-SAVER"+ = Graphics.XHB.Gen.ScreenSaver.Types.deserializeEvent+eventDispatch "SHAPE"+ = Graphics.XHB.Gen.Shape.Types.deserializeEvent+eventDispatch "MIT-SHM"+ = Graphics.XHB.Gen.Shm.Types.deserializeEvent+eventDispatch "SYNC" = Graphics.XHB.Gen.Sync.Types.deserializeEvent+eventDispatch "XC-MISC"+ = Graphics.XHB.Gen.XCMisc.Types.deserializeEvent+eventDispatch "XEVIE"+ = Graphics.XHB.Gen.Xevie.Types.deserializeEvent+eventDispatch "XFree86-DRI"+ = Graphics.XHB.Gen.XF86Dri.Types.deserializeEvent+eventDispatch "XFIXES"+ = Graphics.XHB.Gen.XFixes.Types.deserializeEvent+eventDispatch "XINERAMA"+ = Graphics.XHB.Gen.Xinerama.Types.deserializeEvent+eventDispatch "XInputExtension"+ = Graphics.XHB.Gen.Input.Types.deserializeEvent+eventDispatch "XpExtension"+ = Graphics.XHB.Gen.XPrint.Types.deserializeEvent+eventDispatch "SELinux"+ = Graphics.XHB.Gen.SELinux.Types.deserializeEvent+eventDispatch "XTEST"+ = Graphics.XHB.Gen.Test.Types.deserializeEvent+eventDispatch "XVideo" = Graphics.XHB.Gen.Xv.Types.deserializeEvent+eventDispatch "XVideo-MotionCompensation"+ = Graphics.XHB.Gen.XvMC.Types.deserializeEvent+eventDispatch _ = const (Nothing)
+ patched/Graphics/XHB/Gen/Glx.hs view
@@ -0,0 +1,980 @@+module Graphics.XHB.Gen.Glx+ (extension, render, renderLarge, createContext, destroyContext,+ makeCurrent, isDirect, queryVersion, waitGL, waitX, copyContext,+ swapBuffers, useXFont, createGLXPixmap, getVisualConfigs,+ destroyGLXPixmap, vendorPrivate, vendorPrivateWithReply,+ queryExtensionsString, queryServerString, clientInfo, getFBConfigs,+ createPixmap, destroyPixmap, createNewContext, queryContext,+ makeContextCurrent, createPbuffer, destroyPbuffer,+ getDrawableAttributes, changeDrawableAttributes, createWindow,+ deleteWindow, newList, endList, deleteLists, genLists,+ feedbackBuffer, selectBuffer, renderMode, finish, pixelStoref,+ pixelStorei, readPixels, getBooleanv, getClipPlane, getDoublev,+ getError, getFloatv, getIntegerv, getLightfv, getLightiv, getMapdv,+ getMapfv, getMapiv, getMaterialfv, getMaterialiv, getPixelMapfv,+ getPixelMapuiv, getPixelMapusv, getPolygonStipple, getString,+ getTexEnvfv, getTexEnviv, getTexGendv, getTexGenfv, getTexGeniv,+ getTexImage, getTexParameterfv, getTexParameteriv,+ getTexLevelParameterfv, getTexLevelParameteriv, isList, flush,+ areTexturesResident, deleteTextures, genTextures, isTexture,+ getColorTable, getColorTableParameterfv, getColorTableParameteriv,+ getConvolutionFilter, getConvolutionParameterfv,+ getConvolutionParameteriv, getSeparableFilter, getHistogram,+ getHistogramParameterfv, getHistogramParameteriv, getMinmax,+ getMinmaxParameterfv, getMinmaxParameteriv,+ getCompressedTexImageARB, deleteQueriesARB, genQueriesARB,+ isQueryARB, getQueryivARB, getQueryObjectivARB,+ getQueryObjectuivARB, module Graphics.XHB.Gen.Glx.Types)+ where+import Graphics.XHB.Gen.Glx.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 (PIXMAP(..), WINDOW(..), DRAWABLE(..), GC(..),+ CreatePixmap(..), CreateWindow(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "GLX"+ +render ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> [BYTE] -> IO ()+render c context_tag data_+ = do let req = MkRender context_tag data_+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +renderLarge ::+ Graphics.XHB.Connection.Types.Connection -> RenderLarge -> IO ()+renderLarge c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createContext ::+ Graphics.XHB.Connection.Types.Connection -> CreateContext -> IO ()+createContext c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +destroyContext ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Glx.Types.CONTEXT -> IO ()+destroyContext c context+ = do let req = MkDestroyContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +makeCurrent ::+ Graphics.XHB.Connection.Types.Connection ->+ MakeCurrent -> IO (Receipt MakeCurrentReply)+makeCurrent c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +isDirect ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Glx.Types.CONTEXT -> IO (Receipt IsDirectReply)+isDirect c context+ = do receipt <- newEmptyReceiptIO+ let req = MkIsDirect context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt QueryVersionReply)+queryVersion c major_version minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion major_version minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +waitGL ::+ Graphics.XHB.Connection.Types.Connection -> CONTEXT_TAG -> IO ()+waitGL c context_tag+ = do let req = MkWaitGL context_tag+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +waitX ::+ Graphics.XHB.Connection.Types.Connection -> CONTEXT_TAG -> IO ()+waitX c context_tag+ = do let req = MkWaitX context_tag+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +copyContext ::+ Graphics.XHB.Connection.Types.Connection -> CopyContext -> IO ()+copyContext c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +swapBuffers ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> Graphics.XHB.Gen.Glx.Types.DRAWABLE -> IO ()+swapBuffers c context_tag drawable+ = do let req = MkSwapBuffers context_tag drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +useXFont ::+ Graphics.XHB.Connection.Types.Connection -> UseXFont -> IO ()+useXFont c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createGLXPixmap ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateGLXPixmap -> IO ()+createGLXPixmap c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getVisualConfigs ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetVisualConfigsReply)+getVisualConfigs c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkGetVisualConfigs screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +destroyGLXPixmap ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Glx.Types.PIXMAP -> IO ()+destroyGLXPixmap c glx_pixmap+ = do let req = MkDestroyGLXPixmap glx_pixmap+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +vendorPrivate ::+ Graphics.XHB.Connection.Types.Connection -> VendorPrivate -> IO ()+vendorPrivate c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +vendorPrivateWithReply ::+ Graphics.XHB.Connection.Types.Connection ->+ VendorPrivateWithReply -> IO (Receipt VendorPrivateWithReplyReply)+vendorPrivateWithReply c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryExtensionsString ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt QueryExtensionsStringReply)+queryExtensionsString c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryExtensionsString screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryServerString ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt QueryServerStringReply)+queryServerString c screen name+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryServerString screen name+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +clientInfo ::+ Graphics.XHB.Connection.Types.Connection -> ClientInfo -> IO ()+clientInfo c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getFBConfigs ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetFBConfigsReply)+getFBConfigs c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkGetFBConfigs screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createPixmap ::+ Graphics.XHB.Connection.Types.Connection -> CreatePixmap -> IO ()+createPixmap c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +destroyPixmap ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Glx.Types.PIXMAP -> IO ()+destroyPixmap c glx_pixmap+ = do let req = MkDestroyPixmap glx_pixmap+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createNewContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateNewContext -> IO ()+createNewContext c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +queryContext ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Glx.Types.CONTEXT ->+ IO (Receipt QueryContextReply)+queryContext c context+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +makeContextCurrent ::+ Graphics.XHB.Connection.Types.Connection ->+ MakeContextCurrent -> IO (Receipt MakeContextCurrentReply)+makeContextCurrent c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createPbuffer ::+ Graphics.XHB.Connection.Types.Connection -> CreatePbuffer -> IO ()+createPbuffer c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +destroyPbuffer ::+ Graphics.XHB.Connection.Types.Connection -> PBUFFER -> IO ()+destroyPbuffer c pbuffer+ = do let req = MkDestroyPbuffer pbuffer+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getDrawableAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Glx.Types.DRAWABLE ->+ IO (Receipt GetDrawableAttributesReply)+getDrawableAttributes c drawable+ = do receipt <- newEmptyReceiptIO+ let req = MkGetDrawableAttributes drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +changeDrawableAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ ChangeDrawableAttributes -> IO ()+changeDrawableAttributes c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createWindow ::+ Graphics.XHB.Connection.Types.Connection -> CreateWindow -> IO ()+createWindow c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +deleteWindow ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Glx.Types.WINDOW -> IO ()+deleteWindow c glxwindow+ = do let req = MkDeleteWindow glxwindow+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +newList ::+ Graphics.XHB.Connection.Types.Connection -> NewList -> IO ()+newList c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +endList ::+ Graphics.XHB.Connection.Types.Connection -> CONTEXT_TAG -> IO ()+endList c context_tag+ = do let req = MkEndList context_tag+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +deleteLists ::+ Graphics.XHB.Connection.Types.Connection -> DeleteLists -> IO ()+deleteLists c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +genLists ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> INT32 -> IO (Receipt GenListsReply)+genLists c context_tag range+ = do receipt <- newEmptyReceiptIO+ let req = MkGenLists context_tag range+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +feedbackBuffer ::+ Graphics.XHB.Connection.Types.Connection -> FeedbackBuffer -> IO ()+feedbackBuffer c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +selectBuffer ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> INT32 -> IO ()+selectBuffer c context_tag size+ = do let req = MkSelectBuffer context_tag size+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +renderMode ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt RenderModeReply)+renderMode c context_tag mode+ = do receipt <- newEmptyReceiptIO+ let req = MkRenderMode context_tag mode+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +finish ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> IO (Receipt FinishReply)+finish c context_tag+ = do receipt <- newEmptyReceiptIO+ let req = MkFinish context_tag+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +pixelStoref ::+ Graphics.XHB.Connection.Types.Connection -> PixelStoref -> IO ()+pixelStoref c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +pixelStorei ::+ Graphics.XHB.Connection.Types.Connection -> PixelStorei -> IO ()+pixelStorei c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +readPixels ::+ Graphics.XHB.Connection.Types.Connection ->+ ReadPixels -> IO (Receipt ReadPixelsReply)+readPixels c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getBooleanv ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> INT32 -> IO (Receipt GetBooleanvReply)+getBooleanv c context_tag pname+ = do receipt <- newEmptyReceiptIO+ let req = MkGetBooleanv context_tag pname+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getClipPlane ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> INT32 -> IO (Receipt GetClipPlaneReply)+getClipPlane c context_tag plane+ = do receipt <- newEmptyReceiptIO+ let req = MkGetClipPlane context_tag plane+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getDoublev ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt GetDoublevReply)+getDoublev c context_tag pname+ = do receipt <- newEmptyReceiptIO+ let req = MkGetDoublev context_tag pname+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getError ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> IO (Receipt GetErrorReply)+getError c context_tag+ = do receipt <- newEmptyReceiptIO+ let req = MkGetError context_tag+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getFloatv ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt GetFloatvReply)+getFloatv c context_tag pname+ = do receipt <- newEmptyReceiptIO+ let req = MkGetFloatv context_tag pname+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getIntegerv ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt GetIntegervReply)+getIntegerv c context_tag pname+ = do receipt <- newEmptyReceiptIO+ let req = MkGetIntegerv context_tag pname+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getLightfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetLightfv -> IO (Receipt GetLightfvReply)+getLightfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getLightiv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetLightiv -> IO (Receipt GetLightivReply)+getLightiv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMapdv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMapdv -> IO (Receipt GetMapdvReply)+getMapdv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMapfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMapfv -> IO (Receipt GetMapfvReply)+getMapfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMapiv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMapiv -> IO (Receipt GetMapivReply)+getMapiv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMaterialfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMaterialfv -> IO (Receipt GetMaterialfvReply)+getMaterialfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMaterialiv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMaterialiv -> IO (Receipt GetMaterialivReply)+getMaterialiv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getPixelMapfv ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt GetPixelMapfvReply)+getPixelMapfv c context_tag map+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPixelMapfv context_tag map+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getPixelMapuiv ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt GetPixelMapuivReply)+getPixelMapuiv c context_tag map+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPixelMapuiv context_tag map+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getPixelMapusv ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt GetPixelMapusvReply)+getPixelMapusv c context_tag map+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPixelMapusv context_tag map+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getPolygonStipple ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> BOOL -> IO (Receipt GetPolygonStippleReply)+getPolygonStipple c context_tag lsb_first+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPolygonStipple context_tag lsb_first+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getString ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt GetStringReply)+getString c context_tag name+ = do receipt <- newEmptyReceiptIO+ let req = MkGetString context_tag name+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexEnvfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexEnvfv -> IO (Receipt GetTexEnvfvReply)+getTexEnvfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexEnviv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexEnviv -> IO (Receipt GetTexEnvivReply)+getTexEnviv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexGendv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexGendv -> IO (Receipt GetTexGendvReply)+getTexGendv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexGenfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexGenfv -> IO (Receipt GetTexGenfvReply)+getTexGenfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexGeniv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexGeniv -> IO (Receipt GetTexGenivReply)+getTexGeniv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexImage ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexImage -> IO (Receipt GetTexImageReply)+getTexImage c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexParameterfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexParameterfv -> IO (Receipt GetTexParameterfvReply)+getTexParameterfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexParameteriv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexParameteriv -> IO (Receipt GetTexParameterivReply)+getTexParameteriv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexLevelParameterfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexLevelParameterfv -> IO (Receipt GetTexLevelParameterfvReply)+getTexLevelParameterfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getTexLevelParameteriv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetTexLevelParameteriv -> IO (Receipt GetTexLevelParameterivReply)+getTexLevelParameteriv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +isList ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt IsListReply)+isList c context_tag list+ = do receipt <- newEmptyReceiptIO+ let req = MkIsList context_tag list+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +flush ::+ Graphics.XHB.Connection.Types.Connection -> CONTEXT_TAG -> IO ()+flush c context_tag+ = do let req = MkFlush context_tag+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +areTexturesResident ::+ Graphics.XHB.Connection.Types.Connection ->+ AreTexturesResident -> IO (Receipt AreTexturesResidentReply)+areTexturesResident c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +deleteTextures ::+ Graphics.XHB.Connection.Types.Connection -> DeleteTextures -> IO ()+deleteTextures c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +genTextures ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> INT32 -> IO (Receipt GenTexturesReply)+genTextures c context_tag n+ = do receipt <- newEmptyReceiptIO+ let req = MkGenTextures context_tag n+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +isTexture ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt IsTextureReply)+isTexture c context_tag texture+ = do receipt <- newEmptyReceiptIO+ let req = MkIsTexture context_tag texture+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getColorTable ::+ Graphics.XHB.Connection.Types.Connection ->+ GetColorTable -> IO (Receipt GetColorTableReply)+getColorTable c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getColorTableParameterfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetColorTableParameterfv ->+ IO (Receipt GetColorTableParameterfvReply)+getColorTableParameterfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getColorTableParameteriv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetColorTableParameteriv ->+ IO (Receipt GetColorTableParameterivReply)+getColorTableParameteriv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getConvolutionFilter ::+ Graphics.XHB.Connection.Types.Connection ->+ GetConvolutionFilter -> IO (Receipt GetConvolutionFilterReply)+getConvolutionFilter c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getConvolutionParameterfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetConvolutionParameterfv ->+ IO (Receipt GetConvolutionParameterfvReply)+getConvolutionParameterfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getConvolutionParameteriv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetConvolutionParameteriv ->+ IO (Receipt GetConvolutionParameterivReply)+getConvolutionParameteriv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getSeparableFilter ::+ Graphics.XHB.Connection.Types.Connection ->+ GetSeparableFilter -> IO (Receipt GetSeparableFilterReply)+getSeparableFilter c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getHistogram ::+ Graphics.XHB.Connection.Types.Connection ->+ GetHistogram -> IO (Receipt GetHistogramReply)+getHistogram c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getHistogramParameterfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetHistogramParameterfv ->+ IO (Receipt GetHistogramParameterfvReply)+getHistogramParameterfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getHistogramParameteriv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetHistogramParameteriv ->+ IO (Receipt GetHistogramParameterivReply)+getHistogramParameteriv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMinmax ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMinmax -> IO (Receipt GetMinmaxReply)+getMinmax c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMinmaxParameterfv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMinmaxParameterfv -> IO (Receipt GetMinmaxParameterfvReply)+getMinmaxParameterfv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getMinmaxParameteriv ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMinmaxParameteriv -> IO (Receipt GetMinmaxParameterivReply)+getMinmaxParameteriv c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getCompressedTexImageARB ::+ Graphics.XHB.Connection.Types.Connection ->+ GetCompressedTexImageARB ->+ IO (Receipt GetCompressedTexImageARBReply)+getCompressedTexImageARB c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +deleteQueriesARB ::+ Graphics.XHB.Connection.Types.Connection ->+ DeleteQueriesARB -> IO ()+deleteQueriesARB c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +genQueriesARB ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> INT32 -> IO (Receipt GenQueriesARBReply)+genQueriesARB c context_tag n+ = do receipt <- newEmptyReceiptIO+ let req = MkGenQueriesARB context_tag n+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +isQueryARB ::+ Graphics.XHB.Connection.Types.Connection ->+ CONTEXT_TAG -> CARD32 -> IO (Receipt IsQueryARBReply)+isQueryARB c context_tag id+ = do receipt <- newEmptyReceiptIO+ let req = MkIsQueryARB context_tag id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getQueryivARB ::+ Graphics.XHB.Connection.Types.Connection ->+ GetQueryivARB -> IO (Receipt GetQueryivARBReply)+getQueryivARB c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getQueryObjectivARB ::+ Graphics.XHB.Connection.Types.Connection ->+ GetQueryObjectivARB -> IO (Receipt GetQueryObjectivARBReply)+getQueryObjectivARB c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getQueryObjectuivARB ::+ Graphics.XHB.Connection.Types.Connection ->+ GetQueryObjectuivARB -> IO (Receipt GetQueryObjectuivARBReply)+getQueryObjectuivARB c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/Glx/Types.hs view
@@ -0,0 +1,3666 @@+module Graphics.XHB.Gen.Glx.Types+ (deserializeError, deserializeEvent, PIXMAP, CONTEXT, PBUFFER,+ WINDOW, FBCONFIG, DRAWABLE, FLOAT32, FLOAT64, BOOL32, CONTEXT_TAG,+ Generic(..), BadContext(..), BadContextState(..), BadDrawable(..),+ BadPixmap(..), BadContextTag(..), BadCurrentWindow(..),+ BadRenderRequest(..), BadLargeRequest(..),+ UnsupportedPrivateRequest(..), BadFBConfig(..), BadPbuffer(..),+ BadCurrentDrawable(..), BadWindow(..), PbufferClobber(..),+ PBCET(..), PBCDT(..), Render(..), RenderLarge(..),+ CreateContext(..), DestroyContext(..), MakeCurrent(..),+ MakeCurrentReply(..), IsDirect(..), IsDirectReply(..),+ QueryVersion(..), QueryVersionReply(..), WaitGL(..), WaitX(..),+ CopyContext(..), GC(..), SwapBuffers(..), UseXFont(..),+ CreateGLXPixmap(..), GetVisualConfigs(..),+ GetVisualConfigsReply(..), DestroyGLXPixmap(..), VendorPrivate(..),+ VendorPrivateWithReply(..), VendorPrivateWithReplyReply(..),+ QueryExtensionsString(..), QueryExtensionsStringReply(..),+ QueryServerString(..), QueryServerStringReply(..), ClientInfo(..),+ GetFBConfigs(..), GetFBConfigsReply(..), CreatePixmap(..),+ DestroyPixmap(..), CreateNewContext(..), QueryContext(..),+ QueryContextReply(..), MakeContextCurrent(..),+ MakeContextCurrentReply(..), CreatePbuffer(..), DestroyPbuffer(..),+ GetDrawableAttributes(..), GetDrawableAttributesReply(..),+ ChangeDrawableAttributes(..), CreateWindow(..), DeleteWindow(..),+ NewList(..), EndList(..), DeleteLists(..), GenLists(..),+ GenListsReply(..), FeedbackBuffer(..), SelectBuffer(..),+ RenderMode(..), RenderModeReply(..), RM(..), Finish(..),+ FinishReply(..), PixelStoref(..), PixelStorei(..), ReadPixels(..),+ ReadPixelsReply(..), GetBooleanv(..), GetBooleanvReply(..),+ GetClipPlane(..), GetClipPlaneReply(..), GetDoublev(..),+ GetDoublevReply(..), GetError(..), GetErrorReply(..),+ GetFloatv(..), GetFloatvReply(..), GetIntegerv(..),+ GetIntegervReply(..), GetLightfv(..), GetLightfvReply(..),+ GetLightiv(..), GetLightivReply(..), GetMapdv(..),+ GetMapdvReply(..), GetMapfv(..), GetMapfvReply(..), GetMapiv(..),+ GetMapivReply(..), GetMaterialfv(..), GetMaterialfvReply(..),+ GetMaterialiv(..), GetMaterialivReply(..), GetPixelMapfv(..),+ GetPixelMapfvReply(..), GetPixelMapuiv(..),+ GetPixelMapuivReply(..), GetPixelMapusv(..),+ GetPixelMapusvReply(..), GetPolygonStipple(..),+ GetPolygonStippleReply(..), GetString(..), GetStringReply(..),+ GetTexEnvfv(..), GetTexEnvfvReply(..), GetTexEnviv(..),+ GetTexEnvivReply(..), GetTexGendv(..), GetTexGendvReply(..),+ GetTexGenfv(..), GetTexGenfvReply(..), GetTexGeniv(..),+ GetTexGenivReply(..), GetTexImage(..), GetTexImageReply(..),+ GetTexParameterfv(..), GetTexParameterfvReply(..),+ GetTexParameteriv(..), GetTexParameterivReply(..),+ GetTexLevelParameterfv(..), GetTexLevelParameterfvReply(..),+ GetTexLevelParameteriv(..), GetTexLevelParameterivReply(..),+ IsList(..), IsListReply(..), Flush(..), AreTexturesResident(..),+ AreTexturesResidentReply(..), DeleteTextures(..), GenTextures(..),+ GenTexturesReply(..), IsTexture(..), IsTextureReply(..),+ GetColorTable(..), GetColorTableReply(..),+ GetColorTableParameterfv(..), GetColorTableParameterfvReply(..),+ GetColorTableParameteriv(..), GetColorTableParameterivReply(..),+ GetConvolutionFilter(..), GetConvolutionFilterReply(..),+ GetConvolutionParameterfv(..), GetConvolutionParameterfvReply(..),+ GetConvolutionParameteriv(..), GetConvolutionParameterivReply(..),+ GetSeparableFilter(..), GetSeparableFilterReply(..),+ GetHistogram(..), GetHistogramReply(..),+ GetHistogramParameterfv(..), GetHistogramParameterfvReply(..),+ GetHistogramParameteriv(..), GetHistogramParameterivReply(..),+ GetMinmax(..), GetMinmaxReply(..), GetMinmaxParameterfv(..),+ GetMinmaxParameterfvReply(..), GetMinmaxParameteriv(..),+ GetMinmaxParameterivReply(..), GetCompressedTexImageARB(..),+ GetCompressedTexImageARBReply(..), DeleteQueriesARB(..),+ GenQueriesARB(..), GenQueriesARBReply(..), IsQueryARB(..),+ IsQueryARBReply(..), GetQueryivARB(..), GetQueryivARBReply(..),+ GetQueryObjectivARB(..), GetQueryObjectivARBReply(..),+ GetQueryObjectuivARB(..), GetQueryObjectuivARBReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (PIXMAP(..), WINDOW(..), DRAWABLE(..), GC(..),+ CreatePixmap(..), CreateWindow(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError 0+ = return (liftM toError (deserialize :: Get BadContext))+deserializeError 1+ = return (liftM toError (deserialize :: Get BadContextState))+deserializeError 2+ = return (liftM toError (deserialize :: Get BadDrawable))+deserializeError 3+ = return (liftM toError (deserialize :: Get BadPixmap))+deserializeError 4+ = return (liftM toError (deserialize :: Get BadContextTag))+deserializeError 5+ = return (liftM toError (deserialize :: Get BadCurrentWindow))+deserializeError 6+ = return (liftM toError (deserialize :: Get BadRenderRequest))+deserializeError 7+ = return (liftM toError (deserialize :: Get BadLargeRequest))+deserializeError 8+ = return+ (liftM toError (deserialize :: Get UnsupportedPrivateRequest))+deserializeError 9+ = return (liftM toError (deserialize :: Get BadFBConfig))+deserializeError 10+ = return (liftM toError (deserialize :: Get BadPbuffer))+deserializeError 11+ = return (liftM toError (deserialize :: Get BadCurrentDrawable))+deserializeError 12+ = return (liftM toError (deserialize :: Get BadWindow))+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get PbufferClobber))+deserializeEvent _ = Nothing+ +newtype PIXMAP = MkPIXMAP Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype CONTEXT = MkCONTEXT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype PBUFFER = MkPBUFFER Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype WINDOW = MkWINDOW Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype FBCONFIG = MkFBCONFIG Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype DRAWABLE = MkDRAWABLE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +type FLOAT32 = CFloat+ +type FLOAT64 = CDouble+ +type BOOL32 = CARD32+ +type CONTEXT_TAG = CARD32+ +data Generic = MkGeneric{bad_value_Generic :: CARD32,+ minor_opcode_Generic :: CARD16, major_opcode_Generic :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Generic+ +instance Deserialize Generic where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkGeneric bad_value minor_opcode major_opcode)+ +data BadContext = MkBadContext{bad_value_BadContext :: CARD32,+ minor_opcode_BadContext :: CARD16,+ major_opcode_BadContext :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadContext+ +instance Deserialize BadContext where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadContext bad_value minor_opcode major_opcode)+ +data BadContextState = MkBadContextState{bad_value_BadContextState+ :: CARD32,+ minor_opcode_BadContextState :: CARD16,+ major_opcode_BadContextState :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadContextState+ +instance Deserialize BadContextState where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadContextState bad_value minor_opcode major_opcode)+ +data BadDrawable = MkBadDrawable{bad_value_BadDrawable :: CARD32,+ minor_opcode_BadDrawable :: CARD16,+ major_opcode_BadDrawable :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadDrawable+ +instance Deserialize BadDrawable where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadDrawable bad_value minor_opcode major_opcode)+ +data BadPixmap = MkBadPixmap{bad_value_BadPixmap :: CARD32,+ minor_opcode_BadPixmap :: CARD16, major_opcode_BadPixmap :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadPixmap+ +instance Deserialize BadPixmap where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadPixmap bad_value minor_opcode major_opcode)+ +data BadContextTag = MkBadContextTag{bad_value_BadContextTag ::+ CARD32,+ minor_opcode_BadContextTag :: CARD16,+ major_opcode_BadContextTag :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadContextTag+ +instance Deserialize BadContextTag where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadContextTag bad_value minor_opcode major_opcode)+ +data BadCurrentWindow = MkBadCurrentWindow{bad_value_BadCurrentWindow+ :: CARD32,+ minor_opcode_BadCurrentWindow :: CARD16,+ major_opcode_BadCurrentWindow :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadCurrentWindow+ +instance Deserialize BadCurrentWindow where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadCurrentWindow bad_value minor_opcode major_opcode)+ +data BadRenderRequest = MkBadRenderRequest{bad_value_BadRenderRequest+ :: CARD32,+ minor_opcode_BadRenderRequest :: CARD16,+ major_opcode_BadRenderRequest :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadRenderRequest+ +instance Deserialize BadRenderRequest where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadRenderRequest bad_value minor_opcode major_opcode)+ +data BadLargeRequest = MkBadLargeRequest{bad_value_BadLargeRequest+ :: CARD32,+ minor_opcode_BadLargeRequest :: CARD16,+ major_opcode_BadLargeRequest :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadLargeRequest+ +instance Deserialize BadLargeRequest where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadLargeRequest bad_value minor_opcode major_opcode)+ +data UnsupportedPrivateRequest = MkUnsupportedPrivateRequest{bad_value_UnsupportedPrivateRequest+ :: CARD32,+ minor_opcode_UnsupportedPrivateRequest+ :: CARD16,+ major_opcode_UnsupportedPrivateRequest+ :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error UnsupportedPrivateRequest+ +instance Deserialize UnsupportedPrivateRequest where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return+ (MkUnsupportedPrivateRequest bad_value minor_opcode major_opcode)+ +data BadFBConfig = MkBadFBConfig{bad_value_BadFBConfig :: CARD32,+ minor_opcode_BadFBConfig :: CARD16,+ major_opcode_BadFBConfig :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadFBConfig+ +instance Deserialize BadFBConfig where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadFBConfig bad_value minor_opcode major_opcode)+ +data BadPbuffer = MkBadPbuffer{bad_value_BadPbuffer :: CARD32,+ minor_opcode_BadPbuffer :: CARD16,+ major_opcode_BadPbuffer :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadPbuffer+ +instance Deserialize BadPbuffer where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadPbuffer bad_value minor_opcode major_opcode)+ +data BadCurrentDrawable = MkBadCurrentDrawable{bad_value_BadCurrentDrawable+ :: CARD32,+ minor_opcode_BadCurrentDrawable :: CARD16,+ major_opcode_BadCurrentDrawable :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadCurrentDrawable+ +instance Deserialize BadCurrentDrawable where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadCurrentDrawable bad_value minor_opcode major_opcode)+ +data BadWindow = MkBadWindow{bad_value_BadWindow :: CARD32,+ minor_opcode_BadWindow :: CARD16, major_opcode_BadWindow :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadWindow+ +instance Deserialize BadWindow where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 21+ return (MkBadWindow bad_value minor_opcode major_opcode)+ +data PbufferClobber = MkPbufferClobber{event_type_PbufferClobber ::+ CARD16,+ draw_type_PbufferClobber :: CARD16,+ drawable_PbufferClobber ::+ Graphics.XHB.Gen.Glx.Types.DRAWABLE,+ b_mask_PbufferClobber :: CARD32,+ aux_buffer_PbufferClobber :: CARD16,+ x_PbufferClobber :: CARD16, y_PbufferClobber :: CARD16,+ width_PbufferClobber :: CARD16,+ height_PbufferClobber :: CARD16,+ count_PbufferClobber :: CARD16}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event PbufferClobber+ +instance Deserialize PbufferClobber where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event_type <- deserialize+ draw_type <- deserialize+ drawable <- deserialize+ b_mask <- deserialize+ aux_buffer <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ count <- deserialize+ skip 4+ return+ (MkPbufferClobber event_type draw_type drawable b_mask aux_buffer x+ y+ width+ height+ count)+ +data PBCET = PBCETDamaged+ | PBCETSaved+ +instance SimpleEnum PBCET where+ toValue PBCETDamaged{} = 32791+ toValue PBCETSaved{} = 32792+ fromValue 32791 = PBCETDamaged+ fromValue 32792 = PBCETSaved+ +data PBCDT = PBCDTWindow+ | PBCDTPbuffer+ +instance SimpleEnum PBCDT where+ toValue PBCDTWindow{} = 32793+ toValue PBCDTPbuffer{} = 32794+ fromValue 32793 = PBCDTWindow+ fromValue 32794 = PBCDTPbuffer+ +data Render = MkRender{context_tag_Render :: CONTEXT_TAG,+ data_Render :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest Render where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (context_tag_Render x) + sum (map size (data_Render x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_Render x)+ serializeList (data_Render x)+ putSkip (requiredPadding size__)+ +data RenderLarge = MkRenderLarge{context_tag_RenderLarge ::+ CONTEXT_TAG,+ request_num_RenderLarge :: CARD16,+ request_total_RenderLarge :: CARD16,+ data_len_RenderLarge :: CARD32, data_RenderLarge :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest RenderLarge where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (context_tag_RenderLarge x) ++ size (request_num_RenderLarge x)+ + size (request_total_RenderLarge x)+ + size (data_len_RenderLarge x)+ + sum (map size (data_RenderLarge x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_RenderLarge x)+ serialize (request_num_RenderLarge x)+ serialize (request_total_RenderLarge x)+ serialize (data_len_RenderLarge x)+ serializeList (data_RenderLarge x)+ putSkip (requiredPadding size__)+ +data CreateContext = MkCreateContext{context_CreateContext ::+ Graphics.XHB.Gen.Glx.Types.CONTEXT,+ visual_CreateContext :: VISUALID,+ screen_CreateContext :: CARD32,+ share_list_CreateContext :: Graphics.XHB.Gen.Glx.Types.CONTEXT,+ is_direct_CreateContext :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateContext where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (context_CreateContext x) ++ size (visual_CreateContext x)+ + size (screen_CreateContext x)+ + size (share_list_CreateContext x)+ + size (is_direct_CreateContext x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_CreateContext x)+ serialize (visual_CreateContext x)+ serialize (screen_CreateContext x)+ serialize (share_list_CreateContext x)+ serialize (is_direct_CreateContext x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data DestroyContext = MkDestroyContext{context_DestroyContext ::+ Graphics.XHB.Gen.Glx.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyContext where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (context_DestroyContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_DestroyContext x)+ putSkip (requiredPadding size__)+ +data MakeCurrent = MkMakeCurrent{drawable_MakeCurrent ::+ Graphics.XHB.Gen.Glx.Types.DRAWABLE,+ context_MakeCurrent :: Graphics.XHB.Gen.Glx.Types.CONTEXT,+ old_context_tag_MakeCurrent :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest MakeCurrent where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (drawable_MakeCurrent x) + size (context_MakeCurrent x)+ + size (old_context_tag_MakeCurrent x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_MakeCurrent x)+ serialize (context_MakeCurrent x)+ serialize (old_context_tag_MakeCurrent x)+ putSkip (requiredPadding size__)+ +data MakeCurrentReply = MkMakeCurrentReply{context_tag_MakeCurrentReply+ :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance Deserialize MakeCurrentReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_tag <- deserialize+ skip 20+ let _ = isCard32 length+ return (MkMakeCurrentReply context_tag)+ +data IsDirect = MkIsDirect{context_IsDirect ::+ Graphics.XHB.Gen.Glx.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest IsDirect where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__ = 4 + size (context_IsDirect x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_IsDirect x)+ putSkip (requiredPadding size__)+ +data IsDirectReply = MkIsDirectReply{is_direct_IsDirectReply ::+ BOOL}+ deriving (Show, Typeable)+ +instance Deserialize IsDirectReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ is_direct <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkIsDirectReply is_direct)+ +data QueryVersion = MkQueryVersion{major_version_QueryVersion ::+ CARD32,+ minor_version_QueryVersion :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__+ = 4 + size (major_version_QueryVersion x) ++ size (minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (major_version_QueryVersion x)+ serialize (minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD32,+ minor_version_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ skip 16+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data WaitGL = MkWaitGL{context_tag_WaitGL :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest WaitGL where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__ = 4 + size (context_tag_WaitGL x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_WaitGL x)+ putSkip (requiredPadding size__)+ +data WaitX = MkWaitX{context_tag_WaitX :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest WaitX where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__ = 4 + size (context_tag_WaitX x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_WaitX x)+ putSkip (requiredPadding size__)+ +data CopyContext = MkCopyContext{src_CopyContext ::+ Graphics.XHB.Gen.Glx.Types.CONTEXT,+ dest_CopyContext :: Graphics.XHB.Gen.Glx.Types.CONTEXT,+ mask_CopyContext :: CARD32,+ src_context_tag_CopyContext :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest CopyContext where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__+ = 4 + size (src_CopyContext x) + size (dest_CopyContext x) ++ size (mask_CopyContext x)+ + size (src_context_tag_CopyContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (src_CopyContext x)+ serialize (dest_CopyContext x)+ serialize (mask_CopyContext x)+ serialize (src_context_tag_CopyContext x)+ putSkip (requiredPadding size__)+ +data GC = GCGL_CURRENT_BIT+ | GCGL_POINT_BIT+ | GCGL_LINE_BIT+ | GCGL_POLYGON_BIT+ | GCGL_POLYGON_STIPPLE_BIT+ | GCGL_PIXEL_MODE_BIT+ | GCGL_LIGHTING_BIT+ | GCGL_FOG_BIT+ | GCGL_DEPTH_BUFFER_BIT+ | GCGL_ACCUM_BUFFER_BIT+ | GCGL_STENCIL_BUFFER_BIT+ | GCGL_VIEWPORT_BIT+ | GCGL_TRANSFORM_BIT+ | GCGL_ENABLE_BIT+ | GCGL_COLOR_BUFFER_BIT+ | GCGL_HINT_BIT+ | GCGL_EVAL_BIT+ | GCGL_LIST_BIT+ | GCGL_TEXTURE_BIT+ | GCGL_SCISSOR_BIT+ +instance BitEnum GC where+ toBit GCGL_CURRENT_BIT{} = 0+ toBit GCGL_POINT_BIT{} = 1+ toBit GCGL_LINE_BIT{} = 2+ toBit GCGL_POLYGON_BIT{} = 3+ toBit GCGL_POLYGON_STIPPLE_BIT{} = 4+ toBit GCGL_PIXEL_MODE_BIT{} = 5+ toBit GCGL_LIGHTING_BIT{} = 6+ toBit GCGL_FOG_BIT{} = 7+ toBit GCGL_DEPTH_BUFFER_BIT{} = 8+ toBit GCGL_ACCUM_BUFFER_BIT{} = 9+ toBit GCGL_STENCIL_BUFFER_BIT{} = 10+ toBit GCGL_VIEWPORT_BIT{} = 11+ toBit GCGL_TRANSFORM_BIT{} = 12+ toBit GCGL_ENABLE_BIT{} = 13+ toBit GCGL_COLOR_BUFFER_BIT{} = 14+ toBit GCGL_HINT_BIT{} = 15+ toBit GCGL_EVAL_BIT{} = 16+ toBit GCGL_LIST_BIT{} = 17+ toBit GCGL_TEXTURE_BIT{} = 18+ toBit GCGL_SCISSOR_BIT{} = 19+ fromBit 0 = GCGL_CURRENT_BIT+ fromBit 1 = GCGL_POINT_BIT+ fromBit 2 = GCGL_LINE_BIT+ fromBit 3 = GCGL_POLYGON_BIT+ fromBit 4 = GCGL_POLYGON_STIPPLE_BIT+ fromBit 5 = GCGL_PIXEL_MODE_BIT+ fromBit 6 = GCGL_LIGHTING_BIT+ fromBit 7 = GCGL_FOG_BIT+ fromBit 8 = GCGL_DEPTH_BUFFER_BIT+ fromBit 9 = GCGL_ACCUM_BUFFER_BIT+ fromBit 10 = GCGL_STENCIL_BUFFER_BIT+ fromBit 11 = GCGL_VIEWPORT_BIT+ fromBit 12 = GCGL_TRANSFORM_BIT+ fromBit 13 = GCGL_ENABLE_BIT+ fromBit 14 = GCGL_COLOR_BUFFER_BIT+ fromBit 15 = GCGL_HINT_BIT+ fromBit 16 = GCGL_EVAL_BIT+ fromBit 17 = GCGL_LIST_BIT+ fromBit 18 = GCGL_TEXTURE_BIT+ fromBit 19 = GCGL_SCISSOR_BIT+ +data SwapBuffers = MkSwapBuffers{context_tag_SwapBuffers ::+ CONTEXT_TAG,+ drawable_SwapBuffers :: Graphics.XHB.Gen.Glx.Types.DRAWABLE}+ deriving (Show, Typeable)+ +instance ExtensionRequest SwapBuffers where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__+ = 4 + size (context_tag_SwapBuffers x) ++ size (drawable_SwapBuffers x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_SwapBuffers x)+ serialize (drawable_SwapBuffers x)+ putSkip (requiredPadding size__)+ +data UseXFont = MkUseXFont{context_tag_UseXFont :: CONTEXT_TAG,+ font_UseXFont :: FONT, first_UseXFont :: CARD32,+ count_UseXFont :: CARD32, list_base_UseXFont :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest UseXFont where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (context_tag_UseXFont x) + size (font_UseXFont x) ++ size (first_UseXFont x)+ + size (count_UseXFont x)+ + size (list_base_UseXFont x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_UseXFont x)+ serialize (font_UseXFont x)+ serialize (first_UseXFont x)+ serialize (count_UseXFont x)+ serialize (list_base_UseXFont x)+ putSkip (requiredPadding size__)+ +data CreateGLXPixmap = MkCreateGLXPixmap{screen_CreateGLXPixmap ::+ CARD32,+ visual_CreateGLXPixmap :: VISUALID,+ pixmap_CreateGLXPixmap ::+ Graphics.XHB.Gen.Xproto.Types.PIXMAP,+ glx_pixmap_CreateGLXPixmap ::+ Graphics.XHB.Gen.Glx.Types.PIXMAP}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateGLXPixmap where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__+ = 4 + size (screen_CreateGLXPixmap x) ++ size (visual_CreateGLXPixmap x)+ + size (pixmap_CreateGLXPixmap x)+ + size (glx_pixmap_CreateGLXPixmap x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_CreateGLXPixmap x)+ serialize (visual_CreateGLXPixmap x)+ serialize (pixmap_CreateGLXPixmap x)+ serialize (glx_pixmap_CreateGLXPixmap x)+ putSkip (requiredPadding size__)+ +data GetVisualConfigs = MkGetVisualConfigs{screen_GetVisualConfigs+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetVisualConfigs where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 14+ let size__ = 4 + size (screen_GetVisualConfigs x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_GetVisualConfigs x)+ putSkip (requiredPadding size__)+ +data GetVisualConfigsReply = MkGetVisualConfigsReply{num_visuals_GetVisualConfigsReply+ :: CARD32,+ num_properties_GetVisualConfigsReply :: CARD32,+ property_list_GetVisualConfigsReply ::+ [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetVisualConfigsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_visuals <- deserialize+ num_properties <- deserialize+ skip 16+ property_list <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return+ (MkGetVisualConfigsReply num_visuals num_properties property_list)+ +data DestroyGLXPixmap = MkDestroyGLXPixmap{glx_pixmap_DestroyGLXPixmap+ :: Graphics.XHB.Gen.Glx.Types.PIXMAP}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyGLXPixmap where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 15+ let size__ = 4 + size (glx_pixmap_DestroyGLXPixmap x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (glx_pixmap_DestroyGLXPixmap x)+ putSkip (requiredPadding size__)+ +data VendorPrivate = MkVendorPrivate{vendor_code_VendorPrivate ::+ CARD32,+ context_tag_VendorPrivate :: CONTEXT_TAG,+ data_VendorPrivate :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest VendorPrivate where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 16+ let size__+ = 4 + size (vendor_code_VendorPrivate x) ++ size (context_tag_VendorPrivate x)+ + sum (map size (data_VendorPrivate x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (vendor_code_VendorPrivate x)+ serialize (context_tag_VendorPrivate x)+ serializeList (data_VendorPrivate x)+ putSkip (requiredPadding size__)+ +data VendorPrivateWithReply = MkVendorPrivateWithReply{vendor_code_VendorPrivateWithReply+ :: CARD32,+ context_tag_VendorPrivateWithReply ::+ CONTEXT_TAG,+ data_VendorPrivateWithReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest VendorPrivateWithReply where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__+ = 4 + size (vendor_code_VendorPrivateWithReply x) ++ size (context_tag_VendorPrivateWithReply x)+ + sum (map size (data_VendorPrivateWithReply x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (vendor_code_VendorPrivateWithReply x)+ serialize (context_tag_VendorPrivateWithReply x)+ serializeList (data_VendorPrivateWithReply x)+ putSkip (requiredPadding size__)+ +data VendorPrivateWithReplyReply = MkVendorPrivateWithReplyReply{retval_VendorPrivateWithReplyReply+ :: CARD32,+ data1_VendorPrivateWithReplyReply+ :: [BYTE],+ data2_VendorPrivateWithReplyReply+ :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize VendorPrivateWithReplyReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ retval <- deserialize+ data1 <- deserializeList (fromIntegral 24)+ data2 <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkVendorPrivateWithReplyReply retval data1 data2)+ +data QueryExtensionsString = MkQueryExtensionsString{screen_QueryExtensionsString+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryExtensionsString where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__ = 4 + size (screen_QueryExtensionsString x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_QueryExtensionsString x)+ putSkip (requiredPadding size__)+ +data QueryExtensionsStringReply = MkQueryExtensionsStringReply{n_QueryExtensionsStringReply+ :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryExtensionsStringReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ skip 16+ let _ = isCard32 length+ return (MkQueryExtensionsStringReply n)+ +data QueryServerString = MkQueryServerString{screen_QueryServerString+ :: CARD32,+ name_QueryServerString :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryServerString where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__+ = 4 + size (screen_QueryServerString x) ++ size (name_QueryServerString x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_QueryServerString x)+ serialize (name_QueryServerString x)+ putSkip (requiredPadding size__)+ +data QueryServerStringReply = MkQueryServerStringReply{str_len_QueryServerStringReply+ :: CARD32,+ string_QueryServerStringReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize QueryServerStringReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ str_len <- deserialize+ skip 16+ string <- deserializeList (fromIntegral str_len)+ let _ = isCard32 length+ return (MkQueryServerStringReply str_len string)+ +data ClientInfo = MkClientInfo{major_version_ClientInfo :: CARD32,+ minor_version_ClientInfo :: CARD32, str_len_ClientInfo :: CARD32,+ string_ClientInfo :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest ClientInfo where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 20+ let size__+ = 4 + size (major_version_ClientInfo x) ++ size (minor_version_ClientInfo x)+ + size (str_len_ClientInfo x)+ + sum (map size (string_ClientInfo x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (major_version_ClientInfo x)+ serialize (minor_version_ClientInfo x)+ serialize (str_len_ClientInfo x)+ serializeList (string_ClientInfo x)+ putSkip (requiredPadding size__)+ +data GetFBConfigs = MkGetFBConfigs{screen_GetFBConfigs :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetFBConfigs where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 21+ let size__ = 4 + size (screen_GetFBConfigs x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_GetFBConfigs x)+ putSkip (requiredPadding size__)+ +data GetFBConfigsReply = MkGetFBConfigsReply{num_FB_configs_GetFBConfigsReply+ :: CARD32,+ num_properties_GetFBConfigsReply :: CARD32,+ property_list_GetFBConfigsReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetFBConfigsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_FB_configs <- deserialize+ num_properties <- deserialize+ skip 16+ property_list <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return+ (MkGetFBConfigsReply num_FB_configs num_properties property_list)+ +data CreatePixmap = MkCreatePixmap{screen_CreatePixmap :: CARD32,+ fbconfig_CreatePixmap :: CARD32,+ pixmap_CreatePixmap :: Graphics.XHB.Gen.Xproto.Types.PIXMAP,+ glx_pixmap_CreatePixmap :: Graphics.XHB.Gen.Glx.Types.PIXMAP,+ num_attribs_CreatePixmap :: CARD32,+ attribs_CreatePixmap :: [CARD32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreatePixmap where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 22+ let size__+ = 4 + size (screen_CreatePixmap x) + size (fbconfig_CreatePixmap x)+ + size (pixmap_CreatePixmap x)+ + size (glx_pixmap_CreatePixmap x)+ + size (num_attribs_CreatePixmap x)+ + sum (map size (attribs_CreatePixmap x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_CreatePixmap x)+ serialize (fbconfig_CreatePixmap x)+ serialize (pixmap_CreatePixmap x)+ serialize (glx_pixmap_CreatePixmap x)+ serialize (num_attribs_CreatePixmap x)+ serializeList (attribs_CreatePixmap x)+ putSkip (requiredPadding size__)+ +data DestroyPixmap = MkDestroyPixmap{glx_pixmap_DestroyPixmap ::+ Graphics.XHB.Gen.Glx.Types.PIXMAP}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyPixmap where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 23+ let size__ = 4 + size (glx_pixmap_DestroyPixmap x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (glx_pixmap_DestroyPixmap x)+ putSkip (requiredPadding size__)+ +data CreateNewContext = MkCreateNewContext{context_CreateNewContext+ :: Graphics.XHB.Gen.Glx.Types.CONTEXT,+ fbconfig_CreateNewContext :: CARD32,+ screen_CreateNewContext :: CARD32,+ render_type_CreateNewContext :: CARD32,+ share_list_CreateNewContext :: CARD32,+ is_direct_CreateNewContext :: BOOL,+ reserved1_CreateNewContext :: CARD8,+ reserved2_CreateNewContext :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateNewContext where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 24+ let size__+ = 4 + size (context_CreateNewContext x) ++ size (fbconfig_CreateNewContext x)+ + size (screen_CreateNewContext x)+ + size (render_type_CreateNewContext x)+ + size (share_list_CreateNewContext x)+ + size (is_direct_CreateNewContext x)+ + size (reserved1_CreateNewContext x)+ + size (reserved2_CreateNewContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_CreateNewContext x)+ serialize (fbconfig_CreateNewContext x)+ serialize (screen_CreateNewContext x)+ serialize (render_type_CreateNewContext x)+ serialize (share_list_CreateNewContext x)+ serialize (is_direct_CreateNewContext x)+ serialize (reserved1_CreateNewContext x)+ serialize (reserved2_CreateNewContext x)+ putSkip (requiredPadding size__)+ +data QueryContext = MkQueryContext{context_QueryContext ::+ Graphics.XHB.Gen.Glx.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryContext where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 25+ let size__ = 4 + size (context_QueryContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_QueryContext x)+ putSkip (requiredPadding size__)+ +data QueryContextReply = MkQueryContextReply{num_attribs_QueryContextReply+ :: CARD32,+ attribs_QueryContextReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize QueryContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_attribs <- deserialize+ skip 20+ attribs <- deserializeList+ (fromIntegral (fromIntegral (num_attribs * 2)))+ let _ = isCard32 length+ return (MkQueryContextReply num_attribs attribs)+ +data MakeContextCurrent = MkMakeContextCurrent{old_context_tag_MakeContextCurrent+ :: CONTEXT_TAG,+ drawable_MakeContextCurrent ::+ Graphics.XHB.Gen.Glx.Types.DRAWABLE,+ read_drawable_MakeContextCurrent ::+ Graphics.XHB.Gen.Glx.Types.DRAWABLE,+ context_MakeContextCurrent ::+ Graphics.XHB.Gen.Glx.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest MakeContextCurrent where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 26+ let size__+ = 4 + size (old_context_tag_MakeContextCurrent x) ++ size (drawable_MakeContextCurrent x)+ + size (read_drawable_MakeContextCurrent x)+ + size (context_MakeContextCurrent x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (old_context_tag_MakeContextCurrent x)+ serialize (drawable_MakeContextCurrent x)+ serialize (read_drawable_MakeContextCurrent x)+ serialize (context_MakeContextCurrent x)+ putSkip (requiredPadding size__)+ +data MakeContextCurrentReply = MkMakeContextCurrentReply{context_tag_MakeContextCurrentReply+ :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance Deserialize MakeContextCurrentReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_tag <- deserialize+ skip 20+ let _ = isCard32 length+ return (MkMakeContextCurrentReply context_tag)+ +data CreatePbuffer = MkCreatePbuffer{screen_CreatePbuffer ::+ CARD32,+ fbconfig_CreatePbuffer :: FBCONFIG,+ pbuffer_CreatePbuffer :: PBUFFER,+ num_attribs_CreatePbuffer :: CARD32,+ attribs_CreatePbuffer :: [CARD32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreatePbuffer where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 27+ let size__+ = 4 + size (screen_CreatePbuffer x) ++ size (fbconfig_CreatePbuffer x)+ + size (pbuffer_CreatePbuffer x)+ + size (num_attribs_CreatePbuffer x)+ + sum (map size (attribs_CreatePbuffer x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_CreatePbuffer x)+ serialize (fbconfig_CreatePbuffer x)+ serialize (pbuffer_CreatePbuffer x)+ serialize (num_attribs_CreatePbuffer x)+ serializeList (attribs_CreatePbuffer x)+ putSkip (requiredPadding size__)+ +data DestroyPbuffer = MkDestroyPbuffer{pbuffer_DestroyPbuffer ::+ PBUFFER}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyPbuffer where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 28+ let size__ = 4 + size (pbuffer_DestroyPbuffer x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (pbuffer_DestroyPbuffer x)+ putSkip (requiredPadding size__)+ +data GetDrawableAttributes = MkGetDrawableAttributes{drawable_GetDrawableAttributes+ :: Graphics.XHB.Gen.Glx.Types.DRAWABLE}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDrawableAttributes where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 29+ let size__ = 4 + size (drawable_GetDrawableAttributes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_GetDrawableAttributes x)+ putSkip (requiredPadding size__)+ +data GetDrawableAttributesReply = MkGetDrawableAttributesReply{num_attribs_GetDrawableAttributesReply+ :: CARD32,+ attribs_GetDrawableAttributesReply ::+ [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetDrawableAttributesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_attribs <- deserialize+ skip 20+ attribs <- deserializeList+ (fromIntegral (fromIntegral (num_attribs * 2)))+ let _ = isCard32 length+ return (MkGetDrawableAttributesReply num_attribs attribs)+ +data ChangeDrawableAttributes = MkChangeDrawableAttributes{drawable_ChangeDrawableAttributes+ :: Graphics.XHB.Gen.Glx.Types.DRAWABLE,+ num_attribs_ChangeDrawableAttributes ::+ CARD32,+ attribs_ChangeDrawableAttributes ::+ [CARD32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeDrawableAttributes where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 30+ let size__+ = 4 + size (drawable_ChangeDrawableAttributes x) ++ size (num_attribs_ChangeDrawableAttributes x)+ + sum (map size (attribs_ChangeDrawableAttributes x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_ChangeDrawableAttributes x)+ serialize (num_attribs_ChangeDrawableAttributes x)+ serializeList (attribs_ChangeDrawableAttributes x)+ putSkip (requiredPadding size__)+ +data CreateWindow = MkCreateWindow{screen_CreateWindow :: CARD32,+ fbconfig_CreateWindow :: FBCONFIG,+ window_CreateWindow :: Graphics.XHB.Gen.Xproto.Types.WINDOW,+ glx_window_CreateWindow :: Graphics.XHB.Gen.Glx.Types.WINDOW,+ num_attribs_CreateWindow :: CARD32,+ attribs_CreateWindow :: [CARD32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateWindow where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 31+ let size__+ = 4 + size (screen_CreateWindow x) + size (fbconfig_CreateWindow x)+ + size (window_CreateWindow x)+ + size (glx_window_CreateWindow x)+ + size (num_attribs_CreateWindow x)+ + sum (map size (attribs_CreateWindow x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_CreateWindow x)+ serialize (fbconfig_CreateWindow x)+ serialize (window_CreateWindow x)+ serialize (glx_window_CreateWindow x)+ serialize (num_attribs_CreateWindow x)+ serializeList (attribs_CreateWindow x)+ putSkip (requiredPadding size__)+ +data DeleteWindow = MkDeleteWindow{glxwindow_DeleteWindow ::+ Graphics.XHB.Gen.Glx.Types.WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest DeleteWindow where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 32+ let size__ = 4 + size (glxwindow_DeleteWindow x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (glxwindow_DeleteWindow x)+ putSkip (requiredPadding size__)+ +data NewList = MkNewList{context_tag_NewList :: CONTEXT_TAG,+ list_NewList :: CARD32, mode_NewList :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest NewList where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 101+ let size__+ = 4 + size (context_tag_NewList x) + size (list_NewList x) ++ size (mode_NewList x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_NewList x)+ serialize (list_NewList x)+ serialize (mode_NewList x)+ putSkip (requiredPadding size__)+ +data EndList = MkEndList{context_tag_EndList :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest EndList where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 102+ let size__ = 4 + size (context_tag_EndList x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_EndList x)+ putSkip (requiredPadding size__)+ +data DeleteLists = MkDeleteLists{context_tag_DeleteLists ::+ CONTEXT_TAG,+ list_DeleteLists :: CARD32, range_DeleteLists :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest DeleteLists where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 103+ let size__+ = 4 + size (context_tag_DeleteLists x) + size (list_DeleteLists x)+ + size (range_DeleteLists x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_DeleteLists x)+ serialize (list_DeleteLists x)+ serialize (range_DeleteLists x)+ putSkip (requiredPadding size__)+ +data GenLists = MkGenLists{context_tag_GenLists :: CONTEXT_TAG,+ range_GenLists :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GenLists where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 104+ let size__+ = 4 + size (context_tag_GenLists x) + size (range_GenLists x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GenLists x)+ serialize (range_GenLists x)+ putSkip (requiredPadding size__)+ +data GenListsReply = MkGenListsReply{ret_val_GenListsReply ::+ CARD32}+ deriving (Show, Typeable)+ +instance Deserialize GenListsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ ret_val <- deserialize+ let _ = isCard32 length+ return (MkGenListsReply ret_val)+ +data FeedbackBuffer = MkFeedbackBuffer{context_tag_FeedbackBuffer+ :: CONTEXT_TAG,+ size_FeedbackBuffer :: INT32, type_FeedbackBuffer :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest FeedbackBuffer where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 105+ let size__+ = 4 + size (context_tag_FeedbackBuffer x) ++ size (size_FeedbackBuffer x)+ + size (type_FeedbackBuffer x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_FeedbackBuffer x)+ serialize (size_FeedbackBuffer x)+ serialize (type_FeedbackBuffer x)+ putSkip (requiredPadding size__)+ +data SelectBuffer = MkSelectBuffer{context_tag_SelectBuffer ::+ CONTEXT_TAG,+ size_SelectBuffer :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectBuffer where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 106+ let size__+ = 4 + size (context_tag_SelectBuffer x) ++ size (size_SelectBuffer x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_SelectBuffer x)+ serialize (size_SelectBuffer x)+ putSkip (requiredPadding size__)+ +data RenderMode = MkRenderMode{context_tag_RenderMode ::+ CONTEXT_TAG,+ mode_RenderMode :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest RenderMode where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 107+ let size__+ = 4 + size (context_tag_RenderMode x) + size (mode_RenderMode x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_RenderMode x)+ serialize (mode_RenderMode x)+ putSkip (requiredPadding size__)+ +data RenderModeReply = MkRenderModeReply{ret_val_RenderModeReply ::+ CARD32,+ n_RenderModeReply :: CARD32,+ new_mode_RenderModeReply :: CARD32,+ data_RenderModeReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize RenderModeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ ret_val <- deserialize+ n <- deserialize+ new_mode <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkRenderModeReply ret_val n new_mode data_)+ +data RM = RMGL_RENDER+ | RMGL_FEEDBACK+ | RMGL_SELECT+ +instance SimpleEnum RM where+ toValue RMGL_RENDER{} = 7168+ toValue RMGL_FEEDBACK{} = 7169+ toValue RMGL_SELECT{} = 7170+ fromValue 7168 = RMGL_RENDER+ fromValue 7169 = RMGL_FEEDBACK+ fromValue 7170 = RMGL_SELECT+ +data Finish = MkFinish{context_tag_Finish :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest Finish where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 108+ let size__ = 4 + size (context_tag_Finish x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_Finish x)+ putSkip (requiredPadding size__)+ +data FinishReply = MkFinishReply{}+ deriving (Show, Typeable)+ +instance Deserialize FinishReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkFinishReply)+ +data PixelStoref = MkPixelStoref{context_tag_PixelStoref ::+ CONTEXT_TAG,+ pname_PixelStoref :: CARD32, datum_PixelStoref :: FLOAT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest PixelStoref where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 109+ let size__+ = 4 + size (context_tag_PixelStoref x) + size (pname_PixelStoref x)+ + size (datum_PixelStoref x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_PixelStoref x)+ serialize (pname_PixelStoref x)+ serialize (datum_PixelStoref x)+ putSkip (requiredPadding size__)+ +data PixelStorei = MkPixelStorei{context_tag_PixelStorei ::+ CONTEXT_TAG,+ pname_PixelStorei :: CARD32, datum_PixelStorei :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest PixelStorei where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 110+ let size__+ = 4 + size (context_tag_PixelStorei x) + size (pname_PixelStorei x)+ + size (datum_PixelStorei x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_PixelStorei x)+ serialize (pname_PixelStorei x)+ serialize (datum_PixelStorei x)+ putSkip (requiredPadding size__)+ +data ReadPixels = MkReadPixels{context_tag_ReadPixels ::+ CONTEXT_TAG,+ x_ReadPixels :: INT32, y_ReadPixels :: INT32,+ width_ReadPixels :: INT32, height_ReadPixels :: INT32,+ format_ReadPixels :: CARD32, type_ReadPixels :: CARD32,+ swap_bytes_ReadPixels :: BOOL, lsb_first_ReadPixels :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest ReadPixels where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 111+ let size__+ = 4 + size (context_tag_ReadPixels x) + size (x_ReadPixels x) ++ size (y_ReadPixels x)+ + size (width_ReadPixels x)+ + size (height_ReadPixels x)+ + size (format_ReadPixels x)+ + size (type_ReadPixels x)+ + size (swap_bytes_ReadPixels x)+ + size (lsb_first_ReadPixels x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_ReadPixels x)+ serialize (x_ReadPixels x)+ serialize (y_ReadPixels x)+ serialize (width_ReadPixels x)+ serialize (height_ReadPixels x)+ serialize (format_ReadPixels x)+ serialize (type_ReadPixels x)+ serialize (swap_bytes_ReadPixels x)+ serialize (lsb_first_ReadPixels x)+ putSkip (requiredPadding size__)+ +data ReadPixelsReply = MkReadPixelsReply{data_ReadPixelsReply ::+ [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize ReadPixelsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkReadPixelsReply data_)+ +data GetBooleanv = MkGetBooleanv{context_tag_GetBooleanv ::+ CONTEXT_TAG,+ pname_GetBooleanv :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetBooleanv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 112+ let size__+ = 4 + size (context_tag_GetBooleanv x) + size (pname_GetBooleanv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetBooleanv x)+ serialize (pname_GetBooleanv x)+ putSkip (requiredPadding size__)+ +data GetBooleanvReply = MkGetBooleanvReply{n_GetBooleanvReply ::+ CARD32,+ datum_GetBooleanvReply :: BOOL,+ data_GetBooleanvReply :: [BOOL]}+ deriving (Show, Typeable)+ +instance Deserialize GetBooleanvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 15+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetBooleanvReply n datum data_)+ +data GetClipPlane = MkGetClipPlane{context_tag_GetClipPlane ::+ CONTEXT_TAG,+ plane_GetClipPlane :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetClipPlane where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 113+ let size__+ = 4 + size (context_tag_GetClipPlane x) ++ size (plane_GetClipPlane x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetClipPlane x)+ serialize (plane_GetClipPlane x)+ putSkip (requiredPadding size__)+ +data GetClipPlaneReply = MkGetClipPlaneReply{data_GetClipPlaneReply+ :: [FLOAT64]}+ deriving (Show, Typeable)+ +instance Deserialize GetClipPlaneReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ data_ <- deserializeList+ (fromIntegral (fromIntegral (length `div` 2)))+ let _ = isCard32 length+ return (MkGetClipPlaneReply data_)+ +data GetDoublev = MkGetDoublev{context_tag_GetDoublev ::+ CONTEXT_TAG,+ pname_GetDoublev :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDoublev where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 114+ let size__+ = 4 + size (context_tag_GetDoublev x) + size (pname_GetDoublev x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetDoublev x)+ serialize (pname_GetDoublev x)+ putSkip (requiredPadding size__)+ +data GetDoublevReply = MkGetDoublevReply{n_GetDoublevReply ::+ CARD32,+ datum_GetDoublevReply :: FLOAT64,+ data_GetDoublevReply :: [FLOAT64]}+ deriving (Show, Typeable)+ +instance Deserialize GetDoublevReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 8+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetDoublevReply n datum data_)+ +data GetError = MkGetError{context_tag_GetError :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetError where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 115+ let size__ = 4 + size (context_tag_GetError x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetError x)+ putSkip (requiredPadding size__)+ +data GetErrorReply = MkGetErrorReply{error_GetErrorReply :: INT32}+ deriving (Show, Typeable)+ +instance Deserialize GetErrorReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ error <- deserialize+ let _ = isCard32 length+ return (MkGetErrorReply error)+ +data GetFloatv = MkGetFloatv{context_tag_GetFloatv :: CONTEXT_TAG,+ pname_GetFloatv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetFloatv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 116+ let size__+ = 4 + size (context_tag_GetFloatv x) + size (pname_GetFloatv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetFloatv x)+ serialize (pname_GetFloatv x)+ putSkip (requiredPadding size__)+ +data GetFloatvReply = MkGetFloatvReply{n_GetFloatvReply :: CARD32,+ datum_GetFloatvReply :: FLOAT32,+ data_GetFloatvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetFloatvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetFloatvReply n datum data_)+ +data GetIntegerv = MkGetIntegerv{context_tag_GetIntegerv ::+ CONTEXT_TAG,+ pname_GetIntegerv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetIntegerv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 117+ let size__+ = 4 + size (context_tag_GetIntegerv x) + size (pname_GetIntegerv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetIntegerv x)+ serialize (pname_GetIntegerv x)+ putSkip (requiredPadding size__)+ +data GetIntegervReply = MkGetIntegervReply{n_GetIntegervReply ::+ CARD32,+ datum_GetIntegervReply :: INT32,+ data_GetIntegervReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetIntegervReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetIntegervReply n datum data_)+ +data GetLightfv = MkGetLightfv{context_tag_GetLightfv ::+ CONTEXT_TAG,+ light_GetLightfv :: CARD32, pname_GetLightfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetLightfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 118+ let size__+ = 4 + size (context_tag_GetLightfv x) + size (light_GetLightfv x) ++ size (pname_GetLightfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetLightfv x)+ serialize (light_GetLightfv x)+ serialize (pname_GetLightfv x)+ putSkip (requiredPadding size__)+ +data GetLightfvReply = MkGetLightfvReply{n_GetLightfvReply ::+ CARD32,+ datum_GetLightfvReply :: FLOAT32,+ data_GetLightfvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetLightfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetLightfvReply n datum data_)+ +data GetLightiv = MkGetLightiv{context_tag_GetLightiv ::+ CONTEXT_TAG,+ light_GetLightiv :: CARD32, pname_GetLightiv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetLightiv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 119+ let size__+ = 4 + size (context_tag_GetLightiv x) + size (light_GetLightiv x) ++ size (pname_GetLightiv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetLightiv x)+ serialize (light_GetLightiv x)+ serialize (pname_GetLightiv x)+ putSkip (requiredPadding size__)+ +data GetLightivReply = MkGetLightivReply{n_GetLightivReply ::+ CARD32,+ datum_GetLightivReply :: INT32,+ data_GetLightivReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetLightivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetLightivReply n datum data_)+ +data GetMapdv = MkGetMapdv{context_tag_GetMapdv :: CONTEXT_TAG,+ target_GetMapdv :: CARD32, query_GetMapdv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMapdv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 120+ let size__+ = 4 + size (context_tag_GetMapdv x) + size (target_GetMapdv x) ++ size (query_GetMapdv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMapdv x)+ serialize (target_GetMapdv x)+ serialize (query_GetMapdv x)+ putSkip (requiredPadding size__)+ +data GetMapdvReply = MkGetMapdvReply{n_GetMapdvReply :: CARD32,+ datum_GetMapdvReply :: FLOAT64,+ data_GetMapdvReply :: [FLOAT64]}+ deriving (Show, Typeable)+ +instance Deserialize GetMapdvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 8+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetMapdvReply n datum data_)+ +data GetMapfv = MkGetMapfv{context_tag_GetMapfv :: CONTEXT_TAG,+ target_GetMapfv :: CARD32, query_GetMapfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMapfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 121+ let size__+ = 4 + size (context_tag_GetMapfv x) + size (target_GetMapfv x) ++ size (query_GetMapfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMapfv x)+ serialize (target_GetMapfv x)+ serialize (query_GetMapfv x)+ putSkip (requiredPadding size__)+ +data GetMapfvReply = MkGetMapfvReply{n_GetMapfvReply :: CARD32,+ datum_GetMapfvReply :: FLOAT32,+ data_GetMapfvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetMapfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetMapfvReply n datum data_)+ +data GetMapiv = MkGetMapiv{context_tag_GetMapiv :: CONTEXT_TAG,+ target_GetMapiv :: CARD32, query_GetMapiv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMapiv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 122+ let size__+ = 4 + size (context_tag_GetMapiv x) + size (target_GetMapiv x) ++ size (query_GetMapiv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMapiv x)+ serialize (target_GetMapiv x)+ serialize (query_GetMapiv x)+ putSkip (requiredPadding size__)+ +data GetMapivReply = MkGetMapivReply{n_GetMapivReply :: CARD32,+ datum_GetMapivReply :: INT32, data_GetMapivReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetMapivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetMapivReply n datum data_)+ +data GetMaterialfv = MkGetMaterialfv{context_tag_GetMaterialfv ::+ CONTEXT_TAG,+ face_GetMaterialfv :: CARD32, pname_GetMaterialfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMaterialfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 123+ let size__+ = 4 + size (context_tag_GetMaterialfv x) ++ size (face_GetMaterialfv x)+ + size (pname_GetMaterialfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMaterialfv x)+ serialize (face_GetMaterialfv x)+ serialize (pname_GetMaterialfv x)+ putSkip (requiredPadding size__)+ +data GetMaterialfvReply = MkGetMaterialfvReply{n_GetMaterialfvReply+ :: CARD32,+ datum_GetMaterialfvReply :: FLOAT32,+ data_GetMaterialfvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetMaterialfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetMaterialfvReply n datum data_)+ +data GetMaterialiv = MkGetMaterialiv{context_tag_GetMaterialiv ::+ CONTEXT_TAG,+ face_GetMaterialiv :: CARD32, pname_GetMaterialiv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMaterialiv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 124+ let size__+ = 4 + size (context_tag_GetMaterialiv x) ++ size (face_GetMaterialiv x)+ + size (pname_GetMaterialiv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMaterialiv x)+ serialize (face_GetMaterialiv x)+ serialize (pname_GetMaterialiv x)+ putSkip (requiredPadding size__)+ +data GetMaterialivReply = MkGetMaterialivReply{n_GetMaterialivReply+ :: CARD32,+ datum_GetMaterialivReply :: INT32,+ data_GetMaterialivReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetMaterialivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetMaterialivReply n datum data_)+ +data GetPixelMapfv = MkGetPixelMapfv{context_tag_GetPixelMapfv ::+ CONTEXT_TAG,+ map_GetPixelMapfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPixelMapfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 125+ let size__+ = 4 + size (context_tag_GetPixelMapfv x) ++ size (map_GetPixelMapfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetPixelMapfv x)+ serialize (map_GetPixelMapfv x)+ putSkip (requiredPadding size__)+ +data GetPixelMapfvReply = MkGetPixelMapfvReply{n_GetPixelMapfvReply+ :: CARD32,+ datum_GetPixelMapfvReply :: FLOAT32,+ data_GetPixelMapfvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetPixelMapfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetPixelMapfvReply n datum data_)+ +data GetPixelMapuiv = MkGetPixelMapuiv{context_tag_GetPixelMapuiv+ :: CONTEXT_TAG,+ map_GetPixelMapuiv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPixelMapuiv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 126+ let size__+ = 4 + size (context_tag_GetPixelMapuiv x) ++ size (map_GetPixelMapuiv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetPixelMapuiv x)+ serialize (map_GetPixelMapuiv x)+ putSkip (requiredPadding size__)+ +data GetPixelMapuivReply = MkGetPixelMapuivReply{n_GetPixelMapuivReply+ :: CARD32,+ datum_GetPixelMapuivReply :: CARD32,+ data_GetPixelMapuivReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetPixelMapuivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetPixelMapuivReply n datum data_)+ +data GetPixelMapusv = MkGetPixelMapusv{context_tag_GetPixelMapusv+ :: CONTEXT_TAG,+ map_GetPixelMapusv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPixelMapusv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 127+ let size__+ = 4 + size (context_tag_GetPixelMapusv x) ++ size (map_GetPixelMapusv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetPixelMapusv x)+ serialize (map_GetPixelMapusv x)+ putSkip (requiredPadding size__)+ +data GetPixelMapusvReply = MkGetPixelMapusvReply{n_GetPixelMapusvReply+ :: CARD32,+ datum_GetPixelMapusvReply :: CARD16,+ data_GetPixelMapusvReply :: [CARD16]}+ deriving (Show, Typeable)+ +instance Deserialize GetPixelMapusvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 16+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetPixelMapusvReply n datum data_)+ +data GetPolygonStipple = MkGetPolygonStipple{context_tag_GetPolygonStipple+ :: CONTEXT_TAG,+ lsb_first_GetPolygonStipple :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPolygonStipple where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 128+ let size__+ = 4 + size (context_tag_GetPolygonStipple x) ++ size (lsb_first_GetPolygonStipple x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetPolygonStipple x)+ serialize (lsb_first_GetPolygonStipple x)+ putSkip (requiredPadding size__)+ +data GetPolygonStippleReply = MkGetPolygonStippleReply{data_GetPolygonStippleReply+ :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetPolygonStippleReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetPolygonStippleReply data_)+ +data GetString = MkGetString{context_tag_GetString :: CONTEXT_TAG,+ name_GetString :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetString where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 129+ let size__+ = 4 + size (context_tag_GetString x) + size (name_GetString x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetString x)+ serialize (name_GetString x)+ putSkip (requiredPadding size__)+ +data GetStringReply = MkGetStringReply{n_GetStringReply :: CARD32,+ string_GetStringReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetStringReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ skip 16+ string <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetStringReply n string)+ +data GetTexEnvfv = MkGetTexEnvfv{context_tag_GetTexEnvfv ::+ CONTEXT_TAG,+ target_GetTexEnvfv :: CARD32, pname_GetTexEnvfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexEnvfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 130+ let size__+ = 4 + size (context_tag_GetTexEnvfv x) ++ size (target_GetTexEnvfv x)+ + size (pname_GetTexEnvfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexEnvfv x)+ serialize (target_GetTexEnvfv x)+ serialize (pname_GetTexEnvfv x)+ putSkip (requiredPadding size__)+ +data GetTexEnvfvReply = MkGetTexEnvfvReply{n_GetTexEnvfvReply ::+ CARD32,+ datum_GetTexEnvfvReply :: FLOAT32,+ data_GetTexEnvfvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexEnvfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexEnvfvReply n datum data_)+ +data GetTexEnviv = MkGetTexEnviv{context_tag_GetTexEnviv ::+ CONTEXT_TAG,+ target_GetTexEnviv :: CARD32, pname_GetTexEnviv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexEnviv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 131+ let size__+ = 4 + size (context_tag_GetTexEnviv x) ++ size (target_GetTexEnviv x)+ + size (pname_GetTexEnviv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexEnviv x)+ serialize (target_GetTexEnviv x)+ serialize (pname_GetTexEnviv x)+ putSkip (requiredPadding size__)+ +data GetTexEnvivReply = MkGetTexEnvivReply{n_GetTexEnvivReply ::+ CARD32,+ datum_GetTexEnvivReply :: INT32,+ data_GetTexEnvivReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexEnvivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexEnvivReply n datum data_)+ +data GetTexGendv = MkGetTexGendv{context_tag_GetTexGendv ::+ CONTEXT_TAG,+ coord_GetTexGendv :: CARD32, pname_GetTexGendv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexGendv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 132+ let size__+ = 4 + size (context_tag_GetTexGendv x) + size (coord_GetTexGendv x)+ + size (pname_GetTexGendv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexGendv x)+ serialize (coord_GetTexGendv x)+ serialize (pname_GetTexGendv x)+ putSkip (requiredPadding size__)+ +data GetTexGendvReply = MkGetTexGendvReply{n_GetTexGendvReply ::+ CARD32,+ datum_GetTexGendvReply :: FLOAT64,+ data_GetTexGendvReply :: [FLOAT64]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexGendvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 8+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexGendvReply n datum data_)+ +data GetTexGenfv = MkGetTexGenfv{context_tag_GetTexGenfv ::+ CONTEXT_TAG,+ coord_GetTexGenfv :: CARD32, pname_GetTexGenfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexGenfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 133+ let size__+ = 4 + size (context_tag_GetTexGenfv x) + size (coord_GetTexGenfv x)+ + size (pname_GetTexGenfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexGenfv x)+ serialize (coord_GetTexGenfv x)+ serialize (pname_GetTexGenfv x)+ putSkip (requiredPadding size__)+ +data GetTexGenfvReply = MkGetTexGenfvReply{n_GetTexGenfvReply ::+ CARD32,+ datum_GetTexGenfvReply :: FLOAT32,+ data_GetTexGenfvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexGenfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexGenfvReply n datum data_)+ +data GetTexGeniv = MkGetTexGeniv{context_tag_GetTexGeniv ::+ CONTEXT_TAG,+ coord_GetTexGeniv :: CARD32, pname_GetTexGeniv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexGeniv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 134+ let size__+ = 4 + size (context_tag_GetTexGeniv x) + size (coord_GetTexGeniv x)+ + size (pname_GetTexGeniv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexGeniv x)+ serialize (coord_GetTexGeniv x)+ serialize (pname_GetTexGeniv x)+ putSkip (requiredPadding size__)+ +data GetTexGenivReply = MkGetTexGenivReply{n_GetTexGenivReply ::+ CARD32,+ datum_GetTexGenivReply :: INT32,+ data_GetTexGenivReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexGenivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexGenivReply n datum data_)+ +data GetTexImage = MkGetTexImage{context_tag_GetTexImage ::+ CONTEXT_TAG,+ target_GetTexImage :: CARD32, level_GetTexImage :: INT32,+ format_GetTexImage :: CARD32, type_GetTexImage :: CARD32,+ swap_bytes_GetTexImage :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexImage where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 135+ let size__+ = 4 + size (context_tag_GetTexImage x) ++ size (target_GetTexImage x)+ + size (level_GetTexImage x)+ + size (format_GetTexImage x)+ + size (type_GetTexImage x)+ + size (swap_bytes_GetTexImage x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexImage x)+ serialize (target_GetTexImage x)+ serialize (level_GetTexImage x)+ serialize (format_GetTexImage x)+ serialize (type_GetTexImage x)+ serialize (swap_bytes_GetTexImage x)+ putSkip (requiredPadding size__)+ +data GetTexImageReply = MkGetTexImageReply{width_GetTexImageReply+ :: INT32,+ height_GetTexImageReply :: INT32,+ depth_GetTexImageReply :: INT32,+ data_GetTexImageReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexImageReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 8+ width <- deserialize+ height <- deserialize+ depth <- deserialize+ skip 4+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetTexImageReply width height depth data_)+ +data GetTexParameterfv = MkGetTexParameterfv{context_tag_GetTexParameterfv+ :: CONTEXT_TAG,+ target_GetTexParameterfv :: CARD32,+ pname_GetTexParameterfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexParameterfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 136+ let size__+ = 4 + size (context_tag_GetTexParameterfv x) ++ size (target_GetTexParameterfv x)+ + size (pname_GetTexParameterfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexParameterfv x)+ serialize (target_GetTexParameterfv x)+ serialize (pname_GetTexParameterfv x)+ putSkip (requiredPadding size__)+ +data GetTexParameterfvReply = MkGetTexParameterfvReply{n_GetTexParameterfvReply+ :: CARD32,+ datum_GetTexParameterfvReply :: FLOAT32,+ data_GetTexParameterfvReply :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexParameterfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexParameterfvReply n datum data_)+ +data GetTexParameteriv = MkGetTexParameteriv{context_tag_GetTexParameteriv+ :: CONTEXT_TAG,+ target_GetTexParameteriv :: CARD32,+ pname_GetTexParameteriv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexParameteriv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 137+ let size__+ = 4 + size (context_tag_GetTexParameteriv x) ++ size (target_GetTexParameteriv x)+ + size (pname_GetTexParameteriv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexParameteriv x)+ serialize (target_GetTexParameteriv x)+ serialize (pname_GetTexParameteriv x)+ putSkip (requiredPadding size__)+ +data GetTexParameterivReply = MkGetTexParameterivReply{n_GetTexParameterivReply+ :: CARD32,+ datum_GetTexParameterivReply :: INT32,+ data_GetTexParameterivReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexParameterivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexParameterivReply n datum data_)+ +data GetTexLevelParameterfv = MkGetTexLevelParameterfv{context_tag_GetTexLevelParameterfv+ :: CONTEXT_TAG,+ target_GetTexLevelParameterfv :: CARD32,+ level_GetTexLevelParameterfv :: INT32,+ pname_GetTexLevelParameterfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexLevelParameterfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 138+ let size__+ = 4 + size (context_tag_GetTexLevelParameterfv x) ++ size (target_GetTexLevelParameterfv x)+ + size (level_GetTexLevelParameterfv x)+ + size (pname_GetTexLevelParameterfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexLevelParameterfv x)+ serialize (target_GetTexLevelParameterfv x)+ serialize (level_GetTexLevelParameterfv x)+ serialize (pname_GetTexLevelParameterfv x)+ putSkip (requiredPadding size__)+ +data GetTexLevelParameterfvReply = MkGetTexLevelParameterfvReply{n_GetTexLevelParameterfvReply+ :: CARD32,+ datum_GetTexLevelParameterfvReply+ :: FLOAT32,+ data_GetTexLevelParameterfvReply ::+ [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexLevelParameterfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexLevelParameterfvReply n datum data_)+ +data GetTexLevelParameteriv = MkGetTexLevelParameteriv{context_tag_GetTexLevelParameteriv+ :: CONTEXT_TAG,+ target_GetTexLevelParameteriv :: CARD32,+ level_GetTexLevelParameteriv :: INT32,+ pname_GetTexLevelParameteriv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetTexLevelParameteriv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 139+ let size__+ = 4 + size (context_tag_GetTexLevelParameteriv x) ++ size (target_GetTexLevelParameteriv x)+ + size (level_GetTexLevelParameteriv x)+ + size (pname_GetTexLevelParameteriv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetTexLevelParameteriv x)+ serialize (target_GetTexLevelParameteriv x)+ serialize (level_GetTexLevelParameteriv x)+ serialize (pname_GetTexLevelParameteriv x)+ putSkip (requiredPadding size__)+ +data GetTexLevelParameterivReply = MkGetTexLevelParameterivReply{n_GetTexLevelParameterivReply+ :: CARD32,+ datum_GetTexLevelParameterivReply+ :: INT32,+ data_GetTexLevelParameterivReply ::+ [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetTexLevelParameterivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetTexLevelParameterivReply n datum data_)+ +data IsList = MkIsList{context_tag_IsList :: CONTEXT_TAG,+ list_IsList :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest IsList where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 141+ let size__ = 4 + size (context_tag_IsList x) + size (list_IsList x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_IsList x)+ serialize (list_IsList x)+ putSkip (requiredPadding size__)+ +data IsListReply = MkIsListReply{ret_val_IsListReply :: BOOL32}+ deriving (Show, Typeable)+ +instance Deserialize IsListReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ ret_val <- deserialize+ let _ = isCard32 length+ return (MkIsListReply ret_val)+ +data Flush = MkFlush{context_tag_Flush :: CONTEXT_TAG}+ deriving (Show, Typeable)+ +instance ExtensionRequest Flush where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 142+ let size__ = 4 + size (context_tag_Flush x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_Flush x)+ putSkip (requiredPadding size__)+ +data AreTexturesResident = MkAreTexturesResident{context_tag_AreTexturesResident+ :: CONTEXT_TAG,+ n_AreTexturesResident :: INT32,+ textures_AreTexturesResident :: [CARD32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest AreTexturesResident where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 143+ let size__+ = 4 + size (context_tag_AreTexturesResident x) ++ size (n_AreTexturesResident x)+ + sum (map size (textures_AreTexturesResident x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_AreTexturesResident x)+ serialize (n_AreTexturesResident x)+ serializeList (textures_AreTexturesResident x)+ putSkip (requiredPadding size__)+ +data AreTexturesResidentReply = MkAreTexturesResidentReply{ret_val_AreTexturesResidentReply+ :: BOOL32,+ data_AreTexturesResidentReply :: [BOOL]}+ deriving (Show, Typeable)+ +instance Deserialize AreTexturesResidentReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ ret_val <- deserialize+ skip 20+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkAreTexturesResidentReply ret_val data_)+ +data DeleteTextures = MkDeleteTextures{context_tag_DeleteTextures+ :: CONTEXT_TAG,+ n_DeleteTextures :: INT32,+ textures_DeleteTextures :: [CARD32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest DeleteTextures where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 144+ let size__+ = 4 + size (context_tag_DeleteTextures x) ++ size (n_DeleteTextures x)+ + sum (map size (textures_DeleteTextures x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_DeleteTextures x)+ serialize (n_DeleteTextures x)+ serializeList (textures_DeleteTextures x)+ putSkip (requiredPadding size__)+ +data GenTextures = MkGenTextures{context_tag_GenTextures ::+ CONTEXT_TAG,+ n_GenTextures :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GenTextures where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 145+ let size__+ = 4 + size (context_tag_GenTextures x) + size (n_GenTextures x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GenTextures x)+ serialize (n_GenTextures x)+ putSkip (requiredPadding size__)+ +data GenTexturesReply = MkGenTexturesReply{data_GenTexturesReply ::+ [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GenTexturesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ data_ <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return (MkGenTexturesReply data_)+ +data IsTexture = MkIsTexture{context_tag_IsTexture :: CONTEXT_TAG,+ texture_IsTexture :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest IsTexture where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 146+ let size__+ = 4 + size (context_tag_IsTexture x) + size (texture_IsTexture x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_IsTexture x)+ serialize (texture_IsTexture x)+ putSkip (requiredPadding size__)+ +data IsTextureReply = MkIsTextureReply{ret_val_IsTextureReply ::+ BOOL32}+ deriving (Show, Typeable)+ +instance Deserialize IsTextureReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ ret_val <- deserialize+ let _ = isCard32 length+ return (MkIsTextureReply ret_val)+ +data GetColorTable = MkGetColorTable{context_tag_GetColorTable ::+ CONTEXT_TAG,+ target_GetColorTable :: CARD32, format_GetColorTable :: CARD32,+ type_GetColorTable :: CARD32, swap_bytes_GetColorTable :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetColorTable where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 147+ let size__+ = 4 + size (context_tag_GetColorTable x) ++ size (target_GetColorTable x)+ + size (format_GetColorTable x)+ + size (type_GetColorTable x)+ + size (swap_bytes_GetColorTable x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetColorTable x)+ serialize (target_GetColorTable x)+ serialize (format_GetColorTable x)+ serialize (type_GetColorTable x)+ serialize (swap_bytes_GetColorTable x)+ putSkip (requiredPadding size__)+ +data GetColorTableReply = MkGetColorTableReply{width_GetColorTableReply+ :: INT32,+ data_GetColorTableReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetColorTableReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 8+ width <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetColorTableReply width data_)+ +data GetColorTableParameterfv = MkGetColorTableParameterfv{context_tag_GetColorTableParameterfv+ :: CONTEXT_TAG,+ target_GetColorTableParameterfv ::+ CARD32,+ pname_GetColorTableParameterfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetColorTableParameterfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 148+ let size__+ = 4 + size (context_tag_GetColorTableParameterfv x) ++ size (target_GetColorTableParameterfv x)+ + size (pname_GetColorTableParameterfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetColorTableParameterfv x)+ serialize (target_GetColorTableParameterfv x)+ serialize (pname_GetColorTableParameterfv x)+ putSkip (requiredPadding size__)+ +data GetColorTableParameterfvReply = MkGetColorTableParameterfvReply{n_GetColorTableParameterfvReply+ :: CARD32,+ datum_GetColorTableParameterfvReply+ :: FLOAT32,+ data_GetColorTableParameterfvReply+ :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetColorTableParameterfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetColorTableParameterfvReply n datum data_)+ +data GetColorTableParameteriv = MkGetColorTableParameteriv{context_tag_GetColorTableParameteriv+ :: CONTEXT_TAG,+ target_GetColorTableParameteriv ::+ CARD32,+ pname_GetColorTableParameteriv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetColorTableParameteriv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 149+ let size__+ = 4 + size (context_tag_GetColorTableParameteriv x) ++ size (target_GetColorTableParameteriv x)+ + size (pname_GetColorTableParameteriv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetColorTableParameteriv x)+ serialize (target_GetColorTableParameteriv x)+ serialize (pname_GetColorTableParameteriv x)+ putSkip (requiredPadding size__)+ +data GetColorTableParameterivReply = MkGetColorTableParameterivReply{n_GetColorTableParameterivReply+ :: CARD32,+ datum_GetColorTableParameterivReply+ :: INT32,+ data_GetColorTableParameterivReply+ :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetColorTableParameterivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetColorTableParameterivReply n datum data_)+ +data GetConvolutionFilter = MkGetConvolutionFilter{context_tag_GetConvolutionFilter+ :: CONTEXT_TAG,+ target_GetConvolutionFilter :: CARD32,+ format_GetConvolutionFilter :: CARD32,+ type_GetConvolutionFilter :: CARD32,+ swap_bytes_GetConvolutionFilter :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetConvolutionFilter where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 150+ let size__+ = 4 + size (context_tag_GetConvolutionFilter x) ++ size (target_GetConvolutionFilter x)+ + size (format_GetConvolutionFilter x)+ + size (type_GetConvolutionFilter x)+ + size (swap_bytes_GetConvolutionFilter x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetConvolutionFilter x)+ serialize (target_GetConvolutionFilter x)+ serialize (format_GetConvolutionFilter x)+ serialize (type_GetConvolutionFilter x)+ serialize (swap_bytes_GetConvolutionFilter x)+ putSkip (requiredPadding size__)+ +data GetConvolutionFilterReply = MkGetConvolutionFilterReply{width_GetConvolutionFilterReply+ :: INT32,+ height_GetConvolutionFilterReply ::+ INT32,+ data_GetConvolutionFilterReply ::+ [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetConvolutionFilterReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 8+ width <- deserialize+ height <- deserialize+ skip 8+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetConvolutionFilterReply width height data_)+ +data GetConvolutionParameterfv = MkGetConvolutionParameterfv{context_tag_GetConvolutionParameterfv+ :: CONTEXT_TAG,+ target_GetConvolutionParameterfv ::+ CARD32,+ pname_GetConvolutionParameterfv ::+ CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetConvolutionParameterfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 151+ let size__+ = 4 + size (context_tag_GetConvolutionParameterfv x) ++ size (target_GetConvolutionParameterfv x)+ + size (pname_GetConvolutionParameterfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetConvolutionParameterfv x)+ serialize (target_GetConvolutionParameterfv x)+ serialize (pname_GetConvolutionParameterfv x)+ putSkip (requiredPadding size__)+ +data GetConvolutionParameterfvReply = MkGetConvolutionParameterfvReply{n_GetConvolutionParameterfvReply+ :: CARD32,+ datum_GetConvolutionParameterfvReply+ :: FLOAT32,+ data_GetConvolutionParameterfvReply+ :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetConvolutionParameterfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetConvolutionParameterfvReply n datum data_)+ +data GetConvolutionParameteriv = MkGetConvolutionParameteriv{context_tag_GetConvolutionParameteriv+ :: CONTEXT_TAG,+ target_GetConvolutionParameteriv ::+ CARD32,+ pname_GetConvolutionParameteriv ::+ CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetConvolutionParameteriv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 152+ let size__+ = 4 + size (context_tag_GetConvolutionParameteriv x) ++ size (target_GetConvolutionParameteriv x)+ + size (pname_GetConvolutionParameteriv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetConvolutionParameteriv x)+ serialize (target_GetConvolutionParameteriv x)+ serialize (pname_GetConvolutionParameteriv x)+ putSkip (requiredPadding size__)+ +data GetConvolutionParameterivReply = MkGetConvolutionParameterivReply{n_GetConvolutionParameterivReply+ :: CARD32,+ datum_GetConvolutionParameterivReply+ :: INT32,+ data_GetConvolutionParameterivReply+ :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetConvolutionParameterivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetConvolutionParameterivReply n datum data_)+ +data GetSeparableFilter = MkGetSeparableFilter{context_tag_GetSeparableFilter+ :: CONTEXT_TAG,+ target_GetSeparableFilter :: CARD32,+ format_GetSeparableFilter :: CARD32,+ type_GetSeparableFilter :: CARD32,+ swap_bytes_GetSeparableFilter :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetSeparableFilter where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 153+ let size__+ = 4 + size (context_tag_GetSeparableFilter x) ++ size (target_GetSeparableFilter x)+ + size (format_GetSeparableFilter x)+ + size (type_GetSeparableFilter x)+ + size (swap_bytes_GetSeparableFilter x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetSeparableFilter x)+ serialize (target_GetSeparableFilter x)+ serialize (format_GetSeparableFilter x)+ serialize (type_GetSeparableFilter x)+ serialize (swap_bytes_GetSeparableFilter x)+ putSkip (requiredPadding size__)+ +data GetSeparableFilterReply = MkGetSeparableFilterReply{row_w_GetSeparableFilterReply+ :: INT32,+ col_h_GetSeparableFilterReply :: INT32,+ rows_and_cols_GetSeparableFilterReply ::+ [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetSeparableFilterReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 8+ row_w <- deserialize+ col_h <- deserialize+ skip 8+ rows_and_cols <- deserializeList+ (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetSeparableFilterReply row_w col_h rows_and_cols)+ +data GetHistogram = MkGetHistogram{context_tag_GetHistogram ::+ CONTEXT_TAG,+ target_GetHistogram :: CARD32, format_GetHistogram :: CARD32,+ type_GetHistogram :: CARD32, swap_bytes_GetHistogram :: BOOL,+ reset_GetHistogram :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetHistogram where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 154+ let size__+ = 4 + size (context_tag_GetHistogram x) ++ size (target_GetHistogram x)+ + size (format_GetHistogram x)+ + size (type_GetHistogram x)+ + size (swap_bytes_GetHistogram x)+ + size (reset_GetHistogram x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetHistogram x)+ serialize (target_GetHistogram x)+ serialize (format_GetHistogram x)+ serialize (type_GetHistogram x)+ serialize (swap_bytes_GetHistogram x)+ serialize (reset_GetHistogram x)+ putSkip (requiredPadding size__)+ +data GetHistogramReply = MkGetHistogramReply{width_GetHistogramReply+ :: INT32,+ data_GetHistogramReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetHistogramReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 8+ width <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetHistogramReply width data_)+ +data GetHistogramParameterfv = MkGetHistogramParameterfv{context_tag_GetHistogramParameterfv+ :: CONTEXT_TAG,+ target_GetHistogramParameterfv :: CARD32,+ pname_GetHistogramParameterfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetHistogramParameterfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 155+ let size__+ = 4 + size (context_tag_GetHistogramParameterfv x) ++ size (target_GetHistogramParameterfv x)+ + size (pname_GetHistogramParameterfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetHistogramParameterfv x)+ serialize (target_GetHistogramParameterfv x)+ serialize (pname_GetHistogramParameterfv x)+ putSkip (requiredPadding size__)+ +data GetHistogramParameterfvReply = MkGetHistogramParameterfvReply{n_GetHistogramParameterfvReply+ :: CARD32,+ datum_GetHistogramParameterfvReply+ :: FLOAT32,+ data_GetHistogramParameterfvReply+ :: [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetHistogramParameterfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetHistogramParameterfvReply n datum data_)+ +data GetHistogramParameteriv = MkGetHistogramParameteriv{context_tag_GetHistogramParameteriv+ :: CONTEXT_TAG,+ target_GetHistogramParameteriv :: CARD32,+ pname_GetHistogramParameteriv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetHistogramParameteriv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 156+ let size__+ = 4 + size (context_tag_GetHistogramParameteriv x) ++ size (target_GetHistogramParameteriv x)+ + size (pname_GetHistogramParameteriv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetHistogramParameteriv x)+ serialize (target_GetHistogramParameteriv x)+ serialize (pname_GetHistogramParameteriv x)+ putSkip (requiredPadding size__)+ +data GetHistogramParameterivReply = MkGetHistogramParameterivReply{n_GetHistogramParameterivReply+ :: CARD32,+ datum_GetHistogramParameterivReply+ :: INT32,+ data_GetHistogramParameterivReply+ :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetHistogramParameterivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetHistogramParameterivReply n datum data_)+ +data GetMinmax = MkGetMinmax{context_tag_GetMinmax :: CONTEXT_TAG,+ target_GetMinmax :: CARD32, format_GetMinmax :: CARD32,+ type_GetMinmax :: CARD32, swap_bytes_GetMinmax :: BOOL,+ reset_GetMinmax :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMinmax where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 157+ let size__+ = 4 + size (context_tag_GetMinmax x) + size (target_GetMinmax x) ++ size (format_GetMinmax x)+ + size (type_GetMinmax x)+ + size (swap_bytes_GetMinmax x)+ + size (reset_GetMinmax x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMinmax x)+ serialize (target_GetMinmax x)+ serialize (format_GetMinmax x)+ serialize (type_GetMinmax x)+ serialize (swap_bytes_GetMinmax x)+ serialize (reset_GetMinmax x)+ putSkip (requiredPadding size__)+ +data GetMinmaxReply = MkGetMinmaxReply{data_GetMinmaxReply ::+ [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetMinmaxReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetMinmaxReply data_)+ +data GetMinmaxParameterfv = MkGetMinmaxParameterfv{context_tag_GetMinmaxParameterfv+ :: CONTEXT_TAG,+ target_GetMinmaxParameterfv :: CARD32,+ pname_GetMinmaxParameterfv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMinmaxParameterfv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 158+ let size__+ = 4 + size (context_tag_GetMinmaxParameterfv x) ++ size (target_GetMinmaxParameterfv x)+ + size (pname_GetMinmaxParameterfv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMinmaxParameterfv x)+ serialize (target_GetMinmaxParameterfv x)+ serialize (pname_GetMinmaxParameterfv x)+ putSkip (requiredPadding size__)+ +data GetMinmaxParameterfvReply = MkGetMinmaxParameterfvReply{n_GetMinmaxParameterfvReply+ :: CARD32,+ datum_GetMinmaxParameterfvReply ::+ FLOAT32,+ data_GetMinmaxParameterfvReply ::+ [FLOAT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetMinmaxParameterfvReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetMinmaxParameterfvReply n datum data_)+ +data GetMinmaxParameteriv = MkGetMinmaxParameteriv{context_tag_GetMinmaxParameteriv+ :: CONTEXT_TAG,+ target_GetMinmaxParameteriv :: CARD32,+ pname_GetMinmaxParameteriv :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetMinmaxParameteriv where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 159+ let size__+ = 4 + size (context_tag_GetMinmaxParameteriv x) ++ size (target_GetMinmaxParameteriv x)+ + size (pname_GetMinmaxParameteriv x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetMinmaxParameteriv x)+ serialize (target_GetMinmaxParameteriv x)+ serialize (pname_GetMinmaxParameteriv x)+ putSkip (requiredPadding size__)+ +data GetMinmaxParameterivReply = MkGetMinmaxParameterivReply{n_GetMinmaxParameterivReply+ :: CARD32,+ datum_GetMinmaxParameterivReply ::+ INT32,+ data_GetMinmaxParameterivReply ::+ [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetMinmaxParameterivReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetMinmaxParameterivReply n datum data_)+ +data GetCompressedTexImageARB = MkGetCompressedTexImageARB{context_tag_GetCompressedTexImageARB+ :: CONTEXT_TAG,+ target_GetCompressedTexImageARB ::+ CARD32,+ level_GetCompressedTexImageARB :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetCompressedTexImageARB where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 160+ let size__+ = 4 + size (context_tag_GetCompressedTexImageARB x) ++ size (target_GetCompressedTexImageARB x)+ + size (level_GetCompressedTexImageARB x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetCompressedTexImageARB x)+ serialize (target_GetCompressedTexImageARB x)+ serialize (level_GetCompressedTexImageARB x)+ putSkip (requiredPadding size__)+ +data GetCompressedTexImageARBReply = MkGetCompressedTexImageARBReply{size_GetCompressedTexImageARBReply+ :: INT32,+ data_GetCompressedTexImageARBReply+ :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetCompressedTexImageARBReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 8+ size <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetCompressedTexImageARBReply size data_)+ +data DeleteQueriesARB = MkDeleteQueriesARB{context_tag_DeleteQueriesARB+ :: CONTEXT_TAG,+ n_DeleteQueriesARB :: INT32,+ ids_DeleteQueriesARB :: [CARD32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest DeleteQueriesARB where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 161+ let size__+ = 4 + size (context_tag_DeleteQueriesARB x) ++ size (n_DeleteQueriesARB x)+ + sum (map size (ids_DeleteQueriesARB x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_DeleteQueriesARB x)+ serialize (n_DeleteQueriesARB x)+ serializeList (ids_DeleteQueriesARB x)+ putSkip (requiredPadding size__)+ +data GenQueriesARB = MkGenQueriesARB{context_tag_GenQueriesARB ::+ CONTEXT_TAG,+ n_GenQueriesARB :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GenQueriesARB where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 162+ let size__+ = 4 + size (context_tag_GenQueriesARB x) + size (n_GenQueriesARB x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GenQueriesARB x)+ serialize (n_GenQueriesARB x)+ putSkip (requiredPadding size__)+ +data GenQueriesARBReply = MkGenQueriesARBReply{data_GenQueriesARBReply+ :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GenQueriesARBReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ data_ <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return (MkGenQueriesARBReply data_)+ +data IsQueryARB = MkIsQueryARB{context_tag_IsQueryARB ::+ CONTEXT_TAG,+ id_IsQueryARB :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest IsQueryARB where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 163+ let size__+ = 4 + size (context_tag_IsQueryARB x) + size (id_IsQueryARB x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_IsQueryARB x)+ serialize (id_IsQueryARB x)+ putSkip (requiredPadding size__)+ +data IsQueryARBReply = MkIsQueryARBReply{ret_val_IsQueryARBReply ::+ BOOL32}+ deriving (Show, Typeable)+ +instance Deserialize IsQueryARBReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ ret_val <- deserialize+ let _ = isCard32 length+ return (MkIsQueryARBReply ret_val)+ +data GetQueryivARB = MkGetQueryivARB{context_tag_GetQueryivARB ::+ CONTEXT_TAG,+ target_GetQueryivARB :: CARD32, pname_GetQueryivARB :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetQueryivARB where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 164+ let size__+ = 4 + size (context_tag_GetQueryivARB x) ++ size (target_GetQueryivARB x)+ + size (pname_GetQueryivARB x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetQueryivARB x)+ serialize (target_GetQueryivARB x)+ serialize (pname_GetQueryivARB x)+ putSkip (requiredPadding size__)+ +data GetQueryivARBReply = MkGetQueryivARBReply{n_GetQueryivARBReply+ :: CARD32,+ datum_GetQueryivARBReply :: INT32,+ data_GetQueryivARBReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetQueryivARBReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetQueryivARBReply n datum data_)+ +data GetQueryObjectivARB = MkGetQueryObjectivARB{context_tag_GetQueryObjectivARB+ :: CONTEXT_TAG,+ id_GetQueryObjectivARB :: CARD32,+ pname_GetQueryObjectivARB :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetQueryObjectivARB where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 165+ let size__+ = 4 + size (context_tag_GetQueryObjectivARB x) ++ size (id_GetQueryObjectivARB x)+ + size (pname_GetQueryObjectivARB x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetQueryObjectivARB x)+ serialize (id_GetQueryObjectivARB x)+ serialize (pname_GetQueryObjectivARB x)+ putSkip (requiredPadding size__)+ +data GetQueryObjectivARBReply = MkGetQueryObjectivARBReply{n_GetQueryObjectivARBReply+ :: CARD32,+ datum_GetQueryObjectivARBReply :: INT32,+ data_GetQueryObjectivARBReply :: [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize GetQueryObjectivARBReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetQueryObjectivARBReply n datum data_)+ +data GetQueryObjectuivARB = MkGetQueryObjectuivARB{context_tag_GetQueryObjectuivARB+ :: CONTEXT_TAG,+ id_GetQueryObjectuivARB :: CARD32,+ pname_GetQueryObjectuivARB :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetQueryObjectuivARB where+ extensionId _ = "GLX"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 166+ let size__+ = 4 + size (context_tag_GetQueryObjectuivARB x) ++ size (id_GetQueryObjectuivARB x)+ + size (pname_GetQueryObjectuivARB x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_tag_GetQueryObjectuivARB x)+ serialize (id_GetQueryObjectuivARB x)+ serialize (pname_GetQueryObjectuivARB x)+ putSkip (requiredPadding size__)+ +data GetQueryObjectuivARBReply = MkGetQueryObjectuivARBReply{n_GetQueryObjectuivARBReply+ :: CARD32,+ datum_GetQueryObjectuivARBReply ::+ CARD32,+ data_GetQueryObjectuivARBReply ::+ [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetQueryObjectuivARBReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 4+ n <- deserialize+ datum <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral n)+ let _ = isCard32 length+ return (MkGetQueryObjectuivARBReply n datum data_)
+ patched/Graphics/XHB/Gen/Input.hs view
@@ -0,0 +1,346 @@+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
+ patched/Graphics/XHB/Gen/Input/Types.hs view
@@ -0,0 +1,2927 @@+module Graphics.XHB.Gen.Input.Types+ (deserializeError, deserializeEvent, KeyCode, EventClass,+ ValuatorMode(..), PropagateMode(..), GetExtensionVersion(..),+ GetExtensionVersionReply(..), DeviceInfo(..), ListInputDevices(..),+ ListInputDevicesReply(..), DeviceUse(..), InputInfo(..),+ KeyInfo(..), ButtonInfo(..), AxisInfo(..), ValuatorInfo(..),+ InputClassInfo(..), OpenDevice(..), OpenDeviceReply(..),+ InputClass(..), CloseDevice(..), SetDeviceMode(..),+ SetDeviceModeReply(..), SelectExtensionEvent(..),+ GetSelectedExtensionEvents(..),+ GetSelectedExtensionEventsReply(..),+ ChangeDeviceDontPropagateList(..), GetDeviceDontPropagateList(..),+ GetDeviceDontPropagateListReply(..), GetDeviceMotionEvents(..),+ GetDeviceMotionEventsReply(..), DeviceTimeCoord(..),+ ChangeKeyboardDevice(..), ChangeKeyboardDeviceReply(..),+ ChangePointerDevice(..), ChangePointerDeviceReply(..),+ GrabDevice(..), GrabDeviceReply(..), UngrabDevice(..),+ GrabDeviceKey(..), UngrabDeviceKey(..), GrabDeviceButton(..),+ UngrabDeviceButton(..), AllowDeviceEvents(..), GetDeviceFocus(..),+ GetDeviceFocusReply(..), SetDeviceFocus(..),+ GetFeedbackControl(..), GetFeedbackControlReply(..),+ FeedbackState(..), KbdFeedbackState(..), PtrFeedbackState(..),+ IntegerFeedbackState(..), StringFeedbackState(..),+ BellFeedbackState(..), LedFeedbackState(..), FeedbackCtl(..),+ KbdFeedbackCtl(..), PtrFeedbackCtl(..), IntegerFeedbackCtl(..),+ StringFeedbackCtl(..), BellFeedbackCtl(..), LedFeedbackCtl(..),+ GetDeviceKeyMapping(..), GetDeviceKeyMappingReply(..),+ ChangeDeviceKeyMapping(..), GetDeviceModifierMapping(..),+ GetDeviceModifierMappingReply(..), SetDeviceModifierMapping(..),+ SetDeviceModifierMappingReply(..), GetDeviceButtonMapping(..),+ GetDeviceButtonMappingReply(..), SetDeviceButtonMapping(..),+ SetDeviceButtonMappingReply(..), QueryDeviceState(..),+ QueryDeviceStateReply(..), InputState(..), KeyState(..),+ ButtonState(..), ValuatorState(..), SendExtensionEvent(..),+ DeviceBell(..), SetDeviceValuators(..),+ SetDeviceValuatorsReply(..), GetDeviceControl(..),+ GetDeviceControlReply(..), DeviceState(..),+ DeviceResolutionState(..), DeviceAbsCalibState(..),+ DeviceAbsAreaState(..), DeviceCoreState(..), DeviceEnableState(..),+ DeviceCtl(..), DeviceResolutionCtl(..), DeviceAbsCalibCtl(..),+ DeviceAbsAreaCtrl(..), DeviceCoreCtrl(..), DeviceEnableCtrl(..),+ DeviceValuator(..), DeviceKeyPress(..), DeviceKeyRelease(..),+ DeviceButtonPress(..), DeviceButtonRelease(..),+ DeviceMotionNotify(..), ProximityIn(..), ProximityOut(..),+ FocusIn(..), FocusOut(..), DeviceStateNotify(..),+ DeviceMappingNotify(..), ChangeDeviceNotify(..),+ DeviceKeyStateNotify(..), DeviceButtonStateNotify(..),+ DevicePresenceNotify(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (FocusIn(..), FocusOut(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get DeviceValuator))+deserializeEvent 1+ = return (liftM toEvent (deserialize :: Get DeviceKeyPress))+deserializeEvent 2+ = return (liftM toEvent (deserialize :: Get DeviceKeyRelease))+deserializeEvent 3+ = return (liftM toEvent (deserialize :: Get DeviceButtonPress))+deserializeEvent 4+ = return (liftM toEvent (deserialize :: Get DeviceButtonRelease))+deserializeEvent 5+ = return (liftM toEvent (deserialize :: Get DeviceMotionNotify))+deserializeEvent 8+ = return (liftM toEvent (deserialize :: Get ProximityIn))+deserializeEvent 9+ = return (liftM toEvent (deserialize :: Get ProximityOut))+deserializeEvent 6+ = return (liftM toEvent (deserialize :: Get FocusIn))+deserializeEvent 7+ = return (liftM toEvent (deserialize :: Get FocusOut))+deserializeEvent 10+ = return (liftM toEvent (deserialize :: Get DeviceStateNotify))+deserializeEvent 11+ = return (liftM toEvent (deserialize :: Get DeviceMappingNotify))+deserializeEvent 12+ = return (liftM toEvent (deserialize :: Get ChangeDeviceNotify))+deserializeEvent 13+ = return (liftM toEvent (deserialize :: Get DeviceKeyStateNotify))+deserializeEvent 14+ = return+ (liftM toEvent (deserialize :: Get DeviceButtonStateNotify))+deserializeEvent 15+ = return (liftM toEvent (deserialize :: Get DevicePresenceNotify))+deserializeEvent _ = Nothing+ +type KeyCode = CARD8+ +type EventClass = CARD32+ +data ValuatorMode = ValuatorModeRelative+ | ValuatorModeAbsolute+ +instance SimpleEnum ValuatorMode where+ toValue ValuatorModeRelative{} = 0+ toValue ValuatorModeAbsolute{} = 1+ fromValue 0 = ValuatorModeRelative+ fromValue 1 = ValuatorModeAbsolute+ +data PropagateMode = PropagateModeAddToList+ | PropagateModeDeleteFromList+ +instance SimpleEnum PropagateMode where+ toValue PropagateModeAddToList{} = 0+ toValue PropagateModeDeleteFromList{} = 1+ fromValue 0 = PropagateModeAddToList+ fromValue 1 = PropagateModeDeleteFromList+ +data GetExtensionVersion = MkGetExtensionVersion{name_len_GetExtensionVersion+ :: CARD16,+ name_GetExtensionVersion :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetExtensionVersion where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (name_len_GetExtensionVersion x) + 2 ++ sum (map size (name_GetExtensionVersion x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (name_len_GetExtensionVersion x)+ putSkip 2+ serializeList (name_GetExtensionVersion x)+ putSkip (requiredPadding size__)+ +data GetExtensionVersionReply = MkGetExtensionVersionReply{server_major_GetExtensionVersionReply+ :: CARD16,+ server_minor_GetExtensionVersionReply ::+ CARD16,+ present_GetExtensionVersionReply ::+ CARD8}+ deriving (Show, Typeable)+ +instance Deserialize GetExtensionVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ server_major <- deserialize+ server_minor <- deserialize+ present <- deserialize+ skip 19+ let _ = isCard32 length+ return+ (MkGetExtensionVersionReply server_major server_minor present)+ +data DeviceInfo = MkDeviceInfo{device_type_DeviceInfo :: ATOM,+ device_id_DeviceInfo :: CARD8, num_class_info_DeviceInfo :: CARD8,+ device_use_DeviceInfo :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize DeviceInfo where+ serialize x+ = do serialize (device_type_DeviceInfo x)+ serialize (device_id_DeviceInfo x)+ serialize (num_class_info_DeviceInfo x)+ serialize (device_use_DeviceInfo x)+ putSkip 1+ size x+ = size (device_type_DeviceInfo x) + size (device_id_DeviceInfo x) ++ size (num_class_info_DeviceInfo x)+ + size (device_use_DeviceInfo x)+ + 1+ +instance Deserialize DeviceInfo where+ deserialize+ = do device_type <- deserialize+ device_id <- deserialize+ num_class_info <- deserialize+ device_use <- deserialize+ skip 1+ return+ (MkDeviceInfo device_type device_id num_class_info device_use)+ +data ListInputDevices = MkListInputDevices{}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListInputDevices where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data ListInputDevicesReply = MkListInputDevicesReply{devices_len_ListInputDevicesReply+ :: CARD8,+ devices_ListInputDevicesReply :: [DeviceInfo]}+ deriving (Show, Typeable)+ +instance Deserialize ListInputDevicesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ devices_len <- deserialize+ skip 23+ devices <- deserializeList (fromIntegral devices_len)+ let _ = isCard32 length+ return (MkListInputDevicesReply devices_len devices)+ +data DeviceUse = DeviceUseIsXPointer+ | DeviceUseIsXKeyboard+ | DeviceUseIsXExtensionDevice+ | DeviceUseIsXExtensionKeyboard+ | DeviceUseIsXExtensionPointer+ +instance SimpleEnum DeviceUse where+ toValue DeviceUseIsXPointer{} = 0+ toValue DeviceUseIsXKeyboard{} = 1+ toValue DeviceUseIsXExtensionDevice{} = 2+ toValue DeviceUseIsXExtensionKeyboard{} = 3+ toValue DeviceUseIsXExtensionPointer{} = 4+ fromValue 0 = DeviceUseIsXPointer+ fromValue 1 = DeviceUseIsXKeyboard+ fromValue 2 = DeviceUseIsXExtensionDevice+ fromValue 3 = DeviceUseIsXExtensionKeyboard+ fromValue 4 = DeviceUseIsXExtensionPointer+ +data InputInfo = MkInputInfo{class_id_InputInfo :: CARD8,+ len_InputInfo :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize InputInfo where+ serialize x+ = do serialize (class_id_InputInfo x)+ serialize (len_InputInfo x)+ size x = size (class_id_InputInfo x) + size (len_InputInfo x)+ +instance Deserialize InputInfo where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ return (MkInputInfo class_id len)+ +data KeyInfo = MkKeyInfo{class_id_KeyInfo :: CARD8,+ len_KeyInfo :: CARD8, min_keycode_KeyInfo :: KeyCode,+ max_keycode_KeyInfo :: KeyCode, num_keys_KeyInfo :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize KeyInfo where+ serialize x+ = do serialize (class_id_KeyInfo x)+ serialize (len_KeyInfo x)+ serialize (min_keycode_KeyInfo x)+ serialize (max_keycode_KeyInfo x)+ serialize (num_keys_KeyInfo x)+ putSkip 2+ size x+ = size (class_id_KeyInfo x) + size (len_KeyInfo x) ++ size (min_keycode_KeyInfo x)+ + size (max_keycode_KeyInfo x)+ + size (num_keys_KeyInfo x)+ + 2+ +instance Deserialize KeyInfo where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ min_keycode <- deserialize+ max_keycode <- deserialize+ num_keys <- deserialize+ skip 2+ return (MkKeyInfo class_id len min_keycode max_keycode num_keys)+ +data ButtonInfo = MkButtonInfo{class_id_ButtonInfo :: CARD8,+ len_ButtonInfo :: CARD8, num_buttons_ButtonInfo :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize ButtonInfo where+ serialize x+ = do serialize (class_id_ButtonInfo x)+ serialize (len_ButtonInfo x)+ serialize (num_buttons_ButtonInfo x)+ size x+ = size (class_id_ButtonInfo x) + size (len_ButtonInfo x) ++ size (num_buttons_ButtonInfo x)+ +instance Deserialize ButtonInfo where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ num_buttons <- deserialize+ return (MkButtonInfo class_id len num_buttons)+ +data AxisInfo = MkAxisInfo{resolution_AxisInfo :: CARD32,+ minimum_AxisInfo :: CARD32, maximum_AxisInfo :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize AxisInfo where+ serialize x+ = do serialize (resolution_AxisInfo x)+ serialize (minimum_AxisInfo x)+ serialize (maximum_AxisInfo x)+ size x+ = size (resolution_AxisInfo x) + size (minimum_AxisInfo x) ++ size (maximum_AxisInfo x)+ +instance Deserialize AxisInfo where+ deserialize+ = do resolution <- deserialize+ minimum <- deserialize+ maximum <- deserialize+ return (MkAxisInfo resolution minimum maximum)+ +data ValuatorInfo = MkValuatorInfo{class_id_ValuatorInfo :: CARD8,+ len_ValuatorInfo :: CARD8, axes_len_ValuatorInfo :: CARD8,+ mode_ValuatorInfo :: CARD8, motion_size_ValuatorInfo :: CARD32,+ axes_ValuatorInfo :: [AxisInfo]}+ deriving (Show, Typeable)+ +instance Serialize ValuatorInfo where+ serialize x+ = do serialize (class_id_ValuatorInfo x)+ serialize (len_ValuatorInfo x)+ serialize (axes_len_ValuatorInfo x)+ serialize (mode_ValuatorInfo x)+ serialize (motion_size_ValuatorInfo x)+ serializeList (axes_ValuatorInfo x)+ size x+ = size (class_id_ValuatorInfo x) + size (len_ValuatorInfo x) ++ size (axes_len_ValuatorInfo x)+ + size (mode_ValuatorInfo x)+ + size (motion_size_ValuatorInfo x)+ + sum (map size (axes_ValuatorInfo x))+ +instance Deserialize ValuatorInfo where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ axes_len <- deserialize+ mode <- deserialize+ motion_size <- deserialize+ axes <- deserializeList (fromIntegral axes_len)+ return (MkValuatorInfo class_id len axes_len mode motion_size axes)+ +data InputClassInfo = MkInputClassInfo{class_id_InputClassInfo ::+ CARD8,+ event_type_base_InputClassInfo :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize InputClassInfo where+ serialize x+ = do serialize (class_id_InputClassInfo x)+ serialize (event_type_base_InputClassInfo x)+ size x+ = size (class_id_InputClassInfo x) ++ size (event_type_base_InputClassInfo x)+ +instance Deserialize InputClassInfo where+ deserialize+ = do class_id <- deserialize+ event_type_base <- deserialize+ return (MkInputClassInfo class_id event_type_base)+ +data OpenDevice = MkOpenDevice{device_id_OpenDevice :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest OpenDevice where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (device_id_OpenDevice x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_OpenDevice x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data OpenDeviceReply = MkOpenDeviceReply{num_classes_OpenDeviceReply+ :: CARD8,+ class_info_OpenDeviceReply :: [InputClassInfo]}+ deriving (Show, Typeable)+ +instance Deserialize OpenDeviceReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_classes <- deserialize+ skip 23+ class_info <- deserializeList (fromIntegral num_classes)+ let _ = isCard32 length+ return (MkOpenDeviceReply num_classes class_info)+ +data InputClass = InputClassKey+ | InputClassButton+ | InputClassValuator+ | InputClassFeedback+ | InputClassProximity+ | InputClassFocus+ | InputClassOther+ +instance SimpleEnum InputClass where+ toValue InputClassKey{} = 0+ toValue InputClassButton{} = 1+ toValue InputClassValuator{} = 2+ toValue InputClassFeedback{} = 3+ toValue InputClassProximity{} = 4+ toValue InputClassFocus{} = 5+ toValue InputClassOther{} = 6+ fromValue 0 = InputClassKey+ fromValue 1 = InputClassButton+ fromValue 2 = InputClassValuator+ fromValue 3 = InputClassFeedback+ fromValue 4 = InputClassProximity+ fromValue 5 = InputClassFocus+ fromValue 6 = InputClassOther+ +data CloseDevice = MkCloseDevice{device_id_CloseDevice :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest CloseDevice where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (device_id_CloseDevice x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_CloseDevice x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data SetDeviceMode = MkSetDeviceMode{device_id_SetDeviceMode ::+ CARD8,+ mode_SetDeviceMode :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetDeviceMode where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (device_id_SetDeviceMode x) ++ size (mode_SetDeviceMode x)+ + 2+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_SetDeviceMode x)+ serialize (mode_SetDeviceMode x)+ putSkip 2+ putSkip (requiredPadding size__)+ +data SetDeviceModeReply = MkSetDeviceModeReply{status_SetDeviceModeReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize SetDeviceModeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkSetDeviceModeReply status)+ +data SelectExtensionEvent = MkSelectExtensionEvent{window_SelectExtensionEvent+ :: WINDOW,+ num_classes_SelectExtensionEvent :: CARD16,+ classes_SelectExtensionEvent :: [EventClass]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectExtensionEvent where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (window_SelectExtensionEvent x) ++ size (num_classes_SelectExtensionEvent x)+ + 2+ + sum (map size (classes_SelectExtensionEvent x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_SelectExtensionEvent x)+ serialize (num_classes_SelectExtensionEvent x)+ putSkip 2+ serializeList (classes_SelectExtensionEvent x)+ putSkip (requiredPadding size__)+ +data GetSelectedExtensionEvents = MkGetSelectedExtensionEvents{window_GetSelectedExtensionEvents+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetSelectedExtensionEvents where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (window_GetSelectedExtensionEvents x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetSelectedExtensionEvents x)+ putSkip (requiredPadding size__)+ +data GetSelectedExtensionEventsReply = MkGetSelectedExtensionEventsReply{num_this_classes_GetSelectedExtensionEventsReply+ :: CARD16,+ num_all_classes_GetSelectedExtensionEventsReply+ :: CARD16,+ this_classes_GetSelectedExtensionEventsReply+ :: [EventClass],+ all_classes_GetSelectedExtensionEventsReply+ :: [EventClass]}+ deriving (Show, Typeable)+ +instance Deserialize GetSelectedExtensionEventsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_this_classes <- deserialize+ num_all_classes <- deserialize+ skip 20+ this_classes <- deserializeList (fromIntegral num_this_classes)+ all_classes <- deserializeList (fromIntegral num_all_classes)+ let _ = isCard32 length+ return+ (MkGetSelectedExtensionEventsReply num_this_classes num_all_classes+ this_classes+ all_classes)+ +data ChangeDeviceDontPropagateList = MkChangeDeviceDontPropagateList{window_ChangeDeviceDontPropagateList+ :: WINDOW,+ num_classes_ChangeDeviceDontPropagateList+ :: CARD16,+ mode_ChangeDeviceDontPropagateList+ :: CARD8,+ classes_ChangeDeviceDontPropagateList+ :: [EventClass]}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeDeviceDontPropagateList where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (window_ChangeDeviceDontPropagateList x) ++ size (num_classes_ChangeDeviceDontPropagateList x)+ + size (mode_ChangeDeviceDontPropagateList x)+ + 1+ + sum (map size (classes_ChangeDeviceDontPropagateList x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_ChangeDeviceDontPropagateList x)+ serialize (num_classes_ChangeDeviceDontPropagateList x)+ serialize (mode_ChangeDeviceDontPropagateList x)+ putSkip 1+ serializeList (classes_ChangeDeviceDontPropagateList x)+ putSkip (requiredPadding size__)+ +data GetDeviceDontPropagateList = MkGetDeviceDontPropagateList{window_GetDeviceDontPropagateList+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceDontPropagateList where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__ = 4 + size (window_GetDeviceDontPropagateList x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetDeviceDontPropagateList x)+ putSkip (requiredPadding size__)+ +data GetDeviceDontPropagateListReply = MkGetDeviceDontPropagateListReply{num_classes_GetDeviceDontPropagateListReply+ :: CARD16,+ classes_GetDeviceDontPropagateListReply+ :: [EventClass]}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceDontPropagateListReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_classes <- deserialize+ skip 22+ classes <- deserializeList (fromIntegral num_classes)+ let _ = isCard32 length+ return (MkGetDeviceDontPropagateListReply num_classes classes)+ +data GetDeviceMotionEvents = MkGetDeviceMotionEvents{start_GetDeviceMotionEvents+ :: TIMESTAMP,+ stop_GetDeviceMotionEvents :: TIMESTAMP,+ device_id_GetDeviceMotionEvents :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceMotionEvents where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__+ = 4 + size (start_GetDeviceMotionEvents x) ++ size (stop_GetDeviceMotionEvents x)+ + size (device_id_GetDeviceMotionEvents x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (start_GetDeviceMotionEvents x)+ serialize (stop_GetDeviceMotionEvents x)+ serialize (device_id_GetDeviceMotionEvents x)+ putSkip (requiredPadding size__)+ +data GetDeviceMotionEventsReply = MkGetDeviceMotionEventsReply{num_coords_GetDeviceMotionEventsReply+ :: CARD32,+ num_axes_GetDeviceMotionEventsReply+ :: CARD8,+ device_mode_GetDeviceMotionEventsReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceMotionEventsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_coords <- deserialize+ num_axes <- deserialize+ device_mode <- deserialize+ skip 18+ let _ = isCard32 length+ return+ (MkGetDeviceMotionEventsReply num_coords num_axes device_mode)+ +data DeviceTimeCoord = MkDeviceTimeCoord{time_DeviceTimeCoord ::+ TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize DeviceTimeCoord where+ serialize x = do serialize (time_DeviceTimeCoord x)+ size x = size (time_DeviceTimeCoord x)+ +instance Deserialize DeviceTimeCoord where+ deserialize+ = do time <- deserialize+ return (MkDeviceTimeCoord time)+ +data ChangeKeyboardDevice = MkChangeKeyboardDevice{device_id_ChangeKeyboardDevice+ :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeKeyboardDevice where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__ = 4 + size (device_id_ChangeKeyboardDevice x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_ChangeKeyboardDevice x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data ChangeKeyboardDeviceReply = MkChangeKeyboardDeviceReply{status_ChangeKeyboardDeviceReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize ChangeKeyboardDeviceReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkChangeKeyboardDeviceReply status)+ +data ChangePointerDevice = MkChangePointerDevice{x_axis_ChangePointerDevice+ :: CARD8,+ y_axis_ChangePointerDevice :: CARD8,+ device_id_ChangePointerDevice :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangePointerDevice where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (x_axis_ChangePointerDevice x) ++ size (y_axis_ChangePointerDevice x)+ + size (device_id_ChangePointerDevice x)+ + 1+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (x_axis_ChangePointerDevice x)+ serialize (y_axis_ChangePointerDevice x)+ serialize (device_id_ChangePointerDevice x)+ putSkip 1+ putSkip (requiredPadding size__)+ +data ChangePointerDeviceReply = MkChangePointerDeviceReply{status_ChangePointerDeviceReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize ChangePointerDeviceReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkChangePointerDeviceReply status)+ +data GrabDevice = MkGrabDevice{grab_window_GrabDevice :: WINDOW,+ time_GrabDevice :: TIMESTAMP, num_classes_GrabDevice :: CARD16,+ this_device_mode_GrabDevice :: CARD8,+ other_device_mode_GrabDevice :: CARD8,+ owner_events_GrabDevice :: BOOL, device_id_GrabDevice :: CARD8,+ classes_GrabDevice :: [EventClass]}+ deriving (Show, Typeable)+ +instance ExtensionRequest GrabDevice where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__+ = 4 + size (grab_window_GrabDevice x) + size (time_GrabDevice x) ++ size (num_classes_GrabDevice x)+ + size (this_device_mode_GrabDevice x)+ + size (other_device_mode_GrabDevice x)+ + size (owner_events_GrabDevice x)+ + size (device_id_GrabDevice x)+ + 2+ + sum (map size (classes_GrabDevice x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (grab_window_GrabDevice x)+ serialize (time_GrabDevice x)+ serialize (num_classes_GrabDevice x)+ serialize (this_device_mode_GrabDevice x)+ serialize (other_device_mode_GrabDevice x)+ serialize (owner_events_GrabDevice x)+ serialize (device_id_GrabDevice x)+ putSkip 2+ serializeList (classes_GrabDevice x)+ putSkip (requiredPadding size__)+ +data GrabDeviceReply = MkGrabDeviceReply{status_GrabDeviceReply ::+ CARD8}+ deriving (Show, Typeable)+ +instance Deserialize GrabDeviceReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkGrabDeviceReply status)+ +data UngrabDevice = MkUngrabDevice{time_UngrabDevice :: TIMESTAMP,+ device_id_UngrabDevice :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest UngrabDevice where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 14+ let size__+ = 4 + size (time_UngrabDevice x) + size (device_id_UngrabDevice x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (time_UngrabDevice x)+ serialize (device_id_UngrabDevice x)+ putSkip (requiredPadding size__)+ +data GrabDeviceKey = MkGrabDeviceKey{grab_window_GrabDeviceKey ::+ WINDOW,+ num_classes_GrabDeviceKey :: CARD16,+ modifiers_GrabDeviceKey :: CARD16,+ modifier_device_GrabDeviceKey :: CARD8,+ grabbed_device_GrabDeviceKey :: CARD8,+ key_GrabDeviceKey :: CARD8,+ this_device_mode_GrabDeviceKey :: CARD8,+ other_device_mode_GrabDeviceKey :: CARD8,+ owner_events_GrabDeviceKey :: BOOL,+ classes_GrabDeviceKey :: [EventClass]}+ deriving (Show, Typeable)+ +instance ExtensionRequest GrabDeviceKey where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 15+ let size__+ = 4 + size (grab_window_GrabDeviceKey x) ++ size (num_classes_GrabDeviceKey x)+ + size (modifiers_GrabDeviceKey x)+ + size (modifier_device_GrabDeviceKey x)+ + size (grabbed_device_GrabDeviceKey x)+ + size (key_GrabDeviceKey x)+ + size (this_device_mode_GrabDeviceKey x)+ + size (other_device_mode_GrabDeviceKey x)+ + size (owner_events_GrabDeviceKey x)+ + 2+ + sum (map size (classes_GrabDeviceKey x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (grab_window_GrabDeviceKey x)+ serialize (num_classes_GrabDeviceKey x)+ serialize (modifiers_GrabDeviceKey x)+ serialize (modifier_device_GrabDeviceKey x)+ serialize (grabbed_device_GrabDeviceKey x)+ serialize (key_GrabDeviceKey x)+ serialize (this_device_mode_GrabDeviceKey x)+ serialize (other_device_mode_GrabDeviceKey x)+ serialize (owner_events_GrabDeviceKey x)+ putSkip 2+ serializeList (classes_GrabDeviceKey x)+ putSkip (requiredPadding size__)+ +data UngrabDeviceKey = MkUngrabDeviceKey{grabWindow_UngrabDeviceKey+ :: WINDOW,+ modifiers_UngrabDeviceKey :: CARD16,+ modifier_device_UngrabDeviceKey :: CARD8,+ key_UngrabDeviceKey :: CARD8,+ grabbed_device_UngrabDeviceKey :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest UngrabDeviceKey where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 16+ let size__+ = 4 + size (grabWindow_UngrabDeviceKey x) ++ size (modifiers_UngrabDeviceKey x)+ + size (modifier_device_UngrabDeviceKey x)+ + size (key_UngrabDeviceKey x)+ + size (grabbed_device_UngrabDeviceKey x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (grabWindow_UngrabDeviceKey x)+ serialize (modifiers_UngrabDeviceKey x)+ serialize (modifier_device_UngrabDeviceKey x)+ serialize (key_UngrabDeviceKey x)+ serialize (grabbed_device_UngrabDeviceKey x)+ putSkip (requiredPadding size__)+ +data GrabDeviceButton = MkGrabDeviceButton{grab_window_GrabDeviceButton+ :: WINDOW,+ grabbed_device_GrabDeviceButton :: CARD8,+ modifier_device_GrabDeviceButton :: CARD8,+ num_classes_GrabDeviceButton :: CARD16,+ modifiers_GrabDeviceButton :: CARD16,+ this_device_mode_GrabDeviceButton :: CARD8,+ other_device_mode_GrabDeviceButton :: CARD8,+ button_GrabDeviceButton :: CARD8,+ owner_events_GrabDeviceButton :: CARD8,+ classes_GrabDeviceButton :: [EventClass]}+ deriving (Show, Typeable)+ +instance ExtensionRequest GrabDeviceButton where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__+ = 4 + size (grab_window_GrabDeviceButton x) ++ size (grabbed_device_GrabDeviceButton x)+ + size (modifier_device_GrabDeviceButton x)+ + size (num_classes_GrabDeviceButton x)+ + size (modifiers_GrabDeviceButton x)+ + size (this_device_mode_GrabDeviceButton x)+ + size (other_device_mode_GrabDeviceButton x)+ + size (button_GrabDeviceButton x)+ + size (owner_events_GrabDeviceButton x)+ + 2+ + sum (map size (classes_GrabDeviceButton x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (grab_window_GrabDeviceButton x)+ serialize (grabbed_device_GrabDeviceButton x)+ serialize (modifier_device_GrabDeviceButton x)+ serialize (num_classes_GrabDeviceButton x)+ serialize (modifiers_GrabDeviceButton x)+ serialize (this_device_mode_GrabDeviceButton x)+ serialize (other_device_mode_GrabDeviceButton x)+ serialize (button_GrabDeviceButton x)+ serialize (owner_events_GrabDeviceButton x)+ putSkip 2+ serializeList (classes_GrabDeviceButton x)+ putSkip (requiredPadding size__)+ +data UngrabDeviceButton = MkUngrabDeviceButton{grab_window_UngrabDeviceButton+ :: WINDOW,+ modifiers_UngrabDeviceButton :: CARD16,+ modifier_device_UngrabDeviceButton :: CARD8,+ button_UngrabDeviceButton :: CARD8,+ grabbed_device_UngrabDeviceButton :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest UngrabDeviceButton where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__+ = 4 + size (grab_window_UngrabDeviceButton x) ++ size (modifiers_UngrabDeviceButton x)+ + size (modifier_device_UngrabDeviceButton x)+ + size (button_UngrabDeviceButton x)+ + size (grabbed_device_UngrabDeviceButton x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (grab_window_UngrabDeviceButton x)+ serialize (modifiers_UngrabDeviceButton x)+ serialize (modifier_device_UngrabDeviceButton x)+ serialize (button_UngrabDeviceButton x)+ serialize (grabbed_device_UngrabDeviceButton x)+ putSkip (requiredPadding size__)+ +data AllowDeviceEvents = MkAllowDeviceEvents{time_AllowDeviceEvents+ :: TIMESTAMP,+ mode_AllowDeviceEvents :: CARD8,+ device_id_AllowDeviceEvents :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest AllowDeviceEvents where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__+ = 4 + size (time_AllowDeviceEvents x) ++ size (mode_AllowDeviceEvents x)+ + size (device_id_AllowDeviceEvents x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (time_AllowDeviceEvents x)+ serialize (mode_AllowDeviceEvents x)+ serialize (device_id_AllowDeviceEvents x)+ putSkip (requiredPadding size__)+ +data GetDeviceFocus = MkGetDeviceFocus{device_id_GetDeviceFocus ::+ CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceFocus where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 20+ let size__ = 4 + size (device_id_GetDeviceFocus x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_GetDeviceFocus x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data GetDeviceFocusReply = MkGetDeviceFocusReply{focus_GetDeviceFocusReply+ :: WINDOW,+ time_GetDeviceFocusReply :: TIMESTAMP,+ revert_to_GetDeviceFocusReply :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceFocusReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ focus <- deserialize+ time <- deserialize+ revert_to <- deserialize+ skip 15+ let _ = isCard32 length+ return (MkGetDeviceFocusReply focus time revert_to)+ +data SetDeviceFocus = MkSetDeviceFocus{focus_SetDeviceFocus ::+ WINDOW,+ time_SetDeviceFocus :: TIMESTAMP,+ revert_to_SetDeviceFocus :: CARD8,+ device_id_SetDeviceFocus :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetDeviceFocus where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 21+ let size__+ = 4 + size (focus_SetDeviceFocus x) + size (time_SetDeviceFocus x)+ + size (revert_to_SetDeviceFocus x)+ + size (device_id_SetDeviceFocus x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (focus_SetDeviceFocus x)+ serialize (time_SetDeviceFocus x)+ serialize (revert_to_SetDeviceFocus x)+ serialize (device_id_SetDeviceFocus x)+ putSkip (requiredPadding size__)+ +data GetFeedbackControl = MkGetFeedbackControl{device_id_GetFeedbackControl+ :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetFeedbackControl where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 22+ let size__ = 4 + size (device_id_GetFeedbackControl x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_GetFeedbackControl x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data GetFeedbackControlReply = MkGetFeedbackControlReply{num_feedback_GetFeedbackControlReply+ :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetFeedbackControlReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_feedback <- deserialize+ skip 22+ let _ = isCard32 length+ return (MkGetFeedbackControlReply num_feedback)+ +data FeedbackState = MkFeedbackState{class_id_FeedbackState ::+ CARD8,+ id_FeedbackState :: CARD8, len_FeedbackState :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize FeedbackState where+ serialize x+ = do serialize (class_id_FeedbackState x)+ serialize (id_FeedbackState x)+ serialize (len_FeedbackState x)+ size x+ = size (class_id_FeedbackState x) + size (id_FeedbackState x) ++ size (len_FeedbackState x)+ +instance Deserialize FeedbackState where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ return (MkFeedbackState class_id id len)+ +data KbdFeedbackState = MkKbdFeedbackState{class_id_KbdFeedbackState+ :: CARD8,+ id_KbdFeedbackState :: CARD8,+ len_KbdFeedbackState :: CARD16,+ pitch_KbdFeedbackState :: CARD16,+ duration_KbdFeedbackState :: CARD16,+ led_mask_KbdFeedbackState :: CARD32,+ led_values_KbdFeedbackState :: CARD32,+ global_auto_repeat_KbdFeedbackState :: BOOL,+ click_KbdFeedbackState :: CARD8,+ percent_KbdFeedbackState :: CARD8,+ auto_repeats_KbdFeedbackState :: [CARD8]}+ deriving (Show, Typeable)+ +instance Serialize KbdFeedbackState where+ serialize x+ = do serialize (class_id_KbdFeedbackState x)+ serialize (id_KbdFeedbackState x)+ serialize (len_KbdFeedbackState x)+ serialize (pitch_KbdFeedbackState x)+ serialize (duration_KbdFeedbackState x)+ serialize (led_mask_KbdFeedbackState x)+ serialize (led_values_KbdFeedbackState x)+ serialize (global_auto_repeat_KbdFeedbackState x)+ serialize (click_KbdFeedbackState x)+ serialize (percent_KbdFeedbackState x)+ putSkip 1+ serializeList (auto_repeats_KbdFeedbackState x)+ size x+ = size (class_id_KbdFeedbackState x) + size (id_KbdFeedbackState x)+ + size (len_KbdFeedbackState x)+ + size (pitch_KbdFeedbackState x)+ + size (duration_KbdFeedbackState x)+ + size (led_mask_KbdFeedbackState x)+ + size (led_values_KbdFeedbackState x)+ + size (global_auto_repeat_KbdFeedbackState x)+ + size (click_KbdFeedbackState x)+ + size (percent_KbdFeedbackState x)+ + 1+ + sum (map size (auto_repeats_KbdFeedbackState x))+ +instance Deserialize KbdFeedbackState where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ pitch <- deserialize+ duration <- deserialize+ led_mask <- deserialize+ led_values <- deserialize+ global_auto_repeat <- deserialize+ click <- deserialize+ percent <- deserialize+ skip 1+ auto_repeats <- deserializeList (fromIntegral 32)+ return+ (MkKbdFeedbackState class_id id len pitch duration led_mask+ led_values+ global_auto_repeat+ click+ percent+ auto_repeats)+ +data PtrFeedbackState = MkPtrFeedbackState{class_id_PtrFeedbackState+ :: CARD8,+ id_PtrFeedbackState :: CARD8,+ len_PtrFeedbackState :: CARD16,+ accel_num_PtrFeedbackState :: CARD16,+ accel_denom_PtrFeedbackState :: CARD16,+ threshold_PtrFeedbackState :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize PtrFeedbackState where+ serialize x+ = do serialize (class_id_PtrFeedbackState x)+ serialize (id_PtrFeedbackState x)+ serialize (len_PtrFeedbackState x)+ putSkip 2+ serialize (accel_num_PtrFeedbackState x)+ serialize (accel_denom_PtrFeedbackState x)+ serialize (threshold_PtrFeedbackState x)+ size x+ = size (class_id_PtrFeedbackState x) + size (id_PtrFeedbackState x)+ + size (len_PtrFeedbackState x)+ + 2+ + size (accel_num_PtrFeedbackState x)+ + size (accel_denom_PtrFeedbackState x)+ + size (threshold_PtrFeedbackState x)+ +instance Deserialize PtrFeedbackState where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ skip 2+ accel_num <- deserialize+ accel_denom <- deserialize+ threshold <- deserialize+ return+ (MkPtrFeedbackState class_id id len accel_num accel_denom+ threshold)+ +data IntegerFeedbackState = MkIntegerFeedbackState{class_id_IntegerFeedbackState+ :: CARD8,+ id_IntegerFeedbackState :: CARD8,+ len_IntegerFeedbackState :: CARD16,+ resolution_IntegerFeedbackState :: CARD32,+ min_value_IntegerFeedbackState :: INT32,+ max_value_IntegerFeedbackState :: INT32}+ deriving (Show, Typeable)+ +instance Serialize IntegerFeedbackState where+ serialize x+ = do serialize (class_id_IntegerFeedbackState x)+ serialize (id_IntegerFeedbackState x)+ serialize (len_IntegerFeedbackState x)+ serialize (resolution_IntegerFeedbackState x)+ serialize (min_value_IntegerFeedbackState x)+ serialize (max_value_IntegerFeedbackState x)+ size x+ = size (class_id_IntegerFeedbackState x) ++ size (id_IntegerFeedbackState x)+ + size (len_IntegerFeedbackState x)+ + size (resolution_IntegerFeedbackState x)+ + size (min_value_IntegerFeedbackState x)+ + size (max_value_IntegerFeedbackState x)+ +instance Deserialize IntegerFeedbackState where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ resolution <- deserialize+ min_value <- deserialize+ max_value <- deserialize+ return+ (MkIntegerFeedbackState class_id id len resolution min_value+ max_value)+ +data StringFeedbackState = MkStringFeedbackState{class_id_StringFeedbackState+ :: CARD8,+ id_StringFeedbackState :: CARD8,+ len_StringFeedbackState :: CARD16,+ max_symbols_StringFeedbackState :: CARD16,+ num_keysyms_StringFeedbackState :: CARD16,+ keysyms_StringFeedbackState :: [KEYSYM]}+ deriving (Show, Typeable)+ +instance Serialize StringFeedbackState where+ serialize x+ = do serialize (class_id_StringFeedbackState x)+ serialize (id_StringFeedbackState x)+ serialize (len_StringFeedbackState x)+ serialize (max_symbols_StringFeedbackState x)+ serialize (num_keysyms_StringFeedbackState x)+ serializeList (keysyms_StringFeedbackState x)+ size x+ = size (class_id_StringFeedbackState x) ++ size (id_StringFeedbackState x)+ + size (len_StringFeedbackState x)+ + size (max_symbols_StringFeedbackState x)+ + size (num_keysyms_StringFeedbackState x)+ + sum (map size (keysyms_StringFeedbackState x))+ +instance Deserialize StringFeedbackState where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ max_symbols <- deserialize+ num_keysyms <- deserialize+ keysyms <- deserializeList (fromIntegral num_keysyms)+ return+ (MkStringFeedbackState class_id id len max_symbols num_keysyms+ keysyms)+ +data BellFeedbackState = MkBellFeedbackState{class_id_BellFeedbackState+ :: CARD8,+ id_BellFeedbackState :: CARD8,+ len_BellFeedbackState :: CARD16,+ percent_BellFeedbackState :: CARD8,+ pitch_BellFeedbackState :: CARD16,+ duration_BellFeedbackState :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize BellFeedbackState where+ serialize x+ = do serialize (class_id_BellFeedbackState x)+ serialize (id_BellFeedbackState x)+ serialize (len_BellFeedbackState x)+ serialize (percent_BellFeedbackState x)+ putSkip 3+ serialize (pitch_BellFeedbackState x)+ serialize (duration_BellFeedbackState x)+ size x+ = size (class_id_BellFeedbackState x) ++ size (id_BellFeedbackState x)+ + size (len_BellFeedbackState x)+ + size (percent_BellFeedbackState x)+ + 3+ + size (pitch_BellFeedbackState x)+ + size (duration_BellFeedbackState x)+ +instance Deserialize BellFeedbackState where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ percent <- deserialize+ skip 3+ pitch <- deserialize+ duration <- deserialize+ return (MkBellFeedbackState class_id id len percent pitch duration)+ +data LedFeedbackState = MkLedFeedbackState{class_id_LedFeedbackState+ :: CARD8,+ id_LedFeedbackState :: CARD8,+ len_LedFeedbackState :: CARD16,+ led_mask_LedFeedbackState :: CARD32,+ led_values_LedFeedbackState :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize LedFeedbackState where+ serialize x+ = do serialize (class_id_LedFeedbackState x)+ serialize (id_LedFeedbackState x)+ serialize (len_LedFeedbackState x)+ serialize (led_mask_LedFeedbackState x)+ serialize (led_values_LedFeedbackState x)+ size x+ = size (class_id_LedFeedbackState x) + size (id_LedFeedbackState x)+ + size (len_LedFeedbackState x)+ + size (led_mask_LedFeedbackState x)+ + size (led_values_LedFeedbackState x)+ +instance Deserialize LedFeedbackState where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ led_mask <- deserialize+ led_values <- deserialize+ return (MkLedFeedbackState class_id id len led_mask led_values)+ +data FeedbackCtl = MkFeedbackCtl{class_id_FeedbackCtl :: CARD8,+ id_FeedbackCtl :: CARD8, len_FeedbackCtl :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize FeedbackCtl where+ serialize x+ = do serialize (class_id_FeedbackCtl x)+ serialize (id_FeedbackCtl x)+ serialize (len_FeedbackCtl x)+ size x+ = size (class_id_FeedbackCtl x) + size (id_FeedbackCtl x) ++ size (len_FeedbackCtl x)+ +instance Deserialize FeedbackCtl where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ return (MkFeedbackCtl class_id id len)+ +data KbdFeedbackCtl = MkKbdFeedbackCtl{class_id_KbdFeedbackCtl ::+ CARD8,+ id_KbdFeedbackCtl :: CARD8, len_KbdFeedbackCtl :: CARD16,+ key_KbdFeedbackCtl :: KeyCode,+ auto_repeat_mode_KbdFeedbackCtl :: CARD8,+ key_click_percent_KbdFeedbackCtl :: INT8,+ bell_percent_KbdFeedbackCtl :: INT8,+ bell_pitch_KbdFeedbackCtl :: INT16,+ bell_duration_KbdFeedbackCtl :: INT16,+ led_mask_KbdFeedbackCtl :: CARD32,+ led_values_KbdFeedbackCtl :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize KbdFeedbackCtl where+ serialize x+ = do serialize (class_id_KbdFeedbackCtl x)+ serialize (id_KbdFeedbackCtl x)+ serialize (len_KbdFeedbackCtl x)+ serialize (key_KbdFeedbackCtl x)+ serialize (auto_repeat_mode_KbdFeedbackCtl x)+ serialize (key_click_percent_KbdFeedbackCtl x)+ serialize (bell_percent_KbdFeedbackCtl x)+ serialize (bell_pitch_KbdFeedbackCtl x)+ serialize (bell_duration_KbdFeedbackCtl x)+ serialize (led_mask_KbdFeedbackCtl x)+ serialize (led_values_KbdFeedbackCtl x)+ size x+ = size (class_id_KbdFeedbackCtl x) + size (id_KbdFeedbackCtl x) ++ size (len_KbdFeedbackCtl x)+ + size (key_KbdFeedbackCtl x)+ + size (auto_repeat_mode_KbdFeedbackCtl x)+ + size (key_click_percent_KbdFeedbackCtl x)+ + size (bell_percent_KbdFeedbackCtl x)+ + size (bell_pitch_KbdFeedbackCtl x)+ + size (bell_duration_KbdFeedbackCtl x)+ + size (led_mask_KbdFeedbackCtl x)+ + size (led_values_KbdFeedbackCtl x)+ +instance Deserialize KbdFeedbackCtl where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ key <- deserialize+ auto_repeat_mode <- deserialize+ key_click_percent <- deserialize+ bell_percent <- deserialize+ bell_pitch <- deserialize+ bell_duration <- deserialize+ led_mask <- deserialize+ led_values <- deserialize+ return+ (MkKbdFeedbackCtl class_id id len key auto_repeat_mode+ key_click_percent+ bell_percent+ bell_pitch+ bell_duration+ led_mask+ led_values)+ +data PtrFeedbackCtl = MkPtrFeedbackCtl{class_id_PtrFeedbackCtl ::+ CARD8,+ id_PtrFeedbackCtl :: CARD8, len_PtrFeedbackCtl :: CARD16,+ num_PtrFeedbackCtl :: INT16, denom_PtrFeedbackCtl :: INT16,+ threshold_PtrFeedbackCtl :: INT16}+ deriving (Show, Typeable)+ +instance Serialize PtrFeedbackCtl where+ serialize x+ = do serialize (class_id_PtrFeedbackCtl x)+ serialize (id_PtrFeedbackCtl x)+ serialize (len_PtrFeedbackCtl x)+ putSkip 2+ serialize (num_PtrFeedbackCtl x)+ serialize (denom_PtrFeedbackCtl x)+ serialize (threshold_PtrFeedbackCtl x)+ size x+ = size (class_id_PtrFeedbackCtl x) + size (id_PtrFeedbackCtl x) ++ size (len_PtrFeedbackCtl x)+ + 2+ + size (num_PtrFeedbackCtl x)+ + size (denom_PtrFeedbackCtl x)+ + size (threshold_PtrFeedbackCtl x)+ +instance Deserialize PtrFeedbackCtl where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ skip 2+ num <- deserialize+ denom <- deserialize+ threshold <- deserialize+ return (MkPtrFeedbackCtl class_id id len num denom threshold)+ +data IntegerFeedbackCtl = MkIntegerFeedbackCtl{class_id_IntegerFeedbackCtl+ :: CARD8,+ id_IntegerFeedbackCtl :: CARD8,+ len_IntegerFeedbackCtl :: CARD16,+ int_to_display_IntegerFeedbackCtl :: INT32}+ deriving (Show, Typeable)+ +instance Serialize IntegerFeedbackCtl where+ serialize x+ = do serialize (class_id_IntegerFeedbackCtl x)+ serialize (id_IntegerFeedbackCtl x)+ serialize (len_IntegerFeedbackCtl x)+ serialize (int_to_display_IntegerFeedbackCtl x)+ size x+ = size (class_id_IntegerFeedbackCtl x) ++ size (id_IntegerFeedbackCtl x)+ + size (len_IntegerFeedbackCtl x)+ + size (int_to_display_IntegerFeedbackCtl x)+ +instance Deserialize IntegerFeedbackCtl where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ int_to_display <- deserialize+ return (MkIntegerFeedbackCtl class_id id len int_to_display)+ +data StringFeedbackCtl = MkStringFeedbackCtl{class_id_StringFeedbackCtl+ :: CARD8,+ id_StringFeedbackCtl :: CARD8,+ len_StringFeedbackCtl :: CARD16,+ num_keysyms_StringFeedbackCtl :: CARD16,+ keysyms_StringFeedbackCtl :: [KEYSYM]}+ deriving (Show, Typeable)+ +instance Serialize StringFeedbackCtl where+ serialize x+ = do serialize (class_id_StringFeedbackCtl x)+ serialize (id_StringFeedbackCtl x)+ serialize (len_StringFeedbackCtl x)+ putSkip 2+ serialize (num_keysyms_StringFeedbackCtl x)+ serializeList (keysyms_StringFeedbackCtl x)+ size x+ = size (class_id_StringFeedbackCtl x) ++ size (id_StringFeedbackCtl x)+ + size (len_StringFeedbackCtl x)+ + 2+ + size (num_keysyms_StringFeedbackCtl x)+ + sum (map size (keysyms_StringFeedbackCtl x))+ +instance Deserialize StringFeedbackCtl where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ skip 2+ num_keysyms <- deserialize+ keysyms <- deserializeList (fromIntegral num_keysyms)+ return (MkStringFeedbackCtl class_id id len num_keysyms keysyms)+ +data BellFeedbackCtl = MkBellFeedbackCtl{class_id_BellFeedbackCtl+ :: CARD8,+ id_BellFeedbackCtl :: CARD8, len_BellFeedbackCtl :: CARD16,+ percent_BellFeedbackCtl :: INT8,+ pitch_BellFeedbackCtl :: INT16,+ duration_BellFeedbackCtl :: INT16}+ deriving (Show, Typeable)+ +instance Serialize BellFeedbackCtl where+ serialize x+ = do serialize (class_id_BellFeedbackCtl x)+ serialize (id_BellFeedbackCtl x)+ serialize (len_BellFeedbackCtl x)+ serialize (percent_BellFeedbackCtl x)+ putSkip 3+ serialize (pitch_BellFeedbackCtl x)+ serialize (duration_BellFeedbackCtl x)+ size x+ = size (class_id_BellFeedbackCtl x) + size (id_BellFeedbackCtl x) ++ size (len_BellFeedbackCtl x)+ + size (percent_BellFeedbackCtl x)+ + 3+ + size (pitch_BellFeedbackCtl x)+ + size (duration_BellFeedbackCtl x)+ +instance Deserialize BellFeedbackCtl where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ percent <- deserialize+ skip 3+ pitch <- deserialize+ duration <- deserialize+ return (MkBellFeedbackCtl class_id id len percent pitch duration)+ +data LedFeedbackCtl = MkLedFeedbackCtl{class_id_LedFeedbackCtl ::+ CARD8,+ id_LedFeedbackCtl :: CARD8, len_LedFeedbackCtl :: CARD16,+ led_mask_LedFeedbackCtl :: CARD32,+ led_values_LedFeedbackCtl :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize LedFeedbackCtl where+ serialize x+ = do serialize (class_id_LedFeedbackCtl x)+ serialize (id_LedFeedbackCtl x)+ serialize (len_LedFeedbackCtl x)+ serialize (led_mask_LedFeedbackCtl x)+ serialize (led_values_LedFeedbackCtl x)+ size x+ = size (class_id_LedFeedbackCtl x) + size (id_LedFeedbackCtl x) ++ size (len_LedFeedbackCtl x)+ + size (led_mask_LedFeedbackCtl x)+ + size (led_values_LedFeedbackCtl x)+ +instance Deserialize LedFeedbackCtl where+ deserialize+ = do class_id <- deserialize+ id <- deserialize+ len <- deserialize+ led_mask <- deserialize+ led_values <- deserialize+ return (MkLedFeedbackCtl class_id id len led_mask led_values)+ +data GetDeviceKeyMapping = MkGetDeviceKeyMapping{device_id_GetDeviceKeyMapping+ :: CARD8,+ first_keycode_GetDeviceKeyMapping :: KeyCode,+ count_GetDeviceKeyMapping :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceKeyMapping where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 24+ let size__+ = 4 + size (device_id_GetDeviceKeyMapping x) ++ size (first_keycode_GetDeviceKeyMapping x)+ + size (count_GetDeviceKeyMapping x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_GetDeviceKeyMapping x)+ serialize (first_keycode_GetDeviceKeyMapping x)+ serialize (count_GetDeviceKeyMapping x)+ putSkip (requiredPadding size__)+ +data GetDeviceKeyMappingReply = MkGetDeviceKeyMappingReply{keysyms_per_keycode_GetDeviceKeyMappingReply+ :: CARD8,+ keysyms_GetDeviceKeyMappingReply ::+ [KEYSYM]}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceKeyMappingReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ keysyms_per_keycode <- deserialize+ skip 23+ keysyms <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return (MkGetDeviceKeyMappingReply keysyms_per_keycode keysyms)+ +data ChangeDeviceKeyMapping = MkChangeDeviceKeyMapping{device_id_ChangeDeviceKeyMapping+ :: CARD8,+ first_keycode_ChangeDeviceKeyMapping ::+ KeyCode,+ keysyms_per_keycode_ChangeDeviceKeyMapping ::+ CARD8,+ keycode_count_ChangeDeviceKeyMapping ::+ CARD8,+ keysyms_ChangeDeviceKeyMapping :: [KEYSYM]}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeDeviceKeyMapping where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 25+ let size__+ = 4 + size (device_id_ChangeDeviceKeyMapping x) ++ size (first_keycode_ChangeDeviceKeyMapping x)+ + size (keysyms_per_keycode_ChangeDeviceKeyMapping x)+ + size (keycode_count_ChangeDeviceKeyMapping x)+ + sum (map size (keysyms_ChangeDeviceKeyMapping x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_ChangeDeviceKeyMapping x)+ serialize (first_keycode_ChangeDeviceKeyMapping x)+ serialize (keysyms_per_keycode_ChangeDeviceKeyMapping x)+ serialize (keycode_count_ChangeDeviceKeyMapping x)+ serializeList (keysyms_ChangeDeviceKeyMapping x)+ putSkip (requiredPadding size__)+ +data GetDeviceModifierMapping = MkGetDeviceModifierMapping{device_id_GetDeviceModifierMapping+ :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceModifierMapping where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 26+ let size__ = 4 + size (device_id_GetDeviceModifierMapping x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_GetDeviceModifierMapping x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data GetDeviceModifierMappingReply = MkGetDeviceModifierMappingReply{keycodes_per_modifier_GetDeviceModifierMappingReply+ :: CARD8,+ keymaps_GetDeviceModifierMappingReply+ :: [CARD8]}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceModifierMappingReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ keycodes_per_modifier <- deserialize+ skip 23+ keymaps <- deserializeList+ (fromIntegral (fromIntegral (keycodes_per_modifier * 8)))+ let _ = isCard32 length+ return+ (MkGetDeviceModifierMappingReply keycodes_per_modifier keymaps)+ +data SetDeviceModifierMapping = MkSetDeviceModifierMapping{device_id_SetDeviceModifierMapping+ :: CARD8,+ keycodes_per_modifier_SetDeviceModifierMapping+ :: CARD8,+ keymaps_SetDeviceModifierMapping ::+ [CARD8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetDeviceModifierMapping where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 27+ let size__+ = 4 + size (device_id_SetDeviceModifierMapping x) ++ size (keycodes_per_modifier_SetDeviceModifierMapping x)+ + 1+ + sum (map size (keymaps_SetDeviceModifierMapping x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_SetDeviceModifierMapping x)+ serialize (keycodes_per_modifier_SetDeviceModifierMapping x)+ putSkip 1+ serializeList (keymaps_SetDeviceModifierMapping x)+ putSkip (requiredPadding size__)+ +data SetDeviceModifierMappingReply = MkSetDeviceModifierMappingReply{status_SetDeviceModifierMappingReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize SetDeviceModifierMappingReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkSetDeviceModifierMappingReply status)+ +data GetDeviceButtonMapping = MkGetDeviceButtonMapping{device_id_GetDeviceButtonMapping+ :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceButtonMapping where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 28+ let size__ = 4 + size (device_id_GetDeviceButtonMapping x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_GetDeviceButtonMapping x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data GetDeviceButtonMappingReply = MkGetDeviceButtonMappingReply{map_size_GetDeviceButtonMappingReply+ :: CARD8,+ map_GetDeviceButtonMappingReply ::+ [CARD8]}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceButtonMappingReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ map_size <- deserialize+ skip 23+ map <- deserializeList (fromIntegral map_size)+ let _ = isCard32 length+ return (MkGetDeviceButtonMappingReply map_size map)+ +data SetDeviceButtonMapping = MkSetDeviceButtonMapping{device_id_SetDeviceButtonMapping+ :: CARD8,+ map_size_SetDeviceButtonMapping :: CARD8,+ map_SetDeviceButtonMapping :: [CARD8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetDeviceButtonMapping where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 29+ let size__+ = 4 + size (device_id_SetDeviceButtonMapping x) ++ size (map_size_SetDeviceButtonMapping x)+ + 2+ + sum (map size (map_SetDeviceButtonMapping x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_SetDeviceButtonMapping x)+ serialize (map_size_SetDeviceButtonMapping x)+ putSkip 2+ serializeList (map_SetDeviceButtonMapping x)+ putSkip (requiredPadding size__)+ +data SetDeviceButtonMappingReply = MkSetDeviceButtonMappingReply{status_SetDeviceButtonMappingReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize SetDeviceButtonMappingReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkSetDeviceButtonMappingReply status)+ +data QueryDeviceState = MkQueryDeviceState{device_id_QueryDeviceState+ :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryDeviceState where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 30+ let size__ = 4 + size (device_id_QueryDeviceState x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_QueryDeviceState x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data QueryDeviceStateReply = MkQueryDeviceStateReply{num_classes_QueryDeviceStateReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize QueryDeviceStateReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_classes <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkQueryDeviceStateReply num_classes)+ +data InputState = MkInputState{class_id_InputState :: CARD8,+ len_InputState :: CARD8, num_items_InputState :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize InputState where+ serialize x+ = do serialize (class_id_InputState x)+ serialize (len_InputState x)+ serialize (num_items_InputState x)+ size x+ = size (class_id_InputState x) + size (len_InputState x) ++ size (num_items_InputState x)+ +instance Deserialize InputState where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ num_items <- deserialize+ return (MkInputState class_id len num_items)+ +data KeyState = MkKeyState{class_id_KeyState :: CARD8,+ len_KeyState :: CARD8, num_keys_KeyState :: CARD8,+ keys_KeyState :: [CARD8]}+ deriving (Show, Typeable)+ +instance Serialize KeyState where+ serialize x+ = do serialize (class_id_KeyState x)+ serialize (len_KeyState x)+ serialize (num_keys_KeyState x)+ putSkip 1+ serializeList (keys_KeyState x)+ size x+ = size (class_id_KeyState x) + size (len_KeyState x) ++ size (num_keys_KeyState x)+ + 1+ + sum (map size (keys_KeyState x))+ +instance Deserialize KeyState where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ num_keys <- deserialize+ skip 1+ keys <- deserializeList (fromIntegral 32)+ return (MkKeyState class_id len num_keys keys)+ +data ButtonState = MkButtonState{class_id_ButtonState :: CARD8,+ len_ButtonState :: CARD8, num_buttons_ButtonState :: CARD8,+ buttons_ButtonState :: [CARD8]}+ deriving (Show, Typeable)+ +instance Serialize ButtonState where+ serialize x+ = do serialize (class_id_ButtonState x)+ serialize (len_ButtonState x)+ serialize (num_buttons_ButtonState x)+ putSkip 1+ serializeList (buttons_ButtonState x)+ size x+ = size (class_id_ButtonState x) + size (len_ButtonState x) ++ size (num_buttons_ButtonState x)+ + 1+ + sum (map size (buttons_ButtonState x))+ +instance Deserialize ButtonState where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ num_buttons <- deserialize+ skip 1+ buttons <- deserializeList (fromIntegral 32)+ return (MkButtonState class_id len num_buttons buttons)+ +data ValuatorState = MkValuatorState{class_id_ValuatorState ::+ CARD8,+ len_ValuatorState :: CARD8,+ num_valuators_ValuatorState :: CARD8,+ mode_ValuatorState :: CARD8,+ valuators_ValuatorState :: [CARD32]}+ deriving (Show, Typeable)+ +instance Serialize ValuatorState where+ serialize x+ = do serialize (class_id_ValuatorState x)+ serialize (len_ValuatorState x)+ serialize (num_valuators_ValuatorState x)+ serialize (mode_ValuatorState x)+ serializeList (valuators_ValuatorState x)+ size x+ = size (class_id_ValuatorState x) + size (len_ValuatorState x) ++ size (num_valuators_ValuatorState x)+ + size (mode_ValuatorState x)+ + sum (map size (valuators_ValuatorState x))+ +instance Deserialize ValuatorState where+ deserialize+ = do class_id <- deserialize+ len <- deserialize+ num_valuators <- deserialize+ mode <- deserialize+ valuators <- deserializeList (fromIntegral num_valuators)+ return (MkValuatorState class_id len num_valuators mode valuators)+ +data SendExtensionEvent = MkSendExtensionEvent{destination_SendExtensionEvent+ :: WINDOW,+ device_id_SendExtensionEvent :: CARD8,+ propagate_SendExtensionEvent :: BOOL,+ num_classes_SendExtensionEvent :: CARD16,+ num_events_SendExtensionEvent :: CARD8,+ events_SendExtensionEvent :: [CChar],+ classes_SendExtensionEvent :: [EventClass]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SendExtensionEvent where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 31+ let size__+ = 4 + size (destination_SendExtensionEvent x) ++ size (device_id_SendExtensionEvent x)+ + size (propagate_SendExtensionEvent x)+ + size (num_classes_SendExtensionEvent x)+ + size (num_events_SendExtensionEvent x)+ + 3+ + sum (map size (events_SendExtensionEvent x))+ + sum (map size (classes_SendExtensionEvent x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (destination_SendExtensionEvent x)+ serialize (device_id_SendExtensionEvent x)+ serialize (propagate_SendExtensionEvent x)+ serialize (num_classes_SendExtensionEvent x)+ serialize (num_events_SendExtensionEvent x)+ putSkip 3+ serializeList (events_SendExtensionEvent x)+ serializeList (classes_SendExtensionEvent x)+ putSkip (requiredPadding size__)+ +data DeviceBell = MkDeviceBell{device_id_DeviceBell :: CARD8,+ feedback_id_DeviceBell :: CARD8,+ feedback_class_DeviceBell :: CARD8, percent_DeviceBell :: INT8}+ deriving (Show, Typeable)+ +instance ExtensionRequest DeviceBell where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 32+ let size__+ = 4 + size (device_id_DeviceBell x) ++ size (feedback_id_DeviceBell x)+ + size (feedback_class_DeviceBell x)+ + size (percent_DeviceBell x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_DeviceBell x)+ serialize (feedback_id_DeviceBell x)+ serialize (feedback_class_DeviceBell x)+ serialize (percent_DeviceBell x)+ putSkip (requiredPadding size__)+ +data SetDeviceValuators = MkSetDeviceValuators{device_id_SetDeviceValuators+ :: CARD8,+ first_valuator_SetDeviceValuators :: CARD8,+ num_valuators_SetDeviceValuators :: CARD8,+ valuators_SetDeviceValuators :: [INT32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetDeviceValuators where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 33+ let size__+ = 4 + size (device_id_SetDeviceValuators x) ++ size (first_valuator_SetDeviceValuators x)+ + size (num_valuators_SetDeviceValuators x)+ + 1+ + sum (map size (valuators_SetDeviceValuators x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_id_SetDeviceValuators x)+ serialize (first_valuator_SetDeviceValuators x)+ serialize (num_valuators_SetDeviceValuators x)+ putSkip 1+ serializeList (valuators_SetDeviceValuators x)+ putSkip (requiredPadding size__)+ +data SetDeviceValuatorsReply = MkSetDeviceValuatorsReply{status_SetDeviceValuatorsReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize SetDeviceValuatorsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkSetDeviceValuatorsReply status)+ +data GetDeviceControl = MkGetDeviceControl{control_id_GetDeviceControl+ :: CARD16,+ device_id_GetDeviceControl :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceControl where+ extensionId _ = "XInputExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 34+ let size__+ = 4 + size (control_id_GetDeviceControl x) ++ size (device_id_GetDeviceControl x)+ + 1+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (control_id_GetDeviceControl x)+ serialize (device_id_GetDeviceControl x)+ putSkip 1+ putSkip (requiredPadding size__)+ +data GetDeviceControlReply = MkGetDeviceControlReply{status_GetDeviceControlReply+ :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceControlReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status <- deserialize+ skip 23+ let _ = isCard32 length+ return (MkGetDeviceControlReply status)+ +data DeviceState = MkDeviceState{control_id_DeviceState :: CARD16,+ len_DeviceState :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize DeviceState where+ serialize x+ = do serialize (control_id_DeviceState x)+ serialize (len_DeviceState x)+ size x = size (control_id_DeviceState x) + size (len_DeviceState x)+ +instance Deserialize DeviceState where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ return (MkDeviceState control_id len)+ +data DeviceResolutionState = MkDeviceResolutionState{control_id_DeviceResolutionState+ :: CARD16,+ len_DeviceResolutionState :: CARD16,+ num_valuators_DeviceResolutionState :: CARD32,+ resolution_values_DeviceResolutionState ::+ [CARD32],+ resolution_min_DeviceResolutionState ::+ [CARD32],+ resolution_max_DeviceResolutionState ::+ [CARD32]}+ deriving (Show, Typeable)+ +instance Serialize DeviceResolutionState where+ serialize x+ = do serialize (control_id_DeviceResolutionState x)+ serialize (len_DeviceResolutionState x)+ serialize (num_valuators_DeviceResolutionState x)+ serializeList (resolution_values_DeviceResolutionState x)+ serializeList (resolution_min_DeviceResolutionState x)+ serializeList (resolution_max_DeviceResolutionState x)+ size x+ = size (control_id_DeviceResolutionState x) ++ size (len_DeviceResolutionState x)+ + size (num_valuators_DeviceResolutionState x)+ + sum (map size (resolution_values_DeviceResolutionState x))+ + sum (map size (resolution_min_DeviceResolutionState x))+ + sum (map size (resolution_max_DeviceResolutionState x))+ +instance Deserialize DeviceResolutionState where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ num_valuators <- deserialize+ resolution_values <- deserializeList (fromIntegral num_valuators)+ resolution_min <- deserializeList (fromIntegral num_valuators)+ resolution_max <- deserializeList (fromIntegral num_valuators)+ return+ (MkDeviceResolutionState control_id len num_valuators+ resolution_values+ resolution_min+ resolution_max)+ +data DeviceAbsCalibState = MkDeviceAbsCalibState{control_id_DeviceAbsCalibState+ :: CARD16,+ len_DeviceAbsCalibState :: CARD16,+ min_x_DeviceAbsCalibState :: INT32,+ max_x_DeviceAbsCalibState :: INT32,+ min_y_DeviceAbsCalibState :: INT32,+ max_y_DeviceAbsCalibState :: INT32,+ flip_x_DeviceAbsCalibState :: CARD32,+ flip_y_DeviceAbsCalibState :: CARD32,+ rotation_DeviceAbsCalibState :: CARD32,+ button_threshold_DeviceAbsCalibState :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize DeviceAbsCalibState where+ serialize x+ = do serialize (control_id_DeviceAbsCalibState x)+ serialize (len_DeviceAbsCalibState x)+ serialize (min_x_DeviceAbsCalibState x)+ serialize (max_x_DeviceAbsCalibState x)+ serialize (min_y_DeviceAbsCalibState x)+ serialize (max_y_DeviceAbsCalibState x)+ serialize (flip_x_DeviceAbsCalibState x)+ serialize (flip_y_DeviceAbsCalibState x)+ serialize (rotation_DeviceAbsCalibState x)+ serialize (button_threshold_DeviceAbsCalibState x)+ size x+ = size (control_id_DeviceAbsCalibState x) ++ size (len_DeviceAbsCalibState x)+ + size (min_x_DeviceAbsCalibState x)+ + size (max_x_DeviceAbsCalibState x)+ + size (min_y_DeviceAbsCalibState x)+ + size (max_y_DeviceAbsCalibState x)+ + size (flip_x_DeviceAbsCalibState x)+ + size (flip_y_DeviceAbsCalibState x)+ + size (rotation_DeviceAbsCalibState x)+ + size (button_threshold_DeviceAbsCalibState x)+ +instance Deserialize DeviceAbsCalibState where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ min_x <- deserialize+ max_x <- deserialize+ min_y <- deserialize+ max_y <- deserialize+ flip_x <- deserialize+ flip_y <- deserialize+ rotation <- deserialize+ button_threshold <- deserialize+ return+ (MkDeviceAbsCalibState control_id len min_x max_x min_y max_y+ flip_x+ flip_y+ rotation+ button_threshold)+ +data DeviceAbsAreaState = MkDeviceAbsAreaState{control_id_DeviceAbsAreaState+ :: CARD16,+ len_DeviceAbsAreaState :: CARD16,+ offset_x_DeviceAbsAreaState :: CARD32,+ offset_y_DeviceAbsAreaState :: CARD32,+ width_DeviceAbsAreaState :: CARD32,+ height_DeviceAbsAreaState :: CARD32,+ screen_DeviceAbsAreaState :: CARD32,+ following_DeviceAbsAreaState :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize DeviceAbsAreaState where+ serialize x+ = do serialize (control_id_DeviceAbsAreaState x)+ serialize (len_DeviceAbsAreaState x)+ serialize (offset_x_DeviceAbsAreaState x)+ serialize (offset_y_DeviceAbsAreaState x)+ serialize (width_DeviceAbsAreaState x)+ serialize (height_DeviceAbsAreaState x)+ serialize (screen_DeviceAbsAreaState x)+ serialize (following_DeviceAbsAreaState x)+ size x+ = size (control_id_DeviceAbsAreaState x) ++ size (len_DeviceAbsAreaState x)+ + size (offset_x_DeviceAbsAreaState x)+ + size (offset_y_DeviceAbsAreaState x)+ + size (width_DeviceAbsAreaState x)+ + size (height_DeviceAbsAreaState x)+ + size (screen_DeviceAbsAreaState x)+ + size (following_DeviceAbsAreaState x)+ +instance Deserialize DeviceAbsAreaState where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ offset_x <- deserialize+ offset_y <- deserialize+ width <- deserialize+ height <- deserialize+ screen <- deserialize+ following <- deserialize+ return+ (MkDeviceAbsAreaState control_id len offset_x offset_y width height+ screen+ following)+ +data DeviceCoreState = MkDeviceCoreState{control_id_DeviceCoreState+ :: CARD16,+ len_DeviceCoreState :: CARD16,+ status_DeviceCoreState :: CARD8,+ iscore_DeviceCoreState :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize DeviceCoreState where+ serialize x+ = do serialize (control_id_DeviceCoreState x)+ serialize (len_DeviceCoreState x)+ serialize (status_DeviceCoreState x)+ serialize (iscore_DeviceCoreState x)+ putSkip 2+ size x+ = size (control_id_DeviceCoreState x) ++ size (len_DeviceCoreState x)+ + size (status_DeviceCoreState x)+ + size (iscore_DeviceCoreState x)+ + 2+ +instance Deserialize DeviceCoreState where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ status <- deserialize+ iscore <- deserialize+ skip 2+ return (MkDeviceCoreState control_id len status iscore)+ +data DeviceEnableState = MkDeviceEnableState{control_id_DeviceEnableState+ :: CARD16,+ len_DeviceEnableState :: CARD16,+ enable_DeviceEnableState :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize DeviceEnableState where+ serialize x+ = do serialize (control_id_DeviceEnableState x)+ serialize (len_DeviceEnableState x)+ serialize (enable_DeviceEnableState x)+ putSkip 3+ size x+ = size (control_id_DeviceEnableState x) ++ size (len_DeviceEnableState x)+ + size (enable_DeviceEnableState x)+ + 3+ +instance Deserialize DeviceEnableState where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ enable <- deserialize+ skip 3+ return (MkDeviceEnableState control_id len enable)+ +data DeviceCtl = MkDeviceCtl{control_id_DeviceCtl :: CARD16,+ len_DeviceCtl :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize DeviceCtl where+ serialize x+ = do serialize (control_id_DeviceCtl x)+ serialize (len_DeviceCtl x)+ size x = size (control_id_DeviceCtl x) + size (len_DeviceCtl x)+ +instance Deserialize DeviceCtl where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ return (MkDeviceCtl control_id len)+ +data DeviceResolutionCtl = MkDeviceResolutionCtl{control_id_DeviceResolutionCtl+ :: CARD16,+ len_DeviceResolutionCtl :: CARD16,+ first_valuator_DeviceResolutionCtl :: CARD8,+ num_valuators_DeviceResolutionCtl :: CARD8,+ resolution_values_DeviceResolutionCtl :: [CARD32]}+ deriving (Show, Typeable)+ +instance Serialize DeviceResolutionCtl where+ serialize x+ = do serialize (control_id_DeviceResolutionCtl x)+ serialize (len_DeviceResolutionCtl x)+ serialize (first_valuator_DeviceResolutionCtl x)+ serialize (num_valuators_DeviceResolutionCtl x)+ serializeList (resolution_values_DeviceResolutionCtl x)+ size x+ = size (control_id_DeviceResolutionCtl x) ++ size (len_DeviceResolutionCtl x)+ + size (first_valuator_DeviceResolutionCtl x)+ + size (num_valuators_DeviceResolutionCtl x)+ + sum (map size (resolution_values_DeviceResolutionCtl x))+ +instance Deserialize DeviceResolutionCtl where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ first_valuator <- deserialize+ num_valuators <- deserialize+ resolution_values <- deserializeList (fromIntegral num_valuators)+ return+ (MkDeviceResolutionCtl control_id len first_valuator num_valuators+ resolution_values)+ +data DeviceAbsCalibCtl = MkDeviceAbsCalibCtl{control_id_DeviceAbsCalibCtl+ :: CARD16,+ len_DeviceAbsCalibCtl :: CARD16,+ min_x_DeviceAbsCalibCtl :: INT32,+ max_x_DeviceAbsCalibCtl :: INT32,+ min_y_DeviceAbsCalibCtl :: INT32,+ max_y_DeviceAbsCalibCtl :: INT32,+ flip_x_DeviceAbsCalibCtl :: CARD32,+ flip_y_DeviceAbsCalibCtl :: CARD32,+ rotation_DeviceAbsCalibCtl :: CARD32,+ button_threshold_DeviceAbsCalibCtl :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize DeviceAbsCalibCtl where+ serialize x+ = do serialize (control_id_DeviceAbsCalibCtl x)+ serialize (len_DeviceAbsCalibCtl x)+ serialize (min_x_DeviceAbsCalibCtl x)+ serialize (max_x_DeviceAbsCalibCtl x)+ serialize (min_y_DeviceAbsCalibCtl x)+ serialize (max_y_DeviceAbsCalibCtl x)+ serialize (flip_x_DeviceAbsCalibCtl x)+ serialize (flip_y_DeviceAbsCalibCtl x)+ serialize (rotation_DeviceAbsCalibCtl x)+ serialize (button_threshold_DeviceAbsCalibCtl x)+ size x+ = size (control_id_DeviceAbsCalibCtl x) ++ size (len_DeviceAbsCalibCtl x)+ + size (min_x_DeviceAbsCalibCtl x)+ + size (max_x_DeviceAbsCalibCtl x)+ + size (min_y_DeviceAbsCalibCtl x)+ + size (max_y_DeviceAbsCalibCtl x)+ + size (flip_x_DeviceAbsCalibCtl x)+ + size (flip_y_DeviceAbsCalibCtl x)+ + size (rotation_DeviceAbsCalibCtl x)+ + size (button_threshold_DeviceAbsCalibCtl x)+ +instance Deserialize DeviceAbsCalibCtl where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ min_x <- deserialize+ max_x <- deserialize+ min_y <- deserialize+ max_y <- deserialize+ flip_x <- deserialize+ flip_y <- deserialize+ rotation <- deserialize+ button_threshold <- deserialize+ return+ (MkDeviceAbsCalibCtl control_id len min_x max_x min_y max_y flip_x+ flip_y+ rotation+ button_threshold)+ +data DeviceAbsAreaCtrl = MkDeviceAbsAreaCtrl{control_id_DeviceAbsAreaCtrl+ :: CARD16,+ len_DeviceAbsAreaCtrl :: CARD16,+ offset_x_DeviceAbsAreaCtrl :: CARD32,+ offset_y_DeviceAbsAreaCtrl :: CARD32,+ width_DeviceAbsAreaCtrl :: INT32,+ height_DeviceAbsAreaCtrl :: INT32,+ screen_DeviceAbsAreaCtrl :: INT32,+ following_DeviceAbsAreaCtrl :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize DeviceAbsAreaCtrl where+ serialize x+ = do serialize (control_id_DeviceAbsAreaCtrl x)+ serialize (len_DeviceAbsAreaCtrl x)+ serialize (offset_x_DeviceAbsAreaCtrl x)+ serialize (offset_y_DeviceAbsAreaCtrl x)+ serialize (width_DeviceAbsAreaCtrl x)+ serialize (height_DeviceAbsAreaCtrl x)+ serialize (screen_DeviceAbsAreaCtrl x)+ serialize (following_DeviceAbsAreaCtrl x)+ size x+ = size (control_id_DeviceAbsAreaCtrl x) ++ size (len_DeviceAbsAreaCtrl x)+ + size (offset_x_DeviceAbsAreaCtrl x)+ + size (offset_y_DeviceAbsAreaCtrl x)+ + size (width_DeviceAbsAreaCtrl x)+ + size (height_DeviceAbsAreaCtrl x)+ + size (screen_DeviceAbsAreaCtrl x)+ + size (following_DeviceAbsAreaCtrl x)+ +instance Deserialize DeviceAbsAreaCtrl where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ offset_x <- deserialize+ offset_y <- deserialize+ width <- deserialize+ height <- deserialize+ screen <- deserialize+ following <- deserialize+ return+ (MkDeviceAbsAreaCtrl control_id len offset_x offset_y width height+ screen+ following)+ +data DeviceCoreCtrl = MkDeviceCoreCtrl{control_id_DeviceCoreCtrl ::+ CARD16,+ len_DeviceCoreCtrl :: CARD16, status_DeviceCoreCtrl :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize DeviceCoreCtrl where+ serialize x+ = do serialize (control_id_DeviceCoreCtrl x)+ serialize (len_DeviceCoreCtrl x)+ serialize (status_DeviceCoreCtrl x)+ putSkip 3+ size x+ = size (control_id_DeviceCoreCtrl x) + size (len_DeviceCoreCtrl x)+ + size (status_DeviceCoreCtrl x)+ + 3+ +instance Deserialize DeviceCoreCtrl where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ status <- deserialize+ skip 3+ return (MkDeviceCoreCtrl control_id len status)+ +data DeviceEnableCtrl = MkDeviceEnableCtrl{control_id_DeviceEnableCtrl+ :: CARD16,+ len_DeviceEnableCtrl :: CARD16,+ enable_DeviceEnableCtrl :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize DeviceEnableCtrl where+ serialize x+ = do serialize (control_id_DeviceEnableCtrl x)+ serialize (len_DeviceEnableCtrl x)+ serialize (enable_DeviceEnableCtrl x)+ putSkip 3+ size x+ = size (control_id_DeviceEnableCtrl x) ++ size (len_DeviceEnableCtrl x)+ + size (enable_DeviceEnableCtrl x)+ + 3+ +instance Deserialize DeviceEnableCtrl where+ deserialize+ = do control_id <- deserialize+ len <- deserialize+ enable <- deserialize+ skip 3+ return (MkDeviceEnableCtrl control_id len enable)+ +data DeviceValuator = MkDeviceValuator{device_id_DeviceValuator ::+ CARD8,+ device_state_DeviceValuator :: CARD16,+ num_valuators_DeviceValuator :: CARD8,+ first_valuator_DeviceValuator :: CARD8,+ valuators_DeviceValuator :: [INT32]}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceValuator+ +instance Deserialize DeviceValuator where+ deserialize+ = do skip 1+ device_id <- deserialize+ skip 2+ device_state <- deserialize+ num_valuators <- deserialize+ first_valuator <- deserialize+ valuators <- deserializeList (fromIntegral 6)+ return+ (MkDeviceValuator device_id device_state num_valuators+ first_valuator+ valuators)+ +data DeviceKeyPress = MkDeviceKeyPress{detail_DeviceKeyPress ::+ BYTE,+ time_DeviceKeyPress :: TIMESTAMP,+ root_DeviceKeyPress :: WINDOW,+ event_DeviceKeyPress :: WINDOW,+ child_DeviceKeyPress :: WINDOW,+ root_x_DeviceKeyPress :: INT16,+ root_y_DeviceKeyPress :: INT16,+ event_x_DeviceKeyPress :: INT16,+ event_y_DeviceKeyPress :: INT16,+ state_DeviceKeyPress :: CARD16,+ same_screen_DeviceKeyPress :: BOOL,+ device_id_DeviceKeyPress :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceKeyPress+ +instance Deserialize DeviceKeyPress where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkDeviceKeyPress detail time root event child root_x root_y+ event_x+ event_y+ state+ same_screen+ device_id)+ +data DeviceKeyRelease = MkDeviceKeyRelease{detail_DeviceKeyRelease+ :: BYTE,+ time_DeviceKeyRelease :: TIMESTAMP,+ root_DeviceKeyRelease :: WINDOW,+ event_DeviceKeyRelease :: WINDOW,+ child_DeviceKeyRelease :: WINDOW,+ root_x_DeviceKeyRelease :: INT16,+ root_y_DeviceKeyRelease :: INT16,+ event_x_DeviceKeyRelease :: INT16,+ event_y_DeviceKeyRelease :: INT16,+ state_DeviceKeyRelease :: CARD16,+ same_screen_DeviceKeyRelease :: BOOL,+ device_id_DeviceKeyRelease :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceKeyRelease+ +instance Deserialize DeviceKeyRelease where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkDeviceKeyRelease detail time root event child root_x root_y+ event_x+ event_y+ state+ same_screen+ device_id)+ +data DeviceButtonPress = MkDeviceButtonPress{detail_DeviceButtonPress+ :: BYTE,+ time_DeviceButtonPress :: TIMESTAMP,+ root_DeviceButtonPress :: WINDOW,+ event_DeviceButtonPress :: WINDOW,+ child_DeviceButtonPress :: WINDOW,+ root_x_DeviceButtonPress :: INT16,+ root_y_DeviceButtonPress :: INT16,+ event_x_DeviceButtonPress :: INT16,+ event_y_DeviceButtonPress :: INT16,+ state_DeviceButtonPress :: CARD16,+ same_screen_DeviceButtonPress :: BOOL,+ device_id_DeviceButtonPress :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceButtonPress+ +instance Deserialize DeviceButtonPress where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkDeviceButtonPress detail time root event child root_x root_y+ event_x+ event_y+ state+ same_screen+ device_id)+ +data DeviceButtonRelease = MkDeviceButtonRelease{detail_DeviceButtonRelease+ :: BYTE,+ time_DeviceButtonRelease :: TIMESTAMP,+ root_DeviceButtonRelease :: WINDOW,+ event_DeviceButtonRelease :: WINDOW,+ child_DeviceButtonRelease :: WINDOW,+ root_x_DeviceButtonRelease :: INT16,+ root_y_DeviceButtonRelease :: INT16,+ event_x_DeviceButtonRelease :: INT16,+ event_y_DeviceButtonRelease :: INT16,+ state_DeviceButtonRelease :: CARD16,+ same_screen_DeviceButtonRelease :: BOOL,+ device_id_DeviceButtonRelease :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceButtonRelease+ +instance Deserialize DeviceButtonRelease where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkDeviceButtonRelease detail time root event child root_x root_y+ event_x+ event_y+ state+ same_screen+ device_id)+ +data DeviceMotionNotify = MkDeviceMotionNotify{detail_DeviceMotionNotify+ :: BYTE,+ time_DeviceMotionNotify :: TIMESTAMP,+ root_DeviceMotionNotify :: WINDOW,+ event_DeviceMotionNotify :: WINDOW,+ child_DeviceMotionNotify :: WINDOW,+ root_x_DeviceMotionNotify :: INT16,+ root_y_DeviceMotionNotify :: INT16,+ event_x_DeviceMotionNotify :: INT16,+ event_y_DeviceMotionNotify :: INT16,+ state_DeviceMotionNotify :: CARD16,+ same_screen_DeviceMotionNotify :: BOOL,+ device_id_DeviceMotionNotify :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceMotionNotify+ +instance Deserialize DeviceMotionNotify where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkDeviceMotionNotify detail time root event child root_x root_y+ event_x+ event_y+ state+ same_screen+ device_id)+ +data ProximityIn = MkProximityIn{detail_ProximityIn :: BYTE,+ time_ProximityIn :: TIMESTAMP, root_ProximityIn :: WINDOW,+ event_ProximityIn :: WINDOW, child_ProximityIn :: WINDOW,+ root_x_ProximityIn :: INT16, root_y_ProximityIn :: INT16,+ event_x_ProximityIn :: INT16, event_y_ProximityIn :: INT16,+ state_ProximityIn :: CARD16, same_screen_ProximityIn :: BOOL,+ device_id_ProximityIn :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ProximityIn+ +instance Deserialize ProximityIn where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkProximityIn detail time root event child root_x root_y event_x+ event_y+ state+ same_screen+ device_id)+ +data ProximityOut = MkProximityOut{detail_ProximityOut :: BYTE,+ time_ProximityOut :: TIMESTAMP, root_ProximityOut :: WINDOW,+ event_ProximityOut :: WINDOW, child_ProximityOut :: WINDOW,+ root_x_ProximityOut :: INT16, root_y_ProximityOut :: INT16,+ event_x_ProximityOut :: INT16, event_y_ProximityOut :: INT16,+ state_ProximityOut :: CARD16, same_screen_ProximityOut :: BOOL,+ device_id_ProximityOut :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ProximityOut+ +instance Deserialize ProximityOut where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkProximityOut detail time root event child root_x root_y event_x+ event_y+ state+ same_screen+ device_id)+ +data FocusIn = MkFocusIn{detail_FocusIn :: BYTE,+ time_FocusIn :: TIMESTAMP, window_FocusIn :: WINDOW,+ mode_FocusIn :: BYTE, device_id_FocusIn :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event FocusIn+ +instance Deserialize FocusIn where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ window <- deserialize+ mode <- deserialize+ device_id <- deserialize+ skip 18+ return (MkFocusIn detail time window mode device_id)+ +data FocusOut = MkFocusOut{detail_FocusOut :: BYTE,+ time_FocusOut :: TIMESTAMP, root_FocusOut :: WINDOW,+ event_FocusOut :: WINDOW, child_FocusOut :: WINDOW,+ root_x_FocusOut :: INT16, root_y_FocusOut :: INT16,+ event_x_FocusOut :: INT16, event_y_FocusOut :: INT16,+ state_FocusOut :: CARD16, same_screen_FocusOut :: BOOL,+ device_id_FocusOut :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event FocusOut+ +instance Deserialize FocusOut where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ device_id <- deserialize+ return+ (MkFocusOut detail time root event child root_x root_y event_x+ event_y+ state+ same_screen+ device_id)+ +data DeviceStateNotify = MkDeviceStateNotify{device_id_DeviceStateNotify+ :: BYTE,+ time_DeviceStateNotify :: TIMESTAMP,+ num_keys_DeviceStateNotify :: CARD8,+ num_buttons_DeviceStateNotify :: CARD8,+ num_valuators_DeviceStateNotify :: CARD8,+ classes_reported_DeviceStateNotify :: CARD8,+ buttons_DeviceStateNotify :: [CARD8],+ keys_DeviceStateNotify :: [CARD8],+ valuators_DeviceStateNotify :: [CARD32]}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceStateNotify+ +instance Deserialize DeviceStateNotify where+ deserialize+ = do skip 1+ device_id <- deserialize+ skip 2+ time <- deserialize+ num_keys <- deserialize+ num_buttons <- deserialize+ num_valuators <- deserialize+ classes_reported <- deserialize+ buttons <- deserializeList (fromIntegral 4)+ keys <- deserializeList (fromIntegral 4)+ valuators <- deserializeList (fromIntegral 3)+ return+ (MkDeviceStateNotify device_id time num_keys num_buttons+ num_valuators+ classes_reported+ buttons+ keys+ valuators)+ +data DeviceMappingNotify = MkDeviceMappingNotify{device_id_DeviceMappingNotify+ :: BYTE,+ request_DeviceMappingNotify :: CARD8,+ first_keycode_DeviceMappingNotify :: KeyCode,+ count_DeviceMappingNotify :: CARD8,+ time_DeviceMappingNotify :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceMappingNotify+ +instance Deserialize DeviceMappingNotify where+ deserialize+ = do skip 1+ device_id <- deserialize+ skip 2+ request <- deserialize+ first_keycode <- deserialize+ count <- deserialize+ skip 1+ time <- deserialize+ skip 20+ return+ (MkDeviceMappingNotify device_id request first_keycode count time)+ +data ChangeDeviceNotify = MkChangeDeviceNotify{device_id_ChangeDeviceNotify+ :: BYTE,+ time_ChangeDeviceNotify :: TIMESTAMP,+ request_ChangeDeviceNotify :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ChangeDeviceNotify+ +instance Deserialize ChangeDeviceNotify where+ deserialize+ = do skip 1+ device_id <- deserialize+ skip 2+ time <- deserialize+ request <- deserialize+ skip 23+ return (MkChangeDeviceNotify device_id time request)+ +data DeviceKeyStateNotify = MkDeviceKeyStateNotify{device_id_DeviceKeyStateNotify+ :: BYTE,+ keys_DeviceKeyStateNotify :: [CARD8]}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceKeyStateNotify+ +instance Deserialize DeviceKeyStateNotify where+ deserialize+ = do skip 1+ device_id <- deserialize+ skip 2+ keys <- deserializeList (fromIntegral 28)+ return (MkDeviceKeyStateNotify device_id keys)+ +data DeviceButtonStateNotify = MkDeviceButtonStateNotify{device_id_DeviceButtonStateNotify+ :: BYTE,+ buttons_DeviceButtonStateNotify :: [CARD8]}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DeviceButtonStateNotify+ +instance Deserialize DeviceButtonStateNotify where+ deserialize+ = do skip 1+ device_id <- deserialize+ skip 2+ buttons <- deserializeList (fromIntegral 28)+ return (MkDeviceButtonStateNotify device_id buttons)+ +data DevicePresenceNotify = MkDevicePresenceNotify{time_DevicePresenceNotify+ :: TIMESTAMP,+ devchange_DevicePresenceNotify :: BYTE,+ device_id_DevicePresenceNotify :: BYTE,+ control_DevicePresenceNotify :: CARD16}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DevicePresenceNotify+ +instance Deserialize DevicePresenceNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ time <- deserialize+ devchange <- deserialize+ device_id <- deserialize+ control <- deserialize+ skip 20+ return (MkDevicePresenceNotify time devchange device_id control)
+ patched/Graphics/XHB/Gen/RandR.hs view
@@ -0,0 +1,245 @@+module Graphics.XHB.Gen.RandR+ (extension, queryVersion, setScreenConfig, selectInput,+ getScreenInfo, getScreenSizeRange, setScreenSize,+ getScreenResources, getOutputInfo, listOutputProperties,+ queryOutputProperty, configureOutputProperty, changeOutputProperty,+ deleteOutputProperty, getOutputProperty, createMode, destroyMode,+ addOutputMode, deleteOutputMode, getCrtcInfo, setCrtcConfig,+ getCrtcGammaSize, getCrtcGamma, setCrtcGamma,+ module Graphics.XHB.Gen.RandR.Types)+ where+import Graphics.XHB.Gen.RandR.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "RANDR"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt QueryVersionReply)+queryVersion c major_version minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion major_version minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setScreenConfig ::+ Graphics.XHB.Connection.Types.Connection ->+ SetScreenConfig -> IO (Receipt SetScreenConfigReply)+setScreenConfig c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +selectInput ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CARD16 -> IO ()+selectInput c window enable+ = do let req = MkSelectInput window enable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getScreenInfo ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetScreenInfoReply)+getScreenInfo c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetScreenInfo window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getScreenSizeRange ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetScreenSizeRangeReply)+getScreenSizeRange c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetScreenSizeRange window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setScreenSize ::+ Graphics.XHB.Connection.Types.Connection -> SetScreenSize -> IO ()+setScreenSize c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getScreenResources ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetScreenResourcesReply)+getScreenResources c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetScreenResources window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getOutputInfo ::+ Graphics.XHB.Connection.Types.Connection ->+ OUTPUT -> TIMESTAMP -> IO (Receipt GetOutputInfoReply)+getOutputInfo c output config_timestamp+ = do receipt <- newEmptyReceiptIO+ let req = MkGetOutputInfo output config_timestamp+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +listOutputProperties ::+ Graphics.XHB.Connection.Types.Connection ->+ OUTPUT -> IO (Receipt ListOutputPropertiesReply)+listOutputProperties c output+ = do receipt <- newEmptyReceiptIO+ let req = MkListOutputProperties output+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryOutputProperty ::+ Graphics.XHB.Connection.Types.Connection ->+ OUTPUT -> ATOM -> IO (Receipt QueryOutputPropertyReply)+queryOutputProperty c output property+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryOutputProperty output property+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +configureOutputProperty ::+ Graphics.XHB.Connection.Types.Connection ->+ ConfigureOutputProperty -> IO ()+configureOutputProperty c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +changeOutputProperty ::+ Graphics.XHB.Connection.Types.Connection ->+ ChangeOutputProperty -> IO ()+changeOutputProperty c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +deleteOutputProperty ::+ Graphics.XHB.Connection.Types.Connection -> OUTPUT -> ATOM -> IO ()+deleteOutputProperty c output property+ = do let req = MkDeleteOutputProperty output property+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getOutputProperty ::+ Graphics.XHB.Connection.Types.Connection ->+ GetOutputProperty -> IO (Receipt GetOutputPropertyReply)+getOutputProperty c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createMode ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateMode -> IO (Receipt CreateModeReply)+createMode c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +destroyMode ::+ Graphics.XHB.Connection.Types.Connection -> MODE -> IO ()+destroyMode c mode+ = do let req = MkDestroyMode mode+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +addOutputMode ::+ Graphics.XHB.Connection.Types.Connection -> OUTPUT -> MODE -> IO ()+addOutputMode c output mode+ = do let req = MkAddOutputMode output mode+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +deleteOutputMode ::+ Graphics.XHB.Connection.Types.Connection -> OUTPUT -> MODE -> IO ()+deleteOutputMode c output mode+ = do let req = MkDeleteOutputMode output mode+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getCrtcInfo ::+ Graphics.XHB.Connection.Types.Connection ->+ CRTC -> TIMESTAMP -> IO (Receipt GetCrtcInfoReply)+getCrtcInfo c crtc config_timestamp+ = do receipt <- newEmptyReceiptIO+ let req = MkGetCrtcInfo crtc config_timestamp+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setCrtcConfig ::+ Graphics.XHB.Connection.Types.Connection ->+ SetCrtcConfig -> IO (Receipt SetCrtcConfigReply)+setCrtcConfig c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getCrtcGammaSize ::+ Graphics.XHB.Connection.Types.Connection ->+ CRTC -> IO (Receipt GetCrtcGammaSizeReply)+getCrtcGammaSize c crtc+ = do receipt <- newEmptyReceiptIO+ let req = MkGetCrtcGammaSize crtc+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getCrtcGamma ::+ Graphics.XHB.Connection.Types.Connection ->+ CRTC -> IO (Receipt GetCrtcGammaReply)+getCrtcGamma c crtc+ = do receipt <- newEmptyReceiptIO+ let req = MkGetCrtcGamma crtc+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setCrtcGamma ::+ Graphics.XHB.Connection.Types.Connection -> SetCrtcGamma -> IO ()+setCrtcGamma c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/RandR/Types.hs view
@@ -0,0 +1,1344 @@+module Graphics.XHB.Gen.RandR.Types+ (deserializeError, deserializeEvent, MODE, CRTC, OUTPUT,+ Rotation(..), ScreenSize(..), RefreshRates(..), QueryVersion(..),+ QueryVersionReply(..), SetScreenConfig(..),+ SetScreenConfigReply(..), SetConfig(..), SelectInput(..),+ GetScreenInfo(..), GetScreenInfoReply(..), GetScreenSizeRange(..),+ GetScreenSizeRangeReply(..), SetScreenSize(..), ModeFlag(..),+ ModeInfo(..), GetScreenResources(..), GetScreenResourcesReply(..),+ Connection(..), GetOutputInfo(..), GetOutputInfoReply(..),+ ListOutputProperties(..), ListOutputPropertiesReply(..),+ QueryOutputProperty(..), QueryOutputPropertyReply(..),+ ConfigureOutputProperty(..), ChangeOutputProperty(..),+ DeleteOutputProperty(..), GetOutputProperty(..),+ GetOutputPropertyReply(..), CreateMode(..), CreateModeReply(..),+ DestroyMode(..), AddOutputMode(..), DeleteOutputMode(..),+ GetCrtcInfo(..), GetCrtcInfoReply(..), SetCrtcConfig(..),+ SetCrtcConfigReply(..), GetCrtcGammaSize(..),+ GetCrtcGammaSizeReply(..), GetCrtcGamma(..), GetCrtcGammaReply(..),+ SetCrtcGamma(..), NotifyMask(..), ScreenChangeNotify(..),+ NotifyEnum(..), CrtcChange(..), OutputChange(..), OutputProperty(..),+ Notify(..),NotifyData(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get ScreenChangeNotify))+deserializeEvent 1+ = return (liftM toEvent (deserialize :: Get Notify))+deserializeEvent _ = Nothing+ +newtype MODE = MkMODE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype CRTC = MkCRTC Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype OUTPUT = MkOUTPUT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data Rotation = RotationRotate_0+ | RotationRotate_90+ | RotationRotate_180+ | RotationRotate_270+ | RotationReflect_X+ | RotationReflect_Y+ +instance BitEnum Rotation where+ toBit RotationRotate_0{} = 0+ toBit RotationRotate_90{} = 1+ toBit RotationRotate_180{} = 2+ toBit RotationRotate_270{} = 3+ toBit RotationReflect_X{} = 4+ toBit RotationReflect_Y{} = 5+ fromBit 0 = RotationRotate_0+ fromBit 1 = RotationRotate_90+ fromBit 2 = RotationRotate_180+ fromBit 3 = RotationRotate_270+ fromBit 4 = RotationReflect_X+ fromBit 5 = RotationReflect_Y+ +data ScreenSize = MkScreenSize{width_ScreenSize :: CARD16,+ height_ScreenSize :: CARD16, mwidth_ScreenSize :: CARD16,+ mheight_ScreenSize :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize ScreenSize where+ serialize x+ = do serialize (width_ScreenSize x)+ serialize (height_ScreenSize x)+ serialize (mwidth_ScreenSize x)+ serialize (mheight_ScreenSize x)+ size x+ = size (width_ScreenSize x) + size (height_ScreenSize x) ++ size (mwidth_ScreenSize x)+ + size (mheight_ScreenSize x)+ +instance Deserialize ScreenSize where+ deserialize+ = do width <- deserialize+ height <- deserialize+ mwidth <- deserialize+ mheight <- deserialize+ return (MkScreenSize width height mwidth mheight)+ +data RefreshRates = MkRefreshRates{nRates_RefreshRates :: CARD16,+ rates_RefreshRates :: [CARD16]}+ deriving (Show, Typeable)+ +instance Serialize RefreshRates where+ serialize x+ = do serialize (nRates_RefreshRates x)+ serializeList (rates_RefreshRates x)+ size x+ = size (nRates_RefreshRates x) ++ sum (map size (rates_RefreshRates x))+ +instance Deserialize RefreshRates where+ deserialize+ = do nRates <- deserialize+ rates <- deserializeList (fromIntegral nRates)+ return (MkRefreshRates nRates rates)+ +data QueryVersion = MkQueryVersion{major_version_QueryVersion ::+ CARD32,+ minor_version_QueryVersion :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (major_version_QueryVersion x) ++ size (minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (major_version_QueryVersion x)+ serialize (minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD32,+ minor_version_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ skip 16+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data SetScreenConfig = MkSetScreenConfig{window_SetScreenConfig ::+ WINDOW,+ timestamp_SetScreenConfig :: TIMESTAMP,+ config_timestamp_SetScreenConfig :: TIMESTAMP,+ sizeID_SetScreenConfig :: CARD16,+ rotation_SetScreenConfig :: CARD16,+ rate_SetScreenConfig :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetScreenConfig where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (window_SetScreenConfig x) ++ size (timestamp_SetScreenConfig x)+ + size (config_timestamp_SetScreenConfig x)+ + size (sizeID_SetScreenConfig x)+ + size (rotation_SetScreenConfig x)+ + size (rate_SetScreenConfig x)+ + 2+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_SetScreenConfig x)+ serialize (timestamp_SetScreenConfig x)+ serialize (config_timestamp_SetScreenConfig x)+ serialize (sizeID_SetScreenConfig x)+ serialize (rotation_SetScreenConfig x)+ serialize (rate_SetScreenConfig x)+ putSkip 2+ putSkip (requiredPadding size__)+ +data SetScreenConfigReply = MkSetScreenConfigReply{status_SetScreenConfigReply+ :: CARD8,+ new_timestamp_SetScreenConfigReply :: TIMESTAMP,+ config_timestamp_SetScreenConfigReply ::+ TIMESTAMP,+ root_SetScreenConfigReply :: WINDOW,+ subpixel_order_SetScreenConfigReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize SetScreenConfigReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ new_timestamp <- deserialize+ config_timestamp <- deserialize+ root <- deserialize+ subpixel_order <- deserialize+ skip 10+ let _ = isCard32 length+ return+ (MkSetScreenConfigReply status new_timestamp config_timestamp root+ subpixel_order)+ +data SetConfig = SetConfigSuccess+ | SetConfigInvalidConfigTime+ | SetConfigInvalidTime+ | SetConfigFailed+ +instance SimpleEnum SetConfig where+ toValue SetConfigSuccess{} = 0+ toValue SetConfigInvalidConfigTime{} = 1+ toValue SetConfigInvalidTime{} = 2+ toValue SetConfigFailed{} = 3+ fromValue 0 = SetConfigSuccess+ fromValue 1 = SetConfigInvalidConfigTime+ fromValue 2 = SetConfigInvalidTime+ fromValue 3 = SetConfigFailed+ +data SelectInput = MkSelectInput{window_SelectInput :: WINDOW,+ enable_SelectInput :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectInput where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (window_SelectInput x) + size (enable_SelectInput x) + 2+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_SelectInput x)+ serialize (enable_SelectInput x)+ putSkip 2+ putSkip (requiredPadding size__)+ +data GetScreenInfo = MkGetScreenInfo{window_GetScreenInfo ::+ WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetScreenInfo where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4 + size (window_GetScreenInfo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetScreenInfo x)+ putSkip (requiredPadding size__)+ +data GetScreenInfoReply = MkGetScreenInfoReply{rotations_GetScreenInfoReply+ :: CARD8,+ root_GetScreenInfoReply :: WINDOW,+ timestamp_GetScreenInfoReply :: TIMESTAMP,+ config_timestamp_GetScreenInfoReply :: TIMESTAMP,+ nSizes_GetScreenInfoReply :: CARD16,+ sizeID_GetScreenInfoReply :: CARD16,+ rotation_GetScreenInfoReply :: CARD16,+ rate_GetScreenInfoReply :: CARD16,+ nInfo_GetScreenInfoReply :: CARD16,+ sizes_GetScreenInfoReply :: [ScreenSize],+ rates_GetScreenInfoReply :: [RefreshRates]}+ deriving (Show, Typeable)+ +instance Deserialize GetScreenInfoReply where+ deserialize+ = do skip 1+ rotations <- deserialize+ skip 2+ length <- deserialize+ root <- deserialize+ timestamp <- deserialize+ config_timestamp <- deserialize+ nSizes <- deserialize+ sizeID <- deserialize+ rotation <- deserialize+ rate <- deserialize+ nInfo <- deserialize+ skip 2+ sizes <- deserializeList (fromIntegral nSizes)+ rates <- deserializeList+ (fromIntegral (fromIntegral (nInfo - nSizes)))+ let _ = isCard32 length+ return+ (MkGetScreenInfoReply rotations root timestamp config_timestamp+ nSizes+ sizeID+ rotation+ rate+ nInfo+ sizes+ rates)+ +data GetScreenSizeRange = MkGetScreenSizeRange{window_GetScreenSizeRange+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetScreenSizeRange where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__ = 4 + size (window_GetScreenSizeRange x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetScreenSizeRange x)+ putSkip (requiredPadding size__)+ +data GetScreenSizeRangeReply = MkGetScreenSizeRangeReply{min_width_GetScreenSizeRangeReply+ :: CARD16,+ min_height_GetScreenSizeRangeReply ::+ CARD16,+ max_width_GetScreenSizeRangeReply ::+ CARD16,+ max_height_GetScreenSizeRangeReply ::+ CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetScreenSizeRangeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ min_width <- deserialize+ min_height <- deserialize+ max_width <- deserialize+ max_height <- deserialize+ skip 16+ let _ = isCard32 length+ return+ (MkGetScreenSizeRangeReply min_width min_height max_width+ max_height)+ +data SetScreenSize = MkSetScreenSize{window_SetScreenSize ::+ WINDOW,+ width_SetScreenSize :: CARD16, height_SetScreenSize :: CARD16,+ mm_width_SetScreenSize :: CARD32,+ mm_height_SetScreenSize :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetScreenSize where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__+ = 4 + size (window_SetScreenSize x) + size (width_SetScreenSize x)+ + size (height_SetScreenSize x)+ + size (mm_width_SetScreenSize x)+ + size (mm_height_SetScreenSize x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_SetScreenSize x)+ serialize (width_SetScreenSize x)+ serialize (height_SetScreenSize x)+ serialize (mm_width_SetScreenSize x)+ serialize (mm_height_SetScreenSize x)+ putSkip (requiredPadding size__)+ +data ModeFlag = ModeFlagHsyncPositive+ | ModeFlagHsyncNegative+ | ModeFlagVsyncPositive+ | ModeFlagVsyncNegative+ | ModeFlagInterlace+ | ModeFlagDoubleScan+ | ModeFlagCsync+ | ModeFlagCsyncPositive+ | ModeFlagCsyncNegative+ | ModeFlagHskewPresent+ | ModeFlagBcast+ | ModeFlagPixelMultiplex+ | ModeFlagDoubleClock+ | ModeFlagHalveClock+ +instance BitEnum ModeFlag where+ toBit ModeFlagHsyncPositive{} = 0+ toBit ModeFlagHsyncNegative{} = 1+ toBit ModeFlagVsyncPositive{} = 2+ toBit ModeFlagVsyncNegative{} = 3+ toBit ModeFlagInterlace{} = 4+ toBit ModeFlagDoubleScan{} = 5+ toBit ModeFlagCsync{} = 6+ toBit ModeFlagCsyncPositive{} = 7+ toBit ModeFlagCsyncNegative{} = 8+ toBit ModeFlagHskewPresent{} = 9+ toBit ModeFlagBcast{} = 10+ toBit ModeFlagPixelMultiplex{} = 11+ toBit ModeFlagDoubleClock{} = 12+ toBit ModeFlagHalveClock{} = 13+ fromBit 0 = ModeFlagHsyncPositive+ fromBit 1 = ModeFlagHsyncNegative+ fromBit 2 = ModeFlagVsyncPositive+ fromBit 3 = ModeFlagVsyncNegative+ fromBit 4 = ModeFlagInterlace+ fromBit 5 = ModeFlagDoubleScan+ fromBit 6 = ModeFlagCsync+ fromBit 7 = ModeFlagCsyncPositive+ fromBit 8 = ModeFlagCsyncNegative+ fromBit 9 = ModeFlagHskewPresent+ fromBit 10 = ModeFlagBcast+ fromBit 11 = ModeFlagPixelMultiplex+ fromBit 12 = ModeFlagDoubleClock+ fromBit 13 = ModeFlagHalveClock+ +data ModeInfo = MkModeInfo{id_ModeInfo :: CARD32,+ width_ModeInfo :: CARD16, height_ModeInfo :: CARD16,+ dot_clock_ModeInfo :: CARD32, hsync_start_ModeInfo :: CARD16,+ hsync_end_ModeInfo :: CARD16, htotal_ModeInfo :: CARD16,+ hskew_ModeInfo :: CARD16, vsync_start_ModeInfo :: CARD16,+ vsync_end_ModeInfo :: CARD16, vtotal_ModeInfo :: CARD16,+ name_len_ModeInfo :: CARD16, mode_flags_ModeInfo :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize ModeInfo where+ serialize x+ = do serialize (id_ModeInfo x)+ serialize (width_ModeInfo x)+ serialize (height_ModeInfo x)+ serialize (dot_clock_ModeInfo x)+ serialize (hsync_start_ModeInfo x)+ serialize (hsync_end_ModeInfo x)+ serialize (htotal_ModeInfo x)+ serialize (hskew_ModeInfo x)+ serialize (vsync_start_ModeInfo x)+ serialize (vsync_end_ModeInfo x)+ serialize (vtotal_ModeInfo x)+ serialize (name_len_ModeInfo x)+ serialize (mode_flags_ModeInfo x)+ size x+ = size (id_ModeInfo x) + size (width_ModeInfo x) ++ size (height_ModeInfo x)+ + size (dot_clock_ModeInfo x)+ + size (hsync_start_ModeInfo x)+ + size (hsync_end_ModeInfo x)+ + size (htotal_ModeInfo x)+ + size (hskew_ModeInfo x)+ + size (vsync_start_ModeInfo x)+ + size (vsync_end_ModeInfo x)+ + size (vtotal_ModeInfo x)+ + size (name_len_ModeInfo x)+ + size (mode_flags_ModeInfo x)+ +instance Deserialize ModeInfo where+ deserialize+ = do id <- deserialize+ width <- deserialize+ height <- deserialize+ dot_clock <- deserialize+ hsync_start <- deserialize+ hsync_end <- deserialize+ htotal <- deserialize+ hskew <- deserialize+ vsync_start <- deserialize+ vsync_end <- deserialize+ vtotal <- deserialize+ name_len <- deserialize+ mode_flags <- deserialize+ return+ (MkModeInfo id width height dot_clock hsync_start hsync_end htotal+ hskew+ vsync_start+ vsync_end+ vtotal+ name_len+ mode_flags)+ +data GetScreenResources = MkGetScreenResources{window_GetScreenResources+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetScreenResources where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__ = 4 + size (window_GetScreenResources x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetScreenResources x)+ putSkip (requiredPadding size__)+ +data GetScreenResourcesReply = MkGetScreenResourcesReply{timestamp_GetScreenResourcesReply+ :: TIMESTAMP,+ config_timestamp_GetScreenResourcesReply ::+ TIMESTAMP,+ num_crtcs_GetScreenResourcesReply ::+ CARD16,+ num_outputs_GetScreenResourcesReply ::+ CARD16,+ num_modes_GetScreenResourcesReply ::+ CARD16,+ names_len_GetScreenResourcesReply ::+ CARD16,+ crtcs_GetScreenResourcesReply :: [CRTC],+ outputs_GetScreenResourcesReply ::+ [OUTPUT],+ modes_GetScreenResourcesReply ::+ [ModeInfo],+ names_GetScreenResourcesReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetScreenResourcesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ timestamp <- deserialize+ config_timestamp <- deserialize+ num_crtcs <- deserialize+ num_outputs <- deserialize+ num_modes <- deserialize+ names_len <- deserialize+ skip 8+ crtcs <- deserializeList (fromIntegral num_crtcs)+ outputs <- deserializeList (fromIntegral num_outputs)+ modes <- deserializeList (fromIntegral num_modes)+ names <- deserializeList (fromIntegral names_len)+ let _ = isCard32 length+ return+ (MkGetScreenResourcesReply timestamp config_timestamp num_crtcs+ num_outputs+ num_modes+ names_len+ crtcs+ outputs+ modes+ names)+ +data Connection = ConnectionConnected+ | ConnectionDisconnected+ | ConnectionUnknown+ +instance SimpleEnum Connection where+ toValue ConnectionConnected{} = 0+ toValue ConnectionDisconnected{} = 1+ toValue ConnectionUnknown{} = 2+ fromValue 0 = ConnectionConnected+ fromValue 1 = ConnectionDisconnected+ fromValue 2 = ConnectionUnknown+ +data GetOutputInfo = MkGetOutputInfo{output_GetOutputInfo ::+ OUTPUT,+ config_timestamp_GetOutputInfo :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetOutputInfo where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__+ = 4 + size (output_GetOutputInfo x) ++ size (config_timestamp_GetOutputInfo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_GetOutputInfo x)+ serialize (config_timestamp_GetOutputInfo x)+ putSkip (requiredPadding size__)+ +data GetOutputInfoReply = MkGetOutputInfoReply{status_GetOutputInfoReply+ :: CARD8,+ timestamp_GetOutputInfoReply :: TIMESTAMP,+ crtc_GetOutputInfoReply :: CRTC,+ mm_width_GetOutputInfoReply :: CARD32,+ mm_height_GetOutputInfoReply :: CARD32,+ connection_GetOutputInfoReply :: CARD8,+ subpixel_order_GetOutputInfoReply :: CARD8,+ num_crtcs_GetOutputInfoReply :: CARD16,+ num_modes_GetOutputInfoReply :: CARD16,+ num_preferred_GetOutputInfoReply :: CARD16,+ num_clones_GetOutputInfoReply :: CARD16,+ name_len_GetOutputInfoReply :: CARD16,+ crtcs_GetOutputInfoReply :: [CRTC],+ modes_GetOutputInfoReply :: [MODE],+ clones_GetOutputInfoReply :: [OUTPUT],+ name_GetOutputInfoReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetOutputInfoReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ timestamp <- deserialize+ crtc <- deserialize+ mm_width <- deserialize+ mm_height <- deserialize+ connection <- deserialize+ subpixel_order <- deserialize+ num_crtcs <- deserialize+ num_modes <- deserialize+ num_preferred <- deserialize+ num_clones <- deserialize+ name_len <- deserialize+ crtcs <- deserializeList (fromIntegral num_crtcs)+ modes <- deserializeList (fromIntegral num_modes)+ clones <- deserializeList (fromIntegral num_clones)+ name <- deserializeList (fromIntegral name_len)+ let _ = isCard32 length+ return+ (MkGetOutputInfoReply status timestamp crtc mm_width mm_height+ connection+ subpixel_order+ num_crtcs+ num_modes+ num_preferred+ num_clones+ name_len+ crtcs+ modes+ clones+ name)+ +data ListOutputProperties = MkListOutputProperties{output_ListOutputProperties+ :: OUTPUT}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListOutputProperties where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__ = 4 + size (output_ListOutputProperties x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_ListOutputProperties x)+ putSkip (requiredPadding size__)+ +data ListOutputPropertiesReply = MkListOutputPropertiesReply{num_atoms_ListOutputPropertiesReply+ :: CARD16,+ atoms_ListOutputPropertiesReply ::+ [ATOM]}+ deriving (Show, Typeable)+ +instance Deserialize ListOutputPropertiesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_atoms <- deserialize+ skip 22+ atoms <- deserializeList (fromIntegral num_atoms)+ let _ = isCard32 length+ return (MkListOutputPropertiesReply num_atoms atoms)+ +data QueryOutputProperty = MkQueryOutputProperty{output_QueryOutputProperty+ :: OUTPUT,+ property_QueryOutputProperty :: ATOM}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryOutputProperty where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__+ = 4 + size (output_QueryOutputProperty x) ++ size (property_QueryOutputProperty x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_QueryOutputProperty x)+ serialize (property_QueryOutputProperty x)+ putSkip (requiredPadding size__)+ +data QueryOutputPropertyReply = MkQueryOutputPropertyReply{pending_QueryOutputPropertyReply+ :: BOOL,+ range_QueryOutputPropertyReply :: BOOL,+ immutable_QueryOutputPropertyReply ::+ BOOL,+ validValues_QueryOutputPropertyReply ::+ [INT32]}+ deriving (Show, Typeable)+ +instance Deserialize QueryOutputPropertyReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ pending <- deserialize+ range <- deserialize+ immutable <- deserialize+ skip 21+ validValues <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return+ (MkQueryOutputPropertyReply pending range immutable validValues)+ +data ConfigureOutputProperty = MkConfigureOutputProperty{output_ConfigureOutputProperty+ :: OUTPUT,+ property_ConfigureOutputProperty :: ATOM,+ pending_ConfigureOutputProperty :: BOOL,+ range_ConfigureOutputProperty :: BOOL,+ values_ConfigureOutputProperty :: [INT32]}+ deriving (Show, Typeable)+ +instance ExtensionRequest ConfigureOutputProperty where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (output_ConfigureOutputProperty x) ++ size (property_ConfigureOutputProperty x)+ + size (pending_ConfigureOutputProperty x)+ + size (range_ConfigureOutputProperty x)+ + 2+ + sum (map size (values_ConfigureOutputProperty x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_ConfigureOutputProperty x)+ serialize (property_ConfigureOutputProperty x)+ serialize (pending_ConfigureOutputProperty x)+ serialize (range_ConfigureOutputProperty x)+ putSkip 2+ serializeList (values_ConfigureOutputProperty x)+ putSkip (requiredPadding size__)+ +data ChangeOutputProperty = MkChangeOutputProperty{output_ChangeOutputProperty+ :: OUTPUT,+ property_ChangeOutputProperty :: ATOM,+ type_ChangeOutputProperty :: ATOM,+ format_ChangeOutputProperty :: CARD8,+ mode_ChangeOutputProperty :: CARD8,+ num_units_ChangeOutputProperty :: CARD32,+ data_ChangeOutputProperty :: [Word8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeOutputProperty where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__+ = 4 + size (output_ChangeOutputProperty x) ++ size (property_ChangeOutputProperty x)+ + size (type_ChangeOutputProperty x)+ + size (format_ChangeOutputProperty x)+ + size (mode_ChangeOutputProperty x)+ + 2+ + size (num_units_ChangeOutputProperty x)+ + sum (map size (data_ChangeOutputProperty x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_ChangeOutputProperty x)+ serialize (property_ChangeOutputProperty x)+ serialize (type_ChangeOutputProperty x)+ serialize (format_ChangeOutputProperty x)+ serialize (mode_ChangeOutputProperty x)+ putSkip 2+ serialize (num_units_ChangeOutputProperty x)+ serializeList (data_ChangeOutputProperty x)+ putSkip (requiredPadding size__)+ +data DeleteOutputProperty = MkDeleteOutputProperty{output_DeleteOutputProperty+ :: OUTPUT,+ property_DeleteOutputProperty :: ATOM}+ deriving (Show, Typeable)+ +instance ExtensionRequest DeleteOutputProperty where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 14+ let size__+ = 4 + size (output_DeleteOutputProperty x) ++ size (property_DeleteOutputProperty x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_DeleteOutputProperty x)+ serialize (property_DeleteOutputProperty x)+ putSkip (requiredPadding size__)+ +data GetOutputProperty = MkGetOutputProperty{output_GetOutputProperty+ :: OUTPUT,+ property_GetOutputProperty :: ATOM,+ type_GetOutputProperty :: ATOM,+ long_offset_GetOutputProperty :: CARD32,+ long_length_GetOutputProperty :: CARD32,+ delete_GetOutputProperty :: BOOL,+ pending_GetOutputProperty :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetOutputProperty where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 15+ let size__+ = 4 + size (output_GetOutputProperty x) ++ size (property_GetOutputProperty x)+ + size (type_GetOutputProperty x)+ + size (long_offset_GetOutputProperty x)+ + size (long_length_GetOutputProperty x)+ + size (delete_GetOutputProperty x)+ + size (pending_GetOutputProperty x)+ + 2+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_GetOutputProperty x)+ serialize (property_GetOutputProperty x)+ serialize (type_GetOutputProperty x)+ serialize (long_offset_GetOutputProperty x)+ serialize (long_length_GetOutputProperty x)+ serialize (delete_GetOutputProperty x)+ serialize (pending_GetOutputProperty x)+ putSkip 2+ putSkip (requiredPadding size__)+ +data GetOutputPropertyReply = MkGetOutputPropertyReply{format_GetOutputPropertyReply+ :: CARD8,+ type_GetOutputPropertyReply :: ATOM,+ bytes_after_GetOutputPropertyReply :: CARD32,+ num_items_GetOutputPropertyReply :: CARD32,+ data_GetOutputPropertyReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetOutputPropertyReply where+ deserialize+ = do skip 1+ format <- deserialize+ skip 2+ length <- deserialize+ type_ <- deserialize+ bytes_after <- deserialize+ num_items <- deserialize+ skip 12+ data_ <- deserializeList+ (fromIntegral+ (fromIntegral (num_items * (fromIntegral (format `div` 8)))))+ let _ = isCard32 length+ return+ (MkGetOutputPropertyReply format type_ bytes_after num_items data_)+ +data CreateMode = MkCreateMode{window_CreateMode :: WINDOW,+ mode_info_CreateMode :: ModeInfo, name_CreateMode :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateMode where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 16+ let size__+ = 4 + size (window_CreateMode x) + size (mode_info_CreateMode x) ++ sum (map size (name_CreateMode x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_CreateMode x)+ serialize (mode_info_CreateMode x)+ serializeList (name_CreateMode x)+ putSkip (requiredPadding size__)+ +data CreateModeReply = MkCreateModeReply{mode_CreateModeReply ::+ MODE}+ deriving (Show, Typeable)+ +instance Deserialize CreateModeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ mode <- deserialize+ skip 20+ let _ = isCard32 length+ return (MkCreateModeReply mode)+ +data DestroyMode = MkDestroyMode{mode_DestroyMode :: MODE}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyMode where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__ = 4 + size (mode_DestroyMode x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (mode_DestroyMode x)+ putSkip (requiredPadding size__)+ +data AddOutputMode = MkAddOutputMode{output_AddOutputMode ::+ OUTPUT,+ mode_AddOutputMode :: MODE}+ deriving (Show, Typeable)+ +instance ExtensionRequest AddOutputMode where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__+ = 4 + size (output_AddOutputMode x) + size (mode_AddOutputMode x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_AddOutputMode x)+ serialize (mode_AddOutputMode x)+ putSkip (requiredPadding size__)+ +data DeleteOutputMode = MkDeleteOutputMode{output_DeleteOutputMode+ :: OUTPUT,+ mode_DeleteOutputMode :: MODE}+ deriving (Show, Typeable)+ +instance ExtensionRequest DeleteOutputMode where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__+ = 4 + size (output_DeleteOutputMode x) ++ size (mode_DeleteOutputMode x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_DeleteOutputMode x)+ serialize (mode_DeleteOutputMode x)+ putSkip (requiredPadding size__)+ +data GetCrtcInfo = MkGetCrtcInfo{crtc_GetCrtcInfo :: CRTC,+ config_timestamp_GetCrtcInfo :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetCrtcInfo where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 20+ let size__+ = 4 + size (crtc_GetCrtcInfo x) ++ size (config_timestamp_GetCrtcInfo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (crtc_GetCrtcInfo x)+ serialize (config_timestamp_GetCrtcInfo x)+ putSkip (requiredPadding size__)+ +data GetCrtcInfoReply = MkGetCrtcInfoReply{status_GetCrtcInfoReply+ :: CARD8,+ timestamp_GetCrtcInfoReply :: TIMESTAMP,+ x_GetCrtcInfoReply :: INT16, y_GetCrtcInfoReply :: INT16,+ width_GetCrtcInfoReply :: CARD16,+ height_GetCrtcInfoReply :: CARD16,+ mode_GetCrtcInfoReply :: MODE,+ rotation_GetCrtcInfoReply :: CARD16,+ rotations_GetCrtcInfoReply :: CARD16,+ num_outputs_GetCrtcInfoReply :: CARD16,+ num_possible_outputs_GetCrtcInfoReply :: CARD16,+ outputs_GetCrtcInfoReply :: [OUTPUT],+ possible_GetCrtcInfoReply :: [OUTPUT]}+ deriving (Show, Typeable)+ +instance Deserialize GetCrtcInfoReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ timestamp <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ mode <- deserialize+ rotation <- deserialize+ rotations <- deserialize+ num_outputs <- deserialize+ num_possible_outputs <- deserialize+ outputs <- deserializeList (fromIntegral num_outputs)+ possible <- deserializeList (fromIntegral num_possible_outputs)+ let _ = isCard32 length+ return+ (MkGetCrtcInfoReply status timestamp x y width height mode rotation+ rotations+ num_outputs+ num_possible_outputs+ outputs+ possible)+ +data SetCrtcConfig = MkSetCrtcConfig{crtc_SetCrtcConfig :: CRTC,+ timestamp_SetCrtcConfig :: TIMESTAMP,+ config_timestamp_SetCrtcConfig :: TIMESTAMP,+ x_SetCrtcConfig :: INT16, y_SetCrtcConfig :: INT16,+ mode_SetCrtcConfig :: MODE, rotation_SetCrtcConfig :: CARD16,+ outputs_SetCrtcConfig :: [OUTPUT]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetCrtcConfig where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 21+ let size__+ = 4 + size (crtc_SetCrtcConfig x) ++ size (timestamp_SetCrtcConfig x)+ + size (config_timestamp_SetCrtcConfig x)+ + size (x_SetCrtcConfig x)+ + size (y_SetCrtcConfig x)+ + size (mode_SetCrtcConfig x)+ + size (rotation_SetCrtcConfig x)+ + 2+ + sum (map size (outputs_SetCrtcConfig x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (crtc_SetCrtcConfig x)+ serialize (timestamp_SetCrtcConfig x)+ serialize (config_timestamp_SetCrtcConfig x)+ serialize (x_SetCrtcConfig x)+ serialize (y_SetCrtcConfig x)+ serialize (mode_SetCrtcConfig x)+ serialize (rotation_SetCrtcConfig x)+ putSkip 2+ serializeList (outputs_SetCrtcConfig x)+ putSkip (requiredPadding size__)+ +data SetCrtcConfigReply = MkSetCrtcConfigReply{status_SetCrtcConfigReply+ :: CARD8,+ timestamp_SetCrtcConfigReply :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Deserialize SetCrtcConfigReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ timestamp <- deserialize+ skip 20+ let _ = isCard32 length+ return (MkSetCrtcConfigReply status timestamp)+ +data GetCrtcGammaSize = MkGetCrtcGammaSize{crtc_GetCrtcGammaSize ::+ CRTC}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetCrtcGammaSize where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 22+ let size__ = 4 + size (crtc_GetCrtcGammaSize x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (crtc_GetCrtcGammaSize x)+ putSkip (requiredPadding size__)+ +data GetCrtcGammaSizeReply = MkGetCrtcGammaSizeReply{size_GetCrtcGammaSizeReply+ :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetCrtcGammaSizeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ size <- deserialize+ skip 22+ let _ = isCard32 length+ return (MkGetCrtcGammaSizeReply size)+ +data GetCrtcGamma = MkGetCrtcGamma{crtc_GetCrtcGamma :: CRTC}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetCrtcGamma where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 23+ let size__ = 4 + size (crtc_GetCrtcGamma x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (crtc_GetCrtcGamma x)+ putSkip (requiredPadding size__)+ +data GetCrtcGammaReply = MkGetCrtcGammaReply{size_GetCrtcGammaReply+ :: CARD16,+ red_GetCrtcGammaReply :: [CARD16],+ green_GetCrtcGammaReply :: [CARD16],+ blue_GetCrtcGammaReply :: [CARD16]}+ deriving (Show, Typeable)+ +instance Deserialize GetCrtcGammaReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ size <- deserialize+ skip 22+ red <- deserializeList (fromIntegral size)+ green <- deserializeList (fromIntegral size)+ blue <- deserializeList (fromIntegral size)+ let _ = isCard32 length+ return (MkGetCrtcGammaReply size red green blue)+ +data SetCrtcGamma = MkSetCrtcGamma{crtc_SetCrtcGamma :: CRTC,+ size_SetCrtcGamma :: CARD16, red_SetCrtcGamma :: [CARD16],+ green_SetCrtcGamma :: [CARD16], blue_SetCrtcGamma :: [CARD16]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetCrtcGamma where+ extensionId _ = "RANDR"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 24+ let size__+ = 4 + size (crtc_SetCrtcGamma x) + size (size_SetCrtcGamma x) + 2 ++ sum (map size (red_SetCrtcGamma x))+ + sum (map size (green_SetCrtcGamma x))+ + sum (map size (blue_SetCrtcGamma x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (crtc_SetCrtcGamma x)+ serialize (size_SetCrtcGamma x)+ putSkip 2+ serializeList (red_SetCrtcGamma x)+ serializeList (green_SetCrtcGamma x)+ serializeList (blue_SetCrtcGamma x)+ putSkip (requiredPadding size__)+ +data NotifyMask = NotifyMaskScreenChange+ | NotifyMaskCrtcChange+ | NotifyMaskOutputChange+ | NotifyMaskOutputProperty+ +instance BitEnum NotifyMask where+ toBit NotifyMaskScreenChange{} = 0+ toBit NotifyMaskCrtcChange{} = 1+ toBit NotifyMaskOutputChange{} = 2+ toBit NotifyMaskOutputProperty{} = 3+ fromBit 0 = NotifyMaskScreenChange+ fromBit 1 = NotifyMaskCrtcChange+ fromBit 2 = NotifyMaskOutputChange+ fromBit 3 = NotifyMaskOutputProperty+ +data ScreenChangeNotify = MkScreenChangeNotify{rotation_ScreenChangeNotify+ :: CARD8,+ timestamp_ScreenChangeNotify :: TIMESTAMP,+ config_timestamp_ScreenChangeNotify :: TIMESTAMP,+ root_ScreenChangeNotify :: WINDOW,+ request_window_ScreenChangeNotify :: WINDOW,+ sizeID_ScreenChangeNotify :: CARD16,+ subpixel_order_ScreenChangeNotify :: CARD16,+ width_ScreenChangeNotify :: CARD16,+ height_ScreenChangeNotify :: CARD16,+ mwidth_ScreenChangeNotify :: CARD16,+ mheight_ScreenChangeNotify :: CARD16}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ScreenChangeNotify+ +instance Deserialize ScreenChangeNotify where+ deserialize+ = do skip 1+ rotation <- deserialize+ skip 2+ timestamp <- deserialize+ config_timestamp <- deserialize+ root <- deserialize+ request_window <- deserialize+ sizeID <- deserialize+ subpixel_order <- deserialize+ width <- deserialize+ height <- deserialize+ mwidth <- deserialize+ mheight <- deserialize+ return+ (MkScreenChangeNotify rotation timestamp config_timestamp root+ request_window+ sizeID+ subpixel_order+ width+ height+ mwidth+ mheight)+ +data NotifyEnum = NotifyCrtcChange+ | NotifyOutputChange+ | NotifyOutputProperty+ +instance SimpleEnum NotifyEnum where+ toValue NotifyCrtcChange{} = 0+ toValue NotifyOutputChange{} = 1+ toValue NotifyOutputProperty{} = 2+ fromValue 0 = NotifyCrtcChange+ fromValue 1 = NotifyOutputChange+ fromValue 2 = NotifyOutputProperty+ +data CrtcChange = MkCrtcChange{timestamp_CrtcChange :: TIMESTAMP,+ window_CrtcChange :: WINDOW, crtc_CrtcChange :: CRTC,+ mode_CrtcChange :: MODE, rotation_CrtcChange :: CARD16,+ x_CrtcChange :: INT16, y_CrtcChange :: INT16,+ width_CrtcChange :: CARD16, height_CrtcChange :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize CrtcChange where+ serialize x+ = do serialize (timestamp_CrtcChange x)+ serialize (window_CrtcChange x)+ serialize (crtc_CrtcChange x)+ serialize (mode_CrtcChange x)+ serialize (rotation_CrtcChange x)+ putSkip 2+ serialize (x_CrtcChange x)+ serialize (y_CrtcChange x)+ serialize (width_CrtcChange x)+ serialize (height_CrtcChange x)+ size x+ = size (timestamp_CrtcChange x) + size (window_CrtcChange x) ++ size (crtc_CrtcChange x)+ + size (mode_CrtcChange x)+ + size (rotation_CrtcChange x)+ + 2+ + size (x_CrtcChange x)+ + size (y_CrtcChange x)+ + size (width_CrtcChange x)+ + size (height_CrtcChange x)+ +instance Deserialize CrtcChange where+ deserialize+ = do timestamp <- deserialize+ window <- deserialize+ crtc <- deserialize+ mode <- deserialize+ rotation <- deserialize+ skip 2+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ return+ (MkCrtcChange timestamp window crtc mode rotation x y width height)+ +data OutputChange = MkOutputChange{timestamp_OutputChange ::+ TIMESTAMP,+ config_timestamp_OutputChange :: TIMESTAMP,+ window_OutputChange :: WINDOW, output_OutputChange :: OUTPUT,+ crtc_OutputChange :: CRTC, mode_OutputChange :: MODE,+ rotation_OutputChange :: CARD16,+ connection_OutputChange :: CARD8,+ subpixel_order_OutputChange :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize OutputChange where+ serialize x+ = do serialize (timestamp_OutputChange x)+ serialize (config_timestamp_OutputChange x)+ serialize (window_OutputChange x)+ serialize (output_OutputChange x)+ serialize (crtc_OutputChange x)+ serialize (mode_OutputChange x)+ serialize (rotation_OutputChange x)+ serialize (connection_OutputChange x)+ serialize (subpixel_order_OutputChange x)+ size x+ = size (timestamp_OutputChange x) ++ size (config_timestamp_OutputChange x)+ + size (window_OutputChange x)+ + size (output_OutputChange x)+ + size (crtc_OutputChange x)+ + size (mode_OutputChange x)+ + size (rotation_OutputChange x)+ + size (connection_OutputChange x)+ + size (subpixel_order_OutputChange x)+ +instance Deserialize OutputChange where+ deserialize+ = do timestamp <- deserialize+ config_timestamp <- deserialize+ window <- deserialize+ output <- deserialize+ crtc <- deserialize+ mode <- deserialize+ rotation <- deserialize+ connection <- deserialize+ subpixel_order <- deserialize+ return+ (MkOutputChange timestamp config_timestamp window output crtc mode+ rotation+ connection+ subpixel_order)+ +data OutputProperty = MkOutputProperty{window_OutputProperty ::+ WINDOW,+ output_OutputProperty :: OUTPUT, atom_OutputProperty :: ATOM,+ timestamp_OutputProperty :: TIMESTAMP,+ status_OutputProperty :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize OutputProperty where+ serialize x+ = do serialize (window_OutputProperty x)+ serialize (output_OutputProperty x)+ serialize (atom_OutputProperty x)+ serialize (timestamp_OutputProperty x)+ serialize (status_OutputProperty x)+ putSkip 11+ size x+ = size (window_OutputProperty x) + size (output_OutputProperty x) ++ size (atom_OutputProperty x)+ + size (timestamp_OutputProperty x)+ + size (status_OutputProperty x)+ + 11+ +instance Deserialize OutputProperty where+ deserialize+ = do window <- deserialize+ output <- deserialize+ atom <- deserialize+ timestamp <- deserialize+ status <- deserialize+ skip 11+ return (MkOutputProperty window output atom timestamp status)+ +data NotifyData = NotifyDataCrtcChange CrtcChange+ | NotifyDataOutputChange OutputChange+ | NotifyDataOutputProperty OutputProperty+ deriving (Show, Typeable)++instance Serialize NotifyData where+ serialize (NotifyDataCrtcChange x) = serialize x+ serialize (NotifyDataOutputChange x) = serialize x+ serialize (NotifyDataOutputProperty x) = serialize x++ size (NotifyDataCrtcChange x) = size x+ size (NotifyDataOutputChange x) = size x+ size (NotifyDataOutputProperty x) = size x++deserializeNotifyData :: NotifyEnum -> Get NotifyData+deserializeNotifyData NotifyCrtcChange = NotifyDataCrtcChange `liftM` deserialize+deserializeNotifyData NotifyOutputChange = NotifyDataOutputChange `liftM` deserialize+deserializeNotifyData NotifyOutputProperty = NotifyDataOutputProperty `liftM` deserialize++subCodeToNotifyEnum :: CARD8 -> NotifyEnum+subCodeToNotifyEnum 0 = NotifyCrtcChange+subCodeToNotifyEnum 1 = NotifyOutputChange+subCodeToNotifyEnum 2 = NotifyOutputProperty++data Notify = MkNotify{subCode_Notify :: CARD8,+ u_Notify :: NotifyData}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event Notify+ +instance Deserialize Notify where+ deserialize+ = do skip 1+ subCode <- deserialize+ skip 2+ u <- deserializeNotifyData (subCodeToNotifyEnum subCode)+ return (MkNotify subCode u)
+ patched/Graphics/XHB/Gen/Record.hs view
@@ -0,0 +1,92 @@+module Graphics.XHB.Gen.Record+ (extension, queryVersion, createContext, registerClients,+ unregisterClients, getContext, enableContext, disableContext,+ freeContext, module Graphics.XHB.Gen.Record.Types)+ where+import Graphics.XHB.Gen.Record.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(..))+ +extension :: ExtensionId+extension = "RECORD"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD16 -> CARD16 -> IO (Receipt QueryVersionReply)+queryVersion c major_version minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion major_version minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createContext ::+ Graphics.XHB.Connection.Types.Connection -> CreateContext -> IO ()+createContext c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +registerClients ::+ Graphics.XHB.Connection.Types.Connection ->+ RegisterClients -> IO ()+registerClients c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +unregisterClients ::+ Graphics.XHB.Connection.Types.Connection ->+ UnregisterClients -> IO ()+unregisterClients c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getContext ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Record.Types.CONTEXT ->+ IO (Receipt GetContextReply)+getContext c context+ = do receipt <- newEmptyReceiptIO+ let req = MkGetContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +enableContext ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Record.Types.CONTEXT ->+ IO (Receipt EnableContextReply)+enableContext c context+ = do receipt <- newEmptyReceiptIO+ let req = MkEnableContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +disableContext ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Record.Types.CONTEXT -> IO ()+disableContext c context+ = do let req = MkDisableContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +freeContext ::+ Graphics.XHB.Connection.Types.Connection ->+ Graphics.XHB.Gen.Record.Types.CONTEXT -> IO ()+freeContext c context+ = do let req = MkFreeContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/Record/Types.hs view
@@ -0,0 +1,417 @@+module Graphics.XHB.Gen.Record.Types+ (deserializeError, deserializeEvent, CONTEXT, Range8(..),+ Range16(..), ExtRange(..), Range(..), ElementHeader, HType(..),+ ClientSpec, CS(..), ClientInfo(..), BadContext(..),+ QueryVersion(..), QueryVersionReply(..), CreateContext(..),+ RegisterClients(..), UnregisterClients(..), GetContext(..),+ GetContextReply(..), EnableContext(..), EnableContextReply(..),+ DisableContext(..), FreeContext(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError 0+ = return (liftM toError (deserialize :: Get BadContext))+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +newtype CONTEXT = MkCONTEXT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data Range8 = MkRange8{first_Range8 :: CARD8, last_Range8 :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize Range8 where+ serialize x+ = do serialize (first_Range8 x)+ serialize (last_Range8 x)+ size x = size (first_Range8 x) + size (last_Range8 x)+ +instance Deserialize Range8 where+ deserialize+ = do first <- deserialize+ last <- deserialize+ return (MkRange8 first last)+ +data Range16 = MkRange16{first_Range16 :: CARD16,+ last_Range16 :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize Range16 where+ serialize x+ = do serialize (first_Range16 x)+ serialize (last_Range16 x)+ size x = size (first_Range16 x) + size (last_Range16 x)+ +instance Deserialize Range16 where+ deserialize+ = do first <- deserialize+ last <- deserialize+ return (MkRange16 first last)+ +data ExtRange = MkExtRange{major_ExtRange :: Range8,+ minor_ExtRange :: Range16}+ deriving (Show, Typeable)+ +instance Serialize ExtRange where+ serialize x+ = do serialize (major_ExtRange x)+ serialize (minor_ExtRange x)+ size x = size (major_ExtRange x) + size (minor_ExtRange x)+ +instance Deserialize ExtRange where+ deserialize+ = do major <- deserialize+ minor <- deserialize+ return (MkExtRange major minor)+ +data Range = MkRange{core_requests_Range :: Range8,+ core_replies_Range :: Range8, ext_requests_Range :: ExtRange,+ ext_replies_Range :: ExtRange, delivered_events_Range :: Range8,+ device_events_Range :: Range8, errors_Range :: Range8,+ client_started_Range :: BOOL, client_died_Range :: BOOL}+ deriving (Show, Typeable)+ +instance Serialize Range where+ serialize x+ = do serialize (core_requests_Range x)+ serialize (core_replies_Range x)+ serialize (ext_requests_Range x)+ serialize (ext_replies_Range x)+ serialize (delivered_events_Range x)+ serialize (device_events_Range x)+ serialize (errors_Range x)+ serialize (client_started_Range x)+ serialize (client_died_Range x)+ size x+ = size (core_requests_Range x) + size (core_replies_Range x) ++ size (ext_requests_Range x)+ + size (ext_replies_Range x)+ + size (delivered_events_Range x)+ + size (device_events_Range x)+ + size (errors_Range x)+ + size (client_started_Range x)+ + size (client_died_Range x)+ +instance Deserialize Range where+ deserialize+ = do core_requests <- deserialize+ core_replies <- deserialize+ ext_requests <- deserialize+ ext_replies <- deserialize+ delivered_events <- deserialize+ device_events <- deserialize+ errors <- deserialize+ client_started <- deserialize+ client_died <- deserialize+ return+ (MkRange core_requests core_replies ext_requests ext_replies+ delivered_events+ device_events+ errors+ client_started+ client_died)+ +type ElementHeader = CARD8+ +data HType = HTypeFromServerTime+ | HTypeFromClientTime+ | HTypeFromClientSequence+ +instance BitEnum HType where+ toBit HTypeFromServerTime{} = 0+ toBit HTypeFromClientTime{} = 1+ toBit HTypeFromClientSequence{} = 2+ fromBit 0 = HTypeFromServerTime+ fromBit 1 = HTypeFromClientTime+ fromBit 2 = HTypeFromClientSequence+ +type ClientSpec = CARD32+ +data CS = CSCurrentClients+ | CSFutureClients+ | CSAllClients+ +instance SimpleEnum CS where+ toValue CSCurrentClients{} = 1+ toValue CSFutureClients{} = 2+ toValue CSAllClients{} = 3+ fromValue 1 = CSCurrentClients+ fromValue 2 = CSFutureClients+ fromValue 3 = CSAllClients+ +data ClientInfo = MkClientInfo{client_resource_ClientInfo ::+ ClientSpec,+ num_ranges_ClientInfo :: CARD32, ranges_ClientInfo :: [Range]}+ deriving (Show, Typeable)+ +instance Serialize ClientInfo where+ serialize x+ = do serialize (client_resource_ClientInfo x)+ serialize (num_ranges_ClientInfo x)+ serializeList (ranges_ClientInfo x)+ size x+ = size (client_resource_ClientInfo x) ++ size (num_ranges_ClientInfo x)+ + sum (map size (ranges_ClientInfo x))+ +instance Deserialize ClientInfo where+ deserialize+ = do client_resource <- deserialize+ num_ranges <- deserialize+ ranges <- deserializeList (fromIntegral num_ranges)+ return (MkClientInfo client_resource num_ranges ranges)+ +data BadContext = MkBadContext{invalid_record_BadContext :: CARD32}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadContext+ +instance Deserialize BadContext where+ deserialize+ = do skip 4+ invalid_record <- deserialize+ return (MkBadContext invalid_record)+ +data QueryVersion = MkQueryVersion{major_version_QueryVersion ::+ CARD16,+ minor_version_QueryVersion :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (major_version_QueryVersion x) ++ size (minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (major_version_QueryVersion x)+ serialize (minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD16,+ minor_version_QueryVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data CreateContext = MkCreateContext{context_CreateContext ::+ Graphics.XHB.Gen.Record.Types.CONTEXT,+ element_header_CreateContext :: ElementHeader,+ num_client_specs_CreateContext :: CARD32,+ num_ranges_CreateContext :: CARD32,+ client_specs_CreateContext :: [ClientSpec],+ ranges_CreateContext :: [Range]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateContext where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (context_CreateContext x) ++ size (element_header_CreateContext x)+ + 3+ + size (num_client_specs_CreateContext x)+ + size (num_ranges_CreateContext x)+ + sum (map size (client_specs_CreateContext x))+ + sum (map size (ranges_CreateContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_CreateContext x)+ serialize (element_header_CreateContext x)+ putSkip 3+ serialize (num_client_specs_CreateContext x)+ serialize (num_ranges_CreateContext x)+ serializeList (client_specs_CreateContext x)+ serializeList (ranges_CreateContext x)+ putSkip (requiredPadding size__)+ +data RegisterClients = MkRegisterClients{context_RegisterClients ::+ Graphics.XHB.Gen.Record.Types.CONTEXT,+ element_header_RegisterClients :: ElementHeader,+ num_client_specs_RegisterClients :: CARD32,+ num_ranges_RegisterClients :: CARD32,+ client_specs_RegisterClients :: [ClientSpec],+ ranges_RegisterClients :: [Range]}+ deriving (Show, Typeable)+ +instance ExtensionRequest RegisterClients where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (context_RegisterClients x) ++ size (element_header_RegisterClients x)+ + 3+ + size (num_client_specs_RegisterClients x)+ + size (num_ranges_RegisterClients x)+ + sum (map size (client_specs_RegisterClients x))+ + sum (map size (ranges_RegisterClients x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_RegisterClients x)+ serialize (element_header_RegisterClients x)+ putSkip 3+ serialize (num_client_specs_RegisterClients x)+ serialize (num_ranges_RegisterClients x)+ serializeList (client_specs_RegisterClients x)+ serializeList (ranges_RegisterClients x)+ putSkip (requiredPadding size__)+ +data UnregisterClients = MkUnregisterClients{context_UnregisterClients+ :: Graphics.XHB.Gen.Record.Types.CONTEXT,+ num_client_specs_UnregisterClients :: CARD32,+ client_specs_UnregisterClients :: [ClientSpec]}+ deriving (Show, Typeable)+ +instance ExtensionRequest UnregisterClients where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (context_UnregisterClients x) ++ size (num_client_specs_UnregisterClients x)+ + sum (map size (client_specs_UnregisterClients x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_UnregisterClients x)+ serialize (num_client_specs_UnregisterClients x)+ serializeList (client_specs_UnregisterClients x)+ putSkip (requiredPadding size__)+ +data GetContext = MkGetContext{context_GetContext ::+ Graphics.XHB.Gen.Record.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetContext where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (context_GetContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_GetContext x)+ putSkip (requiredPadding size__)+ +data GetContextReply = MkGetContextReply{enabled_GetContextReply ::+ BOOL,+ element_header_GetContextReply :: ElementHeader,+ num_intercepted_clients_GetContextReply :: CARD32,+ intercepted_clients_GetContextReply :: [ClientInfo]}+ deriving (Show, Typeable)+ +instance Deserialize GetContextReply where+ deserialize+ = do skip 1+ enabled <- deserialize+ skip 2+ length <- deserialize+ element_header <- deserialize+ skip 3+ num_intercepted_clients <- deserialize+ skip 16+ intercepted_clients <- deserializeList+ (fromIntegral num_intercepted_clients)+ let _ = isCard32 length+ return+ (MkGetContextReply enabled element_header num_intercepted_clients+ intercepted_clients)+ +data EnableContext = MkEnableContext{context_EnableContext ::+ Graphics.XHB.Gen.Record.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest EnableContext where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4 + size (context_EnableContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_EnableContext x)+ putSkip (requiredPadding size__)+ +data EnableContextReply = MkEnableContextReply{category_EnableContextReply+ :: CARD8,+ element_header_EnableContextReply :: ElementHeader,+ client_swapped_EnableContextReply :: BOOL,+ xid_base_EnableContextReply :: CARD32,+ server_time_EnableContextReply :: CARD32,+ rec_sequence_num_EnableContextReply :: CARD32,+ data_EnableContextReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize EnableContextReply where+ deserialize+ = do skip 1+ category <- deserialize+ skip 2+ length <- deserialize+ element_header <- deserialize+ client_swapped <- deserialize+ skip 2+ xid_base <- deserialize+ server_time <- deserialize+ rec_sequence_num <- deserialize+ skip 8+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return+ (MkEnableContextReply category element_header client_swapped+ xid_base+ server_time+ rec_sequence_num+ data_)+ +data DisableContext = MkDisableContext{context_DisableContext ::+ Graphics.XHB.Gen.Record.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest DisableContext where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__ = 4 + size (context_DisableContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_DisableContext x)+ putSkip (requiredPadding size__)+ +data FreeContext = MkFreeContext{context_FreeContext ::+ Graphics.XHB.Gen.Record.Types.CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest FreeContext where+ extensionId _ = "RECORD"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (context_FreeContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_FreeContext x)+ putSkip (requiredPadding size__)
+ patched/Graphics/XHB/Gen/Render.hs view
@@ -0,0 +1,282 @@+module Graphics.XHB.Gen.Render+ (extension, queryVersion, queryPictFormats, queryPictIndexValues,+ createPicture, changePicture, setPictureClipRectangles,+ freePicture, composite, trapezoids, triangles, triStrip, triFan,+ createGlyphSet, referenceGlyphSet, freeGlyphSet, addGlyphs,+ freeGlyphs, compositeGlyphs8, compositeGlyphs16, compositeGlyphs32,+ fillRectangles, createCursor, setPictureTransform, queryFilters,+ setPictureFilter, createAnimCursor, addTraps, createSolidFill,+ createLinearGradient, createRadialGradient, createConicalGradient,+ module Graphics.XHB.Gen.Render.Types)+ where+import Graphics.XHB.Gen.Render.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 (CreateCursor(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "RENDER"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt QueryVersionReply)+queryVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryPictFormats ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryPictFormatsReply)+queryPictFormats c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryPictFormats+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryPictIndexValues ::+ Graphics.XHB.Connection.Types.Connection ->+ PICTFORMAT -> IO (Receipt QueryPictIndexValuesReply)+queryPictIndexValues c format+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryPictIndexValues format+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createPicture ::+ Graphics.XHB.Connection.Types.Connection -> CreatePicture -> IO ()+createPicture c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +changePicture ::+ Graphics.XHB.Connection.Types.Connection ->+ PICTURE -> ValueParam CARD32 -> IO ()+changePicture c picture value+ = do let req = MkChangePicture picture value+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setPictureClipRectangles ::+ Graphics.XHB.Connection.Types.Connection ->+ SetPictureClipRectangles -> IO ()+setPictureClipRectangles c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +freePicture ::+ Graphics.XHB.Connection.Types.Connection -> PICTURE -> IO ()+freePicture c picture+ = do let req = MkFreePicture picture+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +composite ::+ Graphics.XHB.Connection.Types.Connection -> Composite -> IO ()+composite c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +trapezoids ::+ Graphics.XHB.Connection.Types.Connection -> Trapezoids -> IO ()+trapezoids c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +triangles ::+ Graphics.XHB.Connection.Types.Connection -> Triangles -> IO ()+triangles c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +triStrip ::+ Graphics.XHB.Connection.Types.Connection -> TriStrip -> IO ()+triStrip c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +triFan ::+ Graphics.XHB.Connection.Types.Connection -> TriFan -> IO ()+triFan c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createGlyphSet ::+ Graphics.XHB.Connection.Types.Connection ->+ GLYPHSET -> PICTFORMAT -> IO ()+createGlyphSet c gsid format+ = do let req = MkCreateGlyphSet gsid format+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +referenceGlyphSet ::+ Graphics.XHB.Connection.Types.Connection ->+ GLYPHSET -> GLYPHSET -> IO ()+referenceGlyphSet c gsid existing+ = do let req = MkReferenceGlyphSet gsid existing+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +freeGlyphSet ::+ Graphics.XHB.Connection.Types.Connection -> GLYPHSET -> IO ()+freeGlyphSet c glyphset+ = do let req = MkFreeGlyphSet glyphset+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +addGlyphs ::+ Graphics.XHB.Connection.Types.Connection -> AddGlyphs -> IO ()+addGlyphs c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +freeGlyphs ::+ Graphics.XHB.Connection.Types.Connection ->+ GLYPHSET -> [GLYPH] -> IO ()+freeGlyphs c glyphset glyphs+ = do let req = MkFreeGlyphs glyphset glyphs+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +compositeGlyphs8 ::+ Graphics.XHB.Connection.Types.Connection ->+ CompositeGlyphs8 -> IO ()+compositeGlyphs8 c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +compositeGlyphs16 ::+ Graphics.XHB.Connection.Types.Connection ->+ CompositeGlyphs16 -> IO ()+compositeGlyphs16 c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +compositeGlyphs32 ::+ Graphics.XHB.Connection.Types.Connection ->+ CompositeGlyphs32 -> IO ()+compositeGlyphs32 c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +fillRectangles ::+ Graphics.XHB.Connection.Types.Connection -> FillRectangles -> IO ()+fillRectangles c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createCursor ::+ Graphics.XHB.Connection.Types.Connection -> CreateCursor -> IO ()+createCursor c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setPictureTransform ::+ Graphics.XHB.Connection.Types.Connection ->+ PICTURE -> TRANSFORM -> IO ()+setPictureTransform c picture transform+ = do let req = MkSetPictureTransform picture transform+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +queryFilters ::+ Graphics.XHB.Connection.Types.Connection ->+ DRAWABLE -> IO (Receipt QueryFiltersReply)+queryFilters c drawable+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryFilters drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setPictureFilter ::+ Graphics.XHB.Connection.Types.Connection ->+ SetPictureFilter -> IO ()+setPictureFilter c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createAnimCursor ::+ Graphics.XHB.Connection.Types.Connection ->+ CURSOR -> [ANIMCURSORELT] -> IO ()+createAnimCursor c cid cursors+ = do let req = MkCreateAnimCursor cid cursors+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +addTraps ::+ Graphics.XHB.Connection.Types.Connection -> AddTraps -> IO ()+addTraps c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createSolidFill ::+ Graphics.XHB.Connection.Types.Connection ->+ PICTURE -> COLOR -> IO ()+createSolidFill c picture color+ = do let req = MkCreateSolidFill picture color+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createLinearGradient ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateLinearGradient -> IO ()+createLinearGradient c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createRadialGradient ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateRadialGradient -> IO ()+createRadialGradient c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createConicalGradient ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateConicalGradient -> IO ()+createConicalGradient c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/Render/Types.hs view
@@ -0,0 +1,1497 @@+module Graphics.XHB.Gen.Render.Types+ (deserializeError, deserializeEvent, PictType(..), PictOp(..),+ PolyEdge(..), PolyMode(..), CP(..), SubPixel(..), Repeat(..),+ GLYPH, GLYPHSET, PICTURE, PICTFORMAT, FIXED, DIRECTFORMAT(..),+ PICTFORMINFO(..), PICTVISUAL(..), PICTDEPTH(..), PICTSCREEN(..),+ INDEXVALUE(..), COLOR(..), POINTFIX(..), LINEFIX(..), TRIANGLE(..),+ TRAPEZOID(..), GLYPHINFO(..), QueryVersion(..),+ QueryVersionReply(..), QueryPictFormats(..),+ QueryPictFormatsReply(..), QueryPictIndexValues(..),+ QueryPictIndexValuesReply(..), CreatePicture(..),+ ChangePicture(..), SetPictureClipRectangles(..), FreePicture(..),+ Composite(..), Trapezoids(..), Triangles(..), TriStrip(..),+ TriFan(..), CreateGlyphSet(..), ReferenceGlyphSet(..),+ FreeGlyphSet(..), AddGlyphs(..), FreeGlyphs(..),+ CompositeGlyphs8(..), CompositeGlyphs16(..), CompositeGlyphs32(..),+ FillRectangles(..), CreateCursor(..), TRANSFORM(..),+ SetPictureTransform(..), QueryFilters(..), QueryFiltersReply(..),+ SetPictureFilter(..), ANIMCURSORELT(..), CreateAnimCursor(..),+ SPANFIX(..), TRAP(..), AddTraps(..), CreateSolidFill(..),+ CreateLinearGradient(..), CreateRadialGradient(..),+ CreateConicalGradient(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (CreateCursor(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data PictType = PictTypeIndexed+ | PictTypeDirect+ +instance SimpleEnum PictType where+ toValue PictTypeIndexed{} = 0+ toValue PictTypeDirect{} = 1+ fromValue 0 = PictTypeIndexed+ fromValue 1 = PictTypeDirect+ +data PictOp = PictOpClear+ | PictOpSrc+ | PictOpDst+ | PictOpOver+ | PictOpOverReverse+ | PictOpIn+ | PictOpInReverse+ | PictOpOut+ | PictOpOutReverse+ | PictOpAtop+ | PictOpAtopReverse+ | PictOpXor+ | PictOpAdd+ | PictOpSaturate+ | PictOpDisjointClear+ | PictOpDisjointSrc+ | PictOpDisjointDst+ | PictOpDisjointOver+ | PictOpDisjointOverReverse+ | PictOpDisjointIn+ | PictOpDisjointInReverse+ | PictOpDisjointOut+ | PictOpDisjointOutReverse+ | PictOpDisjointAtop+ | PictOpDisjointAtopReverse+ | PictOpDisjointXor+ | PictOpConjointClear+ | PictOpConjointSrc+ | PictOpConjointDst+ | PictOpConjointOver+ | PictOpConjointOverReverse+ | PictOpConjointIn+ | PictOpConjointInReverse+ | PictOpConjointOut+ | PictOpConjointOutReverse+ | PictOpConjointAtop+ | PictOpConjointAtopReverse+ | PictOpConjointXor+ +instance SimpleEnum PictOp where+ toValue PictOpClear{} = 0+ toValue PictOpSrc{} = 1+ toValue PictOpDst{} = 2+ toValue PictOpOver{} = 3+ toValue PictOpOverReverse{} = 4+ toValue PictOpIn{} = 5+ toValue PictOpInReverse{} = 6+ toValue PictOpOut{} = 7+ toValue PictOpOutReverse{} = 8+ toValue PictOpAtop{} = 9+ toValue PictOpAtopReverse{} = 10+ toValue PictOpXor{} = 11+ toValue PictOpAdd{} = 12+ toValue PictOpSaturate{} = 13+ toValue PictOpDisjointClear{} = 14+ toValue PictOpDisjointSrc{} = 15+ toValue PictOpDisjointDst{} = 16+ toValue PictOpDisjointOver{} = 17+ toValue PictOpDisjointOverReverse{} = 18+ toValue PictOpDisjointIn{} = 19+ toValue PictOpDisjointInReverse{} = 20+ toValue PictOpDisjointOut{} = 21+ toValue PictOpDisjointOutReverse{} = 22+ toValue PictOpDisjointAtop{} = 23+ toValue PictOpDisjointAtopReverse{} = 24+ toValue PictOpDisjointXor{} = 25+ toValue PictOpConjointClear{} = 26+ toValue PictOpConjointSrc{} = 27+ toValue PictOpConjointDst{} = 28+ toValue PictOpConjointOver{} = 29+ toValue PictOpConjointOverReverse{} = 30+ toValue PictOpConjointIn{} = 31+ toValue PictOpConjointInReverse{} = 32+ toValue PictOpConjointOut{} = 33+ toValue PictOpConjointOutReverse{} = 34+ toValue PictOpConjointAtop{} = 35+ toValue PictOpConjointAtopReverse{} = 36+ toValue PictOpConjointXor{} = 37+ fromValue 0 = PictOpClear+ fromValue 1 = PictOpSrc+ fromValue 2 = PictOpDst+ fromValue 3 = PictOpOver+ fromValue 4 = PictOpOverReverse+ fromValue 5 = PictOpIn+ fromValue 6 = PictOpInReverse+ fromValue 7 = PictOpOut+ fromValue 8 = PictOpOutReverse+ fromValue 9 = PictOpAtop+ fromValue 10 = PictOpAtopReverse+ fromValue 11 = PictOpXor+ fromValue 12 = PictOpAdd+ fromValue 13 = PictOpSaturate+ fromValue 14 = PictOpDisjointClear+ fromValue 15 = PictOpDisjointSrc+ fromValue 16 = PictOpDisjointDst+ fromValue 17 = PictOpDisjointOver+ fromValue 18 = PictOpDisjointOverReverse+ fromValue 19 = PictOpDisjointIn+ fromValue 20 = PictOpDisjointInReverse+ fromValue 21 = PictOpDisjointOut+ fromValue 22 = PictOpDisjointOutReverse+ fromValue 23 = PictOpDisjointAtop+ fromValue 24 = PictOpDisjointAtopReverse+ fromValue 25 = PictOpDisjointXor+ fromValue 26 = PictOpConjointClear+ fromValue 27 = PictOpConjointSrc+ fromValue 28 = PictOpConjointDst+ fromValue 29 = PictOpConjointOver+ fromValue 30 = PictOpConjointOverReverse+ fromValue 31 = PictOpConjointIn+ fromValue 32 = PictOpConjointInReverse+ fromValue 33 = PictOpConjointOut+ fromValue 34 = PictOpConjointOutReverse+ fromValue 35 = PictOpConjointAtop+ fromValue 36 = PictOpConjointAtopReverse+ fromValue 37 = PictOpConjointXor+ +data PolyEdge = PolyEdgeSharp+ | PolyEdgeSmooth+ +instance SimpleEnum PolyEdge where+ toValue PolyEdgeSharp{} = 0+ toValue PolyEdgeSmooth{} = 1+ fromValue 0 = PolyEdgeSharp+ fromValue 1 = PolyEdgeSmooth+ +data PolyMode = PolyModePrecise+ | PolyModeImprecise+ +instance SimpleEnum PolyMode where+ toValue PolyModePrecise{} = 0+ toValue PolyModeImprecise{} = 1+ fromValue 0 = PolyModePrecise+ fromValue 1 = PolyModeImprecise+ +data CP = CPRepeat+ | CPAlphaMap+ | CPAlphaXOrigin+ | CPAlphaYOrigin+ | CPClipXOrigin+ | CPClipYOrigin+ | CPClipMask+ | CPGraphicsExposure+ | CPSubwindowMode+ | CPPolyEdge+ | CPPolyMode+ | CPDither+ | CPComponentAlpha+ +instance BitEnum CP where+ toBit CPRepeat{} = 0+ toBit CPAlphaMap{} = 1+ toBit CPAlphaXOrigin{} = 2+ toBit CPAlphaYOrigin{} = 3+ toBit CPClipXOrigin{} = 4+ toBit CPClipYOrigin{} = 5+ toBit CPClipMask{} = 6+ toBit CPGraphicsExposure{} = 7+ toBit CPSubwindowMode{} = 8+ toBit CPPolyEdge{} = 9+ toBit CPPolyMode{} = 10+ toBit CPDither{} = 11+ toBit CPComponentAlpha{} = 12+ fromBit 0 = CPRepeat+ fromBit 1 = CPAlphaMap+ fromBit 2 = CPAlphaXOrigin+ fromBit 3 = CPAlphaYOrigin+ fromBit 4 = CPClipXOrigin+ fromBit 5 = CPClipYOrigin+ fromBit 6 = CPClipMask+ fromBit 7 = CPGraphicsExposure+ fromBit 8 = CPSubwindowMode+ fromBit 9 = CPPolyEdge+ fromBit 10 = CPPolyMode+ fromBit 11 = CPDither+ fromBit 12 = CPComponentAlpha+ +data SubPixel = SubPixelUnknown+ | SubPixelHorizontalRGB+ | SubPixelHorizontalBGR+ | SubPixelVerticalRGB+ | SubPixelVerticalBGR+ | SubPixelNone+ +instance SimpleEnum SubPixel where+ toValue SubPixelUnknown{} = 0+ toValue SubPixelHorizontalRGB{} = 1+ toValue SubPixelHorizontalBGR{} = 2+ toValue SubPixelVerticalRGB{} = 3+ toValue SubPixelVerticalBGR{} = 4+ toValue SubPixelNone{} = 5+ fromValue 0 = SubPixelUnknown+ fromValue 1 = SubPixelHorizontalRGB+ fromValue 2 = SubPixelHorizontalBGR+ fromValue 3 = SubPixelVerticalRGB+ fromValue 4 = SubPixelVerticalBGR+ fromValue 5 = SubPixelNone+ +data Repeat = RepeatNone+ | RepeatNormal+ | RepeatPad+ | RepeatReflect+ +instance SimpleEnum Repeat where+ toValue RepeatNone{} = 0+ toValue RepeatNormal{} = 1+ toValue RepeatPad{} = 2+ toValue RepeatReflect{} = 3+ fromValue 0 = RepeatNone+ fromValue 1 = RepeatNormal+ fromValue 2 = RepeatPad+ fromValue 3 = RepeatReflect+ +type GLYPH = CARD32+ +newtype GLYPHSET = MkGLYPHSET Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype PICTURE = MkPICTURE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype PICTFORMAT = MkPICTFORMAT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +type FIXED = INT32+ +data DIRECTFORMAT = MkDIRECTFORMAT{red_shift_DIRECTFORMAT ::+ CARD16,+ red_mask_DIRECTFORMAT :: CARD16,+ green_shift_DIRECTFORMAT :: CARD16,+ green_mask_DIRECTFORMAT :: CARD16,+ blue_shift_DIRECTFORMAT :: CARD16,+ blue_mask_DIRECTFORMAT :: CARD16,+ alpha_shift_DIRECTFORMAT :: CARD16,+ alpha_mask_DIRECTFORMAT :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize DIRECTFORMAT where+ serialize x+ = do serialize (red_shift_DIRECTFORMAT x)+ serialize (red_mask_DIRECTFORMAT x)+ serialize (green_shift_DIRECTFORMAT x)+ serialize (green_mask_DIRECTFORMAT x)+ serialize (blue_shift_DIRECTFORMAT x)+ serialize (blue_mask_DIRECTFORMAT x)+ serialize (alpha_shift_DIRECTFORMAT x)+ serialize (alpha_mask_DIRECTFORMAT x)+ size x+ = size (red_shift_DIRECTFORMAT x) + size (red_mask_DIRECTFORMAT x)+ + size (green_shift_DIRECTFORMAT x)+ + size (green_mask_DIRECTFORMAT x)+ + size (blue_shift_DIRECTFORMAT x)+ + size (blue_mask_DIRECTFORMAT x)+ + size (alpha_shift_DIRECTFORMAT x)+ + size (alpha_mask_DIRECTFORMAT x)+ +instance Deserialize DIRECTFORMAT where+ deserialize+ = do red_shift <- deserialize+ red_mask <- deserialize+ green_shift <- deserialize+ green_mask <- deserialize+ blue_shift <- deserialize+ blue_mask <- deserialize+ alpha_shift <- deserialize+ alpha_mask <- deserialize+ return+ (MkDIRECTFORMAT red_shift red_mask green_shift green_mask+ blue_shift+ blue_mask+ alpha_shift+ alpha_mask)+ +data PICTFORMINFO = MkPICTFORMINFO{id_PICTFORMINFO :: PICTFORMAT,+ type_PICTFORMINFO :: CARD8, depth_PICTFORMINFO :: CARD8,+ direct_PICTFORMINFO :: DIRECTFORMAT,+ colormap_PICTFORMINFO :: COLORMAP}+ deriving (Show, Typeable)+ +instance Serialize PICTFORMINFO where+ serialize x+ = do serialize (id_PICTFORMINFO x)+ serialize (type_PICTFORMINFO x)+ serialize (depth_PICTFORMINFO x)+ putSkip 2+ serialize (direct_PICTFORMINFO x)+ serialize (colormap_PICTFORMINFO x)+ size x+ = size (id_PICTFORMINFO x) + size (type_PICTFORMINFO x) ++ size (depth_PICTFORMINFO x)+ + 2+ + size (direct_PICTFORMINFO x)+ + size (colormap_PICTFORMINFO x)+ +instance Deserialize PICTFORMINFO where+ deserialize+ = do id <- deserialize+ type_ <- deserialize+ depth <- deserialize+ skip 2+ direct <- deserialize+ colormap <- deserialize+ return (MkPICTFORMINFO id type_ depth direct colormap)+ +data PICTVISUAL = MkPICTVISUAL{visual_PICTVISUAL :: VISUALID,+ format_PICTVISUAL :: PICTFORMAT}+ deriving (Show, Typeable)+ +instance Serialize PICTVISUAL where+ serialize x+ = do serialize (visual_PICTVISUAL x)+ serialize (format_PICTVISUAL x)+ size x = size (visual_PICTVISUAL x) + size (format_PICTVISUAL x)+ +instance Deserialize PICTVISUAL where+ deserialize+ = do visual <- deserialize+ format <- deserialize+ return (MkPICTVISUAL visual format)+ +data PICTDEPTH = MkPICTDEPTH{depth_PICTDEPTH :: CARD8,+ num_visuals_PICTDEPTH :: CARD16, visuals_PICTDEPTH :: [PICTVISUAL]}+ deriving (Show, Typeable)+ +instance Serialize PICTDEPTH where+ serialize x+ = do serialize (depth_PICTDEPTH x)+ putSkip 1+ serialize (num_visuals_PICTDEPTH x)+ putSkip 4+ serializeList (visuals_PICTDEPTH x)+ size x+ = size (depth_PICTDEPTH x) + 1 + size (num_visuals_PICTDEPTH x) + 4+ + sum (map size (visuals_PICTDEPTH x))+ +instance Deserialize PICTDEPTH where+ deserialize+ = do depth <- deserialize+ skip 1+ num_visuals <- deserialize+ skip 4+ visuals <- deserializeList (fromIntegral num_visuals)+ return (MkPICTDEPTH depth num_visuals visuals)+ +data PICTSCREEN = MkPICTSCREEN{num_depths_PICTSCREEN :: CARD32,+ fallback_PICTSCREEN :: PICTFORMAT,+ depths_PICTSCREEN :: [PICTDEPTH]}+ deriving (Show, Typeable)+ +instance Serialize PICTSCREEN where+ serialize x+ = do serialize (num_depths_PICTSCREEN x)+ serialize (fallback_PICTSCREEN x)+ serializeList (depths_PICTSCREEN x)+ size x+ = size (num_depths_PICTSCREEN x) + size (fallback_PICTSCREEN x) ++ sum (map size (depths_PICTSCREEN x))+ +instance Deserialize PICTSCREEN where+ deserialize+ = do num_depths <- deserialize+ fallback <- deserialize+ depths <- deserializeList (fromIntegral num_depths)+ return (MkPICTSCREEN num_depths fallback depths)+ +data INDEXVALUE = MkINDEXVALUE{pixel_INDEXVALUE :: CARD32,+ red_INDEXVALUE :: CARD16, green_INDEXVALUE :: CARD16,+ blue_INDEXVALUE :: CARD16, alpha_INDEXVALUE :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize INDEXVALUE where+ serialize x+ = do serialize (pixel_INDEXVALUE x)+ serialize (red_INDEXVALUE x)+ serialize (green_INDEXVALUE x)+ serialize (blue_INDEXVALUE x)+ serialize (alpha_INDEXVALUE x)+ size x+ = size (pixel_INDEXVALUE x) + size (red_INDEXVALUE x) ++ size (green_INDEXVALUE x)+ + size (blue_INDEXVALUE x)+ + size (alpha_INDEXVALUE x)+ +instance Deserialize INDEXVALUE where+ deserialize+ = do pixel <- deserialize+ red <- deserialize+ green <- deserialize+ blue <- deserialize+ alpha <- deserialize+ return (MkINDEXVALUE pixel red green blue alpha)+ +data COLOR = MkCOLOR{red_COLOR :: CARD16, green_COLOR :: CARD16,+ blue_COLOR :: CARD16, alpha_COLOR :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize COLOR where+ serialize x+ = do serialize (red_COLOR x)+ serialize (green_COLOR x)+ serialize (blue_COLOR x)+ serialize (alpha_COLOR x)+ size x+ = size (red_COLOR x) + size (green_COLOR x) + size (blue_COLOR x) ++ size (alpha_COLOR x)+ +instance Deserialize COLOR where+ deserialize+ = do red <- deserialize+ green <- deserialize+ blue <- deserialize+ alpha <- deserialize+ return (MkCOLOR red green blue alpha)+ +data POINTFIX = MkPOINTFIX{x_POINTFIX :: FIXED,+ y_POINTFIX :: FIXED}+ deriving (Show, Typeable)+ +instance Serialize POINTFIX where+ serialize x+ = do serialize (x_POINTFIX x)+ serialize (y_POINTFIX x)+ size x = size (x_POINTFIX x) + size (y_POINTFIX x)+ +instance Deserialize POINTFIX where+ deserialize+ = do x <- deserialize+ y <- deserialize+ return (MkPOINTFIX x y)+ +data LINEFIX = MkLINEFIX{p1_LINEFIX :: POINTFIX,+ p2_LINEFIX :: POINTFIX}+ deriving (Show, Typeable)+ +instance Serialize LINEFIX where+ serialize x+ = do serialize (p1_LINEFIX x)+ serialize (p2_LINEFIX x)+ size x = size (p1_LINEFIX x) + size (p2_LINEFIX x)+ +instance Deserialize LINEFIX where+ deserialize+ = do p1 <- deserialize+ p2 <- deserialize+ return (MkLINEFIX p1 p2)+ +data TRIANGLE = MkTRIANGLE{p1_TRIANGLE :: POINTFIX,+ p2_TRIANGLE :: POINTFIX, p3_TRIANGLE :: POINTFIX}+ deriving (Show, Typeable)+ +instance Serialize TRIANGLE where+ serialize x+ = do serialize (p1_TRIANGLE x)+ serialize (p2_TRIANGLE x)+ serialize (p3_TRIANGLE x)+ size x+ = size (p1_TRIANGLE x) + size (p2_TRIANGLE x) ++ size (p3_TRIANGLE x)+ +instance Deserialize TRIANGLE where+ deserialize+ = do p1 <- deserialize+ p2 <- deserialize+ p3 <- deserialize+ return (MkTRIANGLE p1 p2 p3)+ +data TRAPEZOID = MkTRAPEZOID{top_TRAPEZOID :: FIXED,+ bottom_TRAPEZOID :: FIXED, left_TRAPEZOID :: LINEFIX,+ right_TRAPEZOID :: LINEFIX}+ deriving (Show, Typeable)+ +instance Serialize TRAPEZOID where+ serialize x+ = do serialize (top_TRAPEZOID x)+ serialize (bottom_TRAPEZOID x)+ serialize (left_TRAPEZOID x)+ serialize (right_TRAPEZOID x)+ size x+ = size (top_TRAPEZOID x) + size (bottom_TRAPEZOID x) ++ size (left_TRAPEZOID x)+ + size (right_TRAPEZOID x)+ +instance Deserialize TRAPEZOID where+ deserialize+ = do top <- deserialize+ bottom <- deserialize+ left <- deserialize+ right <- deserialize+ return (MkTRAPEZOID top bottom left right)+ +data GLYPHINFO = MkGLYPHINFO{width_GLYPHINFO :: CARD16,+ height_GLYPHINFO :: CARD16, x_GLYPHINFO :: INT16,+ y_GLYPHINFO :: INT16, x_off_GLYPHINFO :: INT16,+ y_off_GLYPHINFO :: INT16}+ deriving (Show, Typeable)+ +instance Serialize GLYPHINFO where+ serialize x+ = do serialize (width_GLYPHINFO x)+ serialize (height_GLYPHINFO x)+ serialize (x_GLYPHINFO x)+ serialize (y_GLYPHINFO x)+ serialize (x_off_GLYPHINFO x)+ serialize (y_off_GLYPHINFO x)+ size x+ = size (width_GLYPHINFO x) + size (height_GLYPHINFO x) ++ size (x_GLYPHINFO x)+ + size (y_GLYPHINFO x)+ + size (x_off_GLYPHINFO x)+ + size (y_off_GLYPHINFO x)+ +instance Deserialize GLYPHINFO where+ deserialize+ = do width <- deserialize+ height <- deserialize+ x <- deserialize+ y <- deserialize+ x_off <- deserialize+ y_off <- deserialize+ return (MkGLYPHINFO width height x y x_off y_off)+ +data QueryVersion = MkQueryVersion{client_major_version_QueryVersion+ :: CARD32,+ client_minor_version_QueryVersion :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_QueryVersion x) ++ size (client_minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_QueryVersion x)+ serialize (client_minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD32,+ minor_version_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ skip 16+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data QueryPictFormats = MkQueryPictFormats{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryPictFormats where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryPictFormatsReply = MkQueryPictFormatsReply{num_formats_QueryPictFormatsReply+ :: CARD32,+ num_screens_QueryPictFormatsReply :: CARD32,+ num_depths_QueryPictFormatsReply :: CARD32,+ num_visuals_QueryPictFormatsReply :: CARD32,+ num_subpixel_QueryPictFormatsReply :: CARD32,+ formats_QueryPictFormatsReply ::+ [PICTFORMINFO],+ screens_QueryPictFormatsReply :: [PICTSCREEN],+ subpixels_QueryPictFormatsReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize QueryPictFormatsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_formats <- deserialize+ num_screens <- deserialize+ num_depths <- deserialize+ num_visuals <- deserialize+ num_subpixel <- deserialize+ skip 4+ formats <- deserializeList (fromIntegral num_formats)+ screens <- deserializeList (fromIntegral num_screens)+ subpixels <- deserializeList (fromIntegral num_subpixel)+ let _ = isCard32 length+ return+ (MkQueryPictFormatsReply num_formats num_screens num_depths+ num_visuals+ num_subpixel+ formats+ screens+ subpixels)+ +data QueryPictIndexValues = MkQueryPictIndexValues{format_QueryPictIndexValues+ :: PICTFORMAT}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryPictIndexValues where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (format_QueryPictIndexValues x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (format_QueryPictIndexValues x)+ putSkip (requiredPadding size__)+ +data QueryPictIndexValuesReply = MkQueryPictIndexValuesReply{num_values_QueryPictIndexValuesReply+ :: CARD32,+ values_QueryPictIndexValuesReply ::+ [INDEXVALUE]}+ deriving (Show, Typeable)+ +instance Deserialize QueryPictIndexValuesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_values <- deserialize+ skip 20+ values <- deserializeList (fromIntegral num_values)+ let _ = isCard32 length+ return (MkQueryPictIndexValuesReply num_values values)+ +data CreatePicture = MkCreatePicture{pid_CreatePicture :: PICTURE,+ drawable_CreatePicture :: DRAWABLE,+ format_CreatePicture :: PICTFORMAT,+ value_CreatePicture :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreatePicture where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (pid_CreatePicture x) + size (drawable_CreatePicture x)+ + size (format_CreatePicture x)+ + size (value_CreatePicture x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (pid_CreatePicture x)+ serialize (drawable_CreatePicture x)+ serialize (format_CreatePicture x)+ serialize (value_CreatePicture x)+ putSkip (requiredPadding size__)+ +data ChangePicture = MkChangePicture{picture_ChangePicture ::+ PICTURE,+ value_ChangePicture :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangePicture where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (picture_ChangePicture x) + size (value_ChangePicture x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_ChangePicture x)+ serialize (value_ChangePicture x)+ putSkip (requiredPadding size__)+ +data SetPictureClipRectangles = MkSetPictureClipRectangles{picture_SetPictureClipRectangles+ :: PICTURE,+ clip_x_origin_SetPictureClipRectangles ::+ INT16,+ clip_y_origin_SetPictureClipRectangles ::+ INT16,+ rectangles_SetPictureClipRectangles ::+ [RECTANGLE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPictureClipRectangles where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (picture_SetPictureClipRectangles x) ++ size (clip_x_origin_SetPictureClipRectangles x)+ + size (clip_y_origin_SetPictureClipRectangles x)+ + sum (map size (rectangles_SetPictureClipRectangles x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_SetPictureClipRectangles x)+ serialize (clip_x_origin_SetPictureClipRectangles x)+ serialize (clip_y_origin_SetPictureClipRectangles x)+ serializeList (rectangles_SetPictureClipRectangles x)+ putSkip (requiredPadding size__)+ +data FreePicture = MkFreePicture{picture_FreePicture :: PICTURE}+ deriving (Show, Typeable)+ +instance ExtensionRequest FreePicture where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (picture_FreePicture x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_FreePicture x)+ putSkip (requiredPadding size__)+ +data Composite = MkComposite{op_Composite :: CARD8,+ src_Composite :: PICTURE, mask_Composite :: PICTURE,+ dst_Composite :: PICTURE, src_x_Composite :: INT16,+ src_y_Composite :: INT16, mask_x_Composite :: INT16,+ mask_y_Composite :: INT16, dst_x_Composite :: INT16,+ dst_y_Composite :: INT16, width_Composite :: CARD16,+ height_Composite :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest Composite where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (op_Composite x) + 3 + size (src_Composite x) ++ size (mask_Composite x)+ + size (dst_Composite x)+ + size (src_x_Composite x)+ + size (src_y_Composite x)+ + size (mask_x_Composite x)+ + size (mask_y_Composite x)+ + size (dst_x_Composite x)+ + size (dst_y_Composite x)+ + size (width_Composite x)+ + size (height_Composite x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_Composite x)+ putSkip 3+ serialize (src_Composite x)+ serialize (mask_Composite x)+ serialize (dst_Composite x)+ serialize (src_x_Composite x)+ serialize (src_y_Composite x)+ serialize (mask_x_Composite x)+ serialize (mask_y_Composite x)+ serialize (dst_x_Composite x)+ serialize (dst_y_Composite x)+ serialize (width_Composite x)+ serialize (height_Composite x)+ putSkip (requiredPadding size__)+ +data Trapezoids = MkTrapezoids{op_Trapezoids :: CARD8,+ src_Trapezoids :: PICTURE, dst_Trapezoids :: PICTURE,+ mask_format_Trapezoids :: PICTFORMAT, src_x_Trapezoids :: INT16,+ src_y_Trapezoids :: INT16, traps_Trapezoids :: [TRAPEZOID]}+ deriving (Show, Typeable)+ +instance ExtensionRequest Trapezoids where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__+ = 4 + size (op_Trapezoids x) + 3 + size (src_Trapezoids x) ++ size (dst_Trapezoids x)+ + size (mask_format_Trapezoids x)+ + size (src_x_Trapezoids x)+ + size (src_y_Trapezoids x)+ + sum (map size (traps_Trapezoids x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_Trapezoids x)+ putSkip 3+ serialize (src_Trapezoids x)+ serialize (dst_Trapezoids x)+ serialize (mask_format_Trapezoids x)+ serialize (src_x_Trapezoids x)+ serialize (src_y_Trapezoids x)+ serializeList (traps_Trapezoids x)+ putSkip (requiredPadding size__)+ +data Triangles = MkTriangles{op_Triangles :: CARD8,+ src_Triangles :: PICTURE, dst_Triangles :: PICTURE,+ mask_format_Triangles :: PICTFORMAT, src_x_Triangles :: INT16,+ src_y_Triangles :: INT16, triangles_Triangles :: [TRIANGLE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest Triangles where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__+ = 4 + size (op_Triangles x) + 3 + size (src_Triangles x) ++ size (dst_Triangles x)+ + size (mask_format_Triangles x)+ + size (src_x_Triangles x)+ + size (src_y_Triangles x)+ + sum (map size (triangles_Triangles x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_Triangles x)+ putSkip 3+ serialize (src_Triangles x)+ serialize (dst_Triangles x)+ serialize (mask_format_Triangles x)+ serialize (src_x_Triangles x)+ serialize (src_y_Triangles x)+ serializeList (triangles_Triangles x)+ putSkip (requiredPadding size__)+ +data TriStrip = MkTriStrip{op_TriStrip :: CARD8,+ src_TriStrip :: PICTURE, dst_TriStrip :: PICTURE,+ mask_format_TriStrip :: PICTFORMAT, src_x_TriStrip :: INT16,+ src_y_TriStrip :: INT16, points_TriStrip :: [POINTFIX]}+ deriving (Show, Typeable)+ +instance ExtensionRequest TriStrip where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (op_TriStrip x) + 3 + size (src_TriStrip x) ++ size (dst_TriStrip x)+ + size (mask_format_TriStrip x)+ + size (src_x_TriStrip x)+ + size (src_y_TriStrip x)+ + sum (map size (points_TriStrip x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_TriStrip x)+ putSkip 3+ serialize (src_TriStrip x)+ serialize (dst_TriStrip x)+ serialize (mask_format_TriStrip x)+ serialize (src_x_TriStrip x)+ serialize (src_y_TriStrip x)+ serializeList (points_TriStrip x)+ putSkip (requiredPadding size__)+ +data TriFan = MkTriFan{op_TriFan :: CARD8, src_TriFan :: PICTURE,+ dst_TriFan :: PICTURE, mask_format_TriFan :: PICTFORMAT,+ src_x_TriFan :: INT16, src_y_TriFan :: INT16,+ points_TriFan :: [POINTFIX]}+ deriving (Show, Typeable)+ +instance ExtensionRequest TriFan where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__+ = 4 + size (op_TriFan x) + 3 + size (src_TriFan x) ++ size (dst_TriFan x)+ + size (mask_format_TriFan x)+ + size (src_x_TriFan x)+ + size (src_y_TriFan x)+ + sum (map size (points_TriFan x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_TriFan x)+ putSkip 3+ serialize (src_TriFan x)+ serialize (dst_TriFan x)+ serialize (mask_format_TriFan x)+ serialize (src_x_TriFan x)+ serialize (src_y_TriFan x)+ serializeList (points_TriFan x)+ putSkip (requiredPadding size__)+ +data CreateGlyphSet = MkCreateGlyphSet{gsid_CreateGlyphSet ::+ GLYPHSET,+ format_CreateGlyphSet :: PICTFORMAT}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateGlyphSet where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__+ = 4 + size (gsid_CreateGlyphSet x) + size (format_CreateGlyphSet x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (gsid_CreateGlyphSet x)+ serialize (format_CreateGlyphSet x)+ putSkip (requiredPadding size__)+ +data ReferenceGlyphSet = MkReferenceGlyphSet{gsid_ReferenceGlyphSet+ :: GLYPHSET,+ existing_ReferenceGlyphSet :: GLYPHSET}+ deriving (Show, Typeable)+ +instance ExtensionRequest ReferenceGlyphSet where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__+ = 4 + size (gsid_ReferenceGlyphSet x) ++ size (existing_ReferenceGlyphSet x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (gsid_ReferenceGlyphSet x)+ serialize (existing_ReferenceGlyphSet x)+ putSkip (requiredPadding size__)+ +data FreeGlyphSet = MkFreeGlyphSet{glyphset_FreeGlyphSet ::+ GLYPHSET}+ deriving (Show, Typeable)+ +instance ExtensionRequest FreeGlyphSet where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__ = 4 + size (glyphset_FreeGlyphSet x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (glyphset_FreeGlyphSet x)+ putSkip (requiredPadding size__)+ +data AddGlyphs = MkAddGlyphs{glyphset_AddGlyphs :: GLYPHSET,+ glyphs_len_AddGlyphs :: CARD32, glyphids_AddGlyphs :: [CARD32],+ glyphs_AddGlyphs :: [GLYPHINFO], data_AddGlyphs :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest AddGlyphs where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 20+ let size__+ = 4 + size (glyphset_AddGlyphs x) + size (glyphs_len_AddGlyphs x) ++ sum (map size (glyphids_AddGlyphs x))+ + sum (map size (glyphs_AddGlyphs x))+ + sum (map size (data_AddGlyphs x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (glyphset_AddGlyphs x)+ serialize (glyphs_len_AddGlyphs x)+ serializeList (glyphids_AddGlyphs x)+ serializeList (glyphs_AddGlyphs x)+ serializeList (data_AddGlyphs x)+ putSkip (requiredPadding size__)+ +data FreeGlyphs = MkFreeGlyphs{glyphset_FreeGlyphs :: GLYPHSET,+ glyphs_FreeGlyphs :: [GLYPH]}+ deriving (Show, Typeable)+ +instance ExtensionRequest FreeGlyphs where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 22+ let size__+ = 4 + size (glyphset_FreeGlyphs x) ++ sum (map size (glyphs_FreeGlyphs x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (glyphset_FreeGlyphs x)+ serializeList (glyphs_FreeGlyphs x)+ putSkip (requiredPadding size__)+ +data CompositeGlyphs8 = MkCompositeGlyphs8{op_CompositeGlyphs8 ::+ CARD8,+ src_CompositeGlyphs8 :: PICTURE,+ dst_CompositeGlyphs8 :: PICTURE,+ mask_format_CompositeGlyphs8 :: PICTFORMAT,+ glyphset_CompositeGlyphs8 :: GLYPHSET,+ src_x_CompositeGlyphs8 :: INT16,+ src_y_CompositeGlyphs8 :: INT16,+ glyphcmds_CompositeGlyphs8 :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CompositeGlyphs8 where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 23+ let size__+ = 4 + size (op_CompositeGlyphs8 x) + 3 ++ size (src_CompositeGlyphs8 x)+ + size (dst_CompositeGlyphs8 x)+ + size (mask_format_CompositeGlyphs8 x)+ + size (glyphset_CompositeGlyphs8 x)+ + size (src_x_CompositeGlyphs8 x)+ + size (src_y_CompositeGlyphs8 x)+ + sum (map size (glyphcmds_CompositeGlyphs8 x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_CompositeGlyphs8 x)+ putSkip 3+ serialize (src_CompositeGlyphs8 x)+ serialize (dst_CompositeGlyphs8 x)+ serialize (mask_format_CompositeGlyphs8 x)+ serialize (glyphset_CompositeGlyphs8 x)+ serialize (src_x_CompositeGlyphs8 x)+ serialize (src_y_CompositeGlyphs8 x)+ serializeList (glyphcmds_CompositeGlyphs8 x)+ putSkip (requiredPadding size__)+ +data CompositeGlyphs16 = MkCompositeGlyphs16{op_CompositeGlyphs16+ :: CARD8,+ src_CompositeGlyphs16 :: PICTURE,+ dst_CompositeGlyphs16 :: PICTURE,+ mask_format_CompositeGlyphs16 :: PICTFORMAT,+ glyphset_CompositeGlyphs16 :: GLYPHSET,+ src_x_CompositeGlyphs16 :: INT16,+ src_y_CompositeGlyphs16 :: INT16,+ glyphcmds_CompositeGlyphs16 :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CompositeGlyphs16 where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 24+ let size__+ = 4 + size (op_CompositeGlyphs16 x) + 3 ++ size (src_CompositeGlyphs16 x)+ + size (dst_CompositeGlyphs16 x)+ + size (mask_format_CompositeGlyphs16 x)+ + size (glyphset_CompositeGlyphs16 x)+ + size (src_x_CompositeGlyphs16 x)+ + size (src_y_CompositeGlyphs16 x)+ + sum (map size (glyphcmds_CompositeGlyphs16 x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_CompositeGlyphs16 x)+ putSkip 3+ serialize (src_CompositeGlyphs16 x)+ serialize (dst_CompositeGlyphs16 x)+ serialize (mask_format_CompositeGlyphs16 x)+ serialize (glyphset_CompositeGlyphs16 x)+ serialize (src_x_CompositeGlyphs16 x)+ serialize (src_y_CompositeGlyphs16 x)+ serializeList (glyphcmds_CompositeGlyphs16 x)+ putSkip (requiredPadding size__)+ +data CompositeGlyphs32 = MkCompositeGlyphs32{op_CompositeGlyphs32+ :: CARD8,+ src_CompositeGlyphs32 :: PICTURE,+ dst_CompositeGlyphs32 :: PICTURE,+ mask_format_CompositeGlyphs32 :: PICTFORMAT,+ glyphset_CompositeGlyphs32 :: GLYPHSET,+ src_x_CompositeGlyphs32 :: INT16,+ src_y_CompositeGlyphs32 :: INT16,+ glyphcmds_CompositeGlyphs32 :: [BYTE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CompositeGlyphs32 where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 25+ let size__+ = 4 + size (op_CompositeGlyphs32 x) + 3 ++ size (src_CompositeGlyphs32 x)+ + size (dst_CompositeGlyphs32 x)+ + size (mask_format_CompositeGlyphs32 x)+ + size (glyphset_CompositeGlyphs32 x)+ + size (src_x_CompositeGlyphs32 x)+ + size (src_y_CompositeGlyphs32 x)+ + sum (map size (glyphcmds_CompositeGlyphs32 x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_CompositeGlyphs32 x)+ putSkip 3+ serialize (src_CompositeGlyphs32 x)+ serialize (dst_CompositeGlyphs32 x)+ serialize (mask_format_CompositeGlyphs32 x)+ serialize (glyphset_CompositeGlyphs32 x)+ serialize (src_x_CompositeGlyphs32 x)+ serialize (src_y_CompositeGlyphs32 x)+ serializeList (glyphcmds_CompositeGlyphs32 x)+ putSkip (requiredPadding size__)+ +data FillRectangles = MkFillRectangles{op_FillRectangles :: CARD8,+ dst_FillRectangles :: PICTURE, color_FillRectangles :: COLOR,+ rects_FillRectangles :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest FillRectangles where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 26+ let size__+ = 4 + size (op_FillRectangles x) + 3 + size (dst_FillRectangles x)+ + size (color_FillRectangles x)+ + sum (map size (rects_FillRectangles x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (op_FillRectangles x)+ putSkip 3+ serialize (dst_FillRectangles x)+ serialize (color_FillRectangles x)+ serializeList (rects_FillRectangles x)+ putSkip (requiredPadding size__)+ +data CreateCursor = MkCreateCursor{cid_CreateCursor :: CURSOR,+ source_CreateCursor :: PICTURE, x_CreateCursor :: CARD16,+ y_CreateCursor :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateCursor where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 27+ let size__+ = 4 + size (cid_CreateCursor x) + size (source_CreateCursor x) ++ size (x_CreateCursor x)+ + size (y_CreateCursor x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cid_CreateCursor x)+ serialize (source_CreateCursor x)+ serialize (x_CreateCursor x)+ serialize (y_CreateCursor x)+ putSkip (requiredPadding size__)+ +data TRANSFORM = MkTRANSFORM{matrix11_TRANSFORM :: FIXED,+ matrix12_TRANSFORM :: FIXED, matrix13_TRANSFORM :: FIXED,+ matrix21_TRANSFORM :: FIXED, matrix22_TRANSFORM :: FIXED,+ matrix23_TRANSFORM :: FIXED, matrix31_TRANSFORM :: FIXED,+ matrix32_TRANSFORM :: FIXED, matrix33_TRANSFORM :: FIXED}+ deriving (Show, Typeable)+ +instance Serialize TRANSFORM where+ serialize x+ = do serialize (matrix11_TRANSFORM x)+ serialize (matrix12_TRANSFORM x)+ serialize (matrix13_TRANSFORM x)+ serialize (matrix21_TRANSFORM x)+ serialize (matrix22_TRANSFORM x)+ serialize (matrix23_TRANSFORM x)+ serialize (matrix31_TRANSFORM x)+ serialize (matrix32_TRANSFORM x)+ serialize (matrix33_TRANSFORM x)+ size x+ = size (matrix11_TRANSFORM x) + size (matrix12_TRANSFORM x) ++ size (matrix13_TRANSFORM x)+ + size (matrix21_TRANSFORM x)+ + size (matrix22_TRANSFORM x)+ + size (matrix23_TRANSFORM x)+ + size (matrix31_TRANSFORM x)+ + size (matrix32_TRANSFORM x)+ + size (matrix33_TRANSFORM x)+ +instance Deserialize TRANSFORM where+ deserialize+ = do matrix11 <- deserialize+ matrix12 <- deserialize+ matrix13 <- deserialize+ matrix21 <- deserialize+ matrix22 <- deserialize+ matrix23 <- deserialize+ matrix31 <- deserialize+ matrix32 <- deserialize+ matrix33 <- deserialize+ return+ (MkTRANSFORM matrix11 matrix12 matrix13 matrix21 matrix22 matrix23+ matrix31+ matrix32+ matrix33)+ +data SetPictureTransform = MkSetPictureTransform{picture_SetPictureTransform+ :: PICTURE,+ transform_SetPictureTransform :: TRANSFORM}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPictureTransform where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 28+ let size__+ = 4 + size (picture_SetPictureTransform x) ++ size (transform_SetPictureTransform x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_SetPictureTransform x)+ serialize (transform_SetPictureTransform x)+ putSkip (requiredPadding size__)+ +data QueryFilters = MkQueryFilters{drawable_QueryFilters ::+ DRAWABLE}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryFilters where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 29+ let size__ = 4 + size (drawable_QueryFilters x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_QueryFilters x)+ putSkip (requiredPadding size__)+ +data QueryFiltersReply = MkQueryFiltersReply{num_aliases_QueryFiltersReply+ :: CARD32,+ num_filters_QueryFiltersReply :: CARD32,+ aliases_QueryFiltersReply :: [CARD16],+ filters_QueryFiltersReply :: [STR]}+ deriving (Show, Typeable)+ +instance Deserialize QueryFiltersReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_aliases <- deserialize+ num_filters <- deserialize+ skip 16+ aliases <- deserializeList (fromIntegral num_aliases)+ filters <- deserializeList (fromIntegral num_filters)+ let _ = isCard32 length+ return+ (MkQueryFiltersReply num_aliases num_filters aliases filters)+ +data SetPictureFilter = MkSetPictureFilter{picture_SetPictureFilter+ :: PICTURE,+ filter_len_SetPictureFilter :: CARD16,+ filter_SetPictureFilter :: [CChar],+ values_SetPictureFilter :: [FIXED]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPictureFilter where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 30+ let size__+ = 4 + size (picture_SetPictureFilter x) ++ size (filter_len_SetPictureFilter x)+ + 2+ + sum (map size (filter_SetPictureFilter x))+ + sum (map size (values_SetPictureFilter x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_SetPictureFilter x)+ serialize (filter_len_SetPictureFilter x)+ putSkip 2+ serializeList (filter_SetPictureFilter x)+ serializeList (values_SetPictureFilter x)+ putSkip (requiredPadding size__)+ +data ANIMCURSORELT = MkANIMCURSORELT{cursor_ANIMCURSORELT ::+ CURSOR,+ delay_ANIMCURSORELT :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize ANIMCURSORELT where+ serialize x+ = do serialize (cursor_ANIMCURSORELT x)+ serialize (delay_ANIMCURSORELT x)+ size x+ = size (cursor_ANIMCURSORELT x) + size (delay_ANIMCURSORELT x)+ +instance Deserialize ANIMCURSORELT where+ deserialize+ = do cursor <- deserialize+ delay <- deserialize+ return (MkANIMCURSORELT cursor delay)+ +data CreateAnimCursor = MkCreateAnimCursor{cid_CreateAnimCursor ::+ CURSOR,+ cursors_CreateAnimCursor :: [ANIMCURSORELT]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateAnimCursor where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 31+ let size__+ = 4 + size (cid_CreateAnimCursor x) ++ sum (map size (cursors_CreateAnimCursor x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cid_CreateAnimCursor x)+ serializeList (cursors_CreateAnimCursor x)+ putSkip (requiredPadding size__)+ +data SPANFIX = MkSPANFIX{l_SPANFIX :: FIXED, r_SPANFIX :: FIXED,+ y_SPANFIX :: FIXED}+ deriving (Show, Typeable)+ +instance Serialize SPANFIX where+ serialize x+ = do serialize (l_SPANFIX x)+ serialize (r_SPANFIX x)+ serialize (y_SPANFIX x)+ size x+ = size (l_SPANFIX x) + size (r_SPANFIX x) + size (y_SPANFIX x)+ +instance Deserialize SPANFIX where+ deserialize+ = do l <- deserialize+ r <- deserialize+ y <- deserialize+ return (MkSPANFIX l r y)+ +data TRAP = MkTRAP{top_TRAP :: SPANFIX, bot_TRAP :: SPANFIX}+ deriving (Show, Typeable)+ +instance Serialize TRAP where+ serialize x+ = do serialize (top_TRAP x)+ serialize (bot_TRAP x)+ size x = size (top_TRAP x) + size (bot_TRAP x)+ +instance Deserialize TRAP where+ deserialize+ = do top <- deserialize+ bot <- deserialize+ return (MkTRAP top bot)+ +data AddTraps = MkAddTraps{picture_AddTraps :: PICTURE,+ x_off_AddTraps :: INT16, y_off_AddTraps :: INT16,+ traps_AddTraps :: [TRAP]}+ deriving (Show, Typeable)+ +instance ExtensionRequest AddTraps where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 32+ let size__+ = 4 + size (picture_AddTraps x) + size (x_off_AddTraps x) ++ size (y_off_AddTraps x)+ + sum (map size (traps_AddTraps x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_AddTraps x)+ serialize (x_off_AddTraps x)+ serialize (y_off_AddTraps x)+ serializeList (traps_AddTraps x)+ putSkip (requiredPadding size__)+ +data CreateSolidFill = MkCreateSolidFill{picture_CreateSolidFill ::+ PICTURE,+ color_CreateSolidFill :: COLOR}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateSolidFill where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 33+ let size__+ = 4 + size (picture_CreateSolidFill x) ++ size (color_CreateSolidFill x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_CreateSolidFill x)+ serialize (color_CreateSolidFill x)+ putSkip (requiredPadding size__)+ +data CreateLinearGradient = MkCreateLinearGradient{picture_CreateLinearGradient+ :: PICTURE,+ p1_CreateLinearGradient :: POINTFIX,+ p2_CreateLinearGradient :: POINTFIX,+ num_stops_CreateLinearGradient :: CARD32,+ stops_CreateLinearGradient :: [FIXED],+ colors_CreateLinearGradient :: [COLOR]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateLinearGradient where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 34+ let size__+ = 4 + size (picture_CreateLinearGradient x) ++ size (p1_CreateLinearGradient x)+ + size (p2_CreateLinearGradient x)+ + size (num_stops_CreateLinearGradient x)+ + sum (map size (stops_CreateLinearGradient x))+ + sum (map size (colors_CreateLinearGradient x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_CreateLinearGradient x)+ serialize (p1_CreateLinearGradient x)+ serialize (p2_CreateLinearGradient x)+ serialize (num_stops_CreateLinearGradient x)+ serializeList (stops_CreateLinearGradient x)+ serializeList (colors_CreateLinearGradient x)+ putSkip (requiredPadding size__)+ +data CreateRadialGradient = MkCreateRadialGradient{picture_CreateRadialGradient+ :: PICTURE,+ inner_CreateRadialGradient :: POINTFIX,+ outer_CreateRadialGradient :: POINTFIX,+ inner_radius_CreateRadialGradient :: FIXED,+ outer_radius_CreateRadialGradient :: FIXED,+ num_stops_CreateRadialGradient :: CARD32,+ stops_CreateRadialGradient :: [FIXED],+ colors_CreateRadialGradient :: [COLOR]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateRadialGradient where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 35+ let size__+ = 4 + size (picture_CreateRadialGradient x) ++ size (inner_CreateRadialGradient x)+ + size (outer_CreateRadialGradient x)+ + size (inner_radius_CreateRadialGradient x)+ + size (outer_radius_CreateRadialGradient x)+ + size (num_stops_CreateRadialGradient x)+ + sum (map size (stops_CreateRadialGradient x))+ + sum (map size (colors_CreateRadialGradient x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_CreateRadialGradient x)+ serialize (inner_CreateRadialGradient x)+ serialize (outer_CreateRadialGradient x)+ serialize (inner_radius_CreateRadialGradient x)+ serialize (outer_radius_CreateRadialGradient x)+ serialize (num_stops_CreateRadialGradient x)+ serializeList (stops_CreateRadialGradient x)+ serializeList (colors_CreateRadialGradient x)+ putSkip (requiredPadding size__)+ +data CreateConicalGradient = MkCreateConicalGradient{picture_CreateConicalGradient+ :: PICTURE,+ center_CreateConicalGradient :: POINTFIX,+ angle_CreateConicalGradient :: FIXED,+ num_stops_CreateConicalGradient :: CARD32,+ stops_CreateConicalGradient :: [FIXED],+ colors_CreateConicalGradient :: [COLOR]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateConicalGradient where+ extensionId _ = "RENDER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 36+ let size__+ = 4 + size (picture_CreateConicalGradient x) ++ size (center_CreateConicalGradient x)+ + size (angle_CreateConicalGradient x)+ + size (num_stops_CreateConicalGradient x)+ + sum (map size (stops_CreateConicalGradient x))+ + sum (map size (colors_CreateConicalGradient x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_CreateConicalGradient x)+ serialize (center_CreateConicalGradient x)+ serialize (angle_CreateConicalGradient x)+ serialize (num_stops_CreateConicalGradient x)+ serializeList (stops_CreateConicalGradient x)+ serializeList (colors_CreateConicalGradient x)+ putSkip (requiredPadding size__)
+ patched/Graphics/XHB/Gen/Res.hs view
@@ -0,0 +1,62 @@+module Graphics.XHB.Gen.Res+ (extension, queryVersion, queryClients, queryClientResources,+ queryClientPixmapBytes, module Graphics.XHB.Gen.Res.Types)+ where+import Graphics.XHB.Gen.Res.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "X-Resource"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> CARD8 -> IO (Receipt QueryVersionReply)+queryVersion c client_major client_minor+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major client_minor+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryClients ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryClientsReply)+queryClients c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryClients+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryClientResources ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt QueryClientResourcesReply)+queryClientResources c xid+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryClientResources xid+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryClientPixmapBytes ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt QueryClientPixmapBytesReply)+queryClientPixmapBytes c xid+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryClientPixmapBytes xid+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/Res/Types.hs view
@@ -0,0 +1,186 @@+module Graphics.XHB.Gen.Res.Types+ (deserializeError, deserializeEvent, Client(..), Type(..),+ QueryVersion(..), QueryVersionReply(..), QueryClients(..),+ QueryClientsReply(..), QueryClientResources(..),+ QueryClientResourcesReply(..), QueryClientPixmapBytes(..),+ QueryClientPixmapBytesReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data Client = MkClient{resource_base_Client :: CARD32,+ resource_mask_Client :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize Client where+ serialize x+ = do serialize (resource_base_Client x)+ serialize (resource_mask_Client x)+ size x+ = size (resource_base_Client x) + size (resource_mask_Client x)+ +instance Deserialize Client where+ deserialize+ = do resource_base <- deserialize+ resource_mask <- deserialize+ return (MkClient resource_base resource_mask)+ +data Type = MkType{resource_type_Type :: ATOM,+ count_Type :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize Type where+ serialize x+ = do serialize (resource_type_Type x)+ serialize (count_Type x)+ size x = size (resource_type_Type x) + size (count_Type x)+ +instance Deserialize Type where+ deserialize+ = do resource_type <- deserialize+ count <- deserialize+ return (MkType resource_type count)+ +data QueryVersion = MkQueryVersion{client_major_QueryVersion ::+ CARD8,+ client_minor_QueryVersion :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "X-Resource"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_QueryVersion x) ++ size (client_minor_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_QueryVersion x)+ serialize (client_minor_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{server_major_QueryVersionReply+ :: CARD16,+ server_minor_QueryVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ server_major <- deserialize+ server_minor <- deserialize+ let _ = isCard32 length+ return (MkQueryVersionReply server_major server_minor)+ +data QueryClients = MkQueryClients{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryClients where+ extensionId _ = "X-Resource"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryClientsReply = MkQueryClientsReply{num_clients_QueryClientsReply+ :: CARD32,+ clients_QueryClientsReply :: [Client]}+ deriving (Show, Typeable)+ +instance Deserialize QueryClientsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_clients <- deserialize+ skip 20+ clients <- deserializeList (fromIntegral num_clients)+ let _ = isCard32 length+ return (MkQueryClientsReply num_clients clients)+ +data QueryClientResources = MkQueryClientResources{xid_QueryClientResources+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryClientResources where+ extensionId _ = "X-Resource"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (xid_QueryClientResources x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (xid_QueryClientResources x)+ putSkip (requiredPadding size__)+ +data QueryClientResourcesReply = MkQueryClientResourcesReply{num_types_QueryClientResourcesReply+ :: CARD32,+ types_QueryClientResourcesReply ::+ [Type]}+ deriving (Show, Typeable)+ +instance Deserialize QueryClientResourcesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_types <- deserialize+ skip 20+ types <- deserializeList (fromIntegral num_types)+ let _ = isCard32 length+ return (MkQueryClientResourcesReply num_types types)+ +data QueryClientPixmapBytes = MkQueryClientPixmapBytes{xid_QueryClientPixmapBytes+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryClientPixmapBytes where+ extensionId _ = "X-Resource"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (xid_QueryClientPixmapBytes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (xid_QueryClientPixmapBytes x)+ putSkip (requiredPadding size__)+ +data QueryClientPixmapBytesReply = MkQueryClientPixmapBytesReply{bytes_QueryClientPixmapBytesReply+ :: CARD32,+ bytes_overflow_QueryClientPixmapBytesReply+ :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryClientPixmapBytesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ bytes <- deserialize+ bytes_overflow <- deserialize+ let _ = isCard32 length+ return (MkQueryClientPixmapBytesReply bytes bytes_overflow)
+ patched/Graphics/XHB/Gen/SELinux.hs view
@@ -0,0 +1,265 @@+module Graphics.XHB.Gen.SELinux+ (extension, queryVersion, setDeviceCreateContext,+ getDeviceCreateContext, setDeviceContext, getDeviceContext,+ setWindowCreateContext, getWindowCreateContext, getWindowContext,+ setPropertyCreateContext, getPropertyCreateContext,+ setPropertyUseContext, getPropertyUseContext, getPropertyContext,+ getPropertyDataContext, listProperties, setSelectionCreateContext,+ getSelectionCreateContext, setSelectionUseContext,+ getSelectionUseContext, getSelectionContext,+ getSelectionDataContext, listSelections, getClientContext,+ module Graphics.XHB.Gen.SELinux.Types)+ where+import Graphics.XHB.Gen.SELinux.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 (ListProperties(..), ListPropertiesReply(..),+ deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "SELinux"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> CARD8 -> IO (Receipt QueryVersionReply)+queryVersion c client_major client_minor+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major client_minor+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setDeviceCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> [CChar] -> IO ()+setDeviceCreateContext c context_len context+ = do let req = MkSetDeviceCreateContext context_len context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getDeviceCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetDeviceCreateContextReply)+getDeviceCreateContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetDeviceCreateContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setDeviceContext ::+ Graphics.XHB.Connection.Types.Connection ->+ SetDeviceContext -> IO ()+setDeviceContext c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getDeviceContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetDeviceContextReply)+getDeviceContext c device+ = do receipt <- newEmptyReceiptIO+ let req = MkGetDeviceContext device+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setWindowCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> [CChar] -> IO ()+setWindowCreateContext c context_len context+ = do let req = MkSetWindowCreateContext context_len context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getWindowCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetWindowCreateContextReply)+getWindowCreateContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetWindowCreateContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getWindowContext ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetWindowContextReply)+getWindowContext c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetWindowContext window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setPropertyCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> [CChar] -> IO ()+setPropertyCreateContext c context_len context+ = do let req = MkSetPropertyCreateContext context_len context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getPropertyCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetPropertyCreateContextReply)+getPropertyCreateContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPropertyCreateContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setPropertyUseContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> [CChar] -> IO ()+setPropertyUseContext c context_len context+ = do let req = MkSetPropertyUseContext context_len context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getPropertyUseContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetPropertyUseContextReply)+getPropertyUseContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPropertyUseContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getPropertyContext ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> ATOM -> IO (Receipt GetPropertyContextReply)+getPropertyContext c window property+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPropertyContext window property+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getPropertyDataContext ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> ATOM -> IO (Receipt GetPropertyDataContextReply)+getPropertyDataContext c window property+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPropertyDataContext window property+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +listProperties ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt ListPropertiesReply)+listProperties c window+ = do receipt <- newEmptyReceiptIO+ let req = MkListProperties window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setSelectionCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> [CChar] -> IO ()+setSelectionCreateContext c context_len context+ = do let req = MkSetSelectionCreateContext context_len context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getSelectionCreateContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetSelectionCreateContextReply)+getSelectionCreateContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetSelectionCreateContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setSelectionUseContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> [CChar] -> IO ()+setSelectionUseContext c context_len context+ = do let req = MkSetSelectionUseContext context_len context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getSelectionUseContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetSelectionUseContextReply)+getSelectionUseContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetSelectionUseContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getSelectionContext ::+ Graphics.XHB.Connection.Types.Connection ->+ ATOM -> IO (Receipt GetSelectionContextReply)+getSelectionContext c selection+ = do receipt <- newEmptyReceiptIO+ let req = MkGetSelectionContext selection+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getSelectionDataContext ::+ Graphics.XHB.Connection.Types.Connection ->+ ATOM -> IO (Receipt GetSelectionDataContextReply)+getSelectionDataContext c selection+ = do receipt <- newEmptyReceiptIO+ let req = MkGetSelectionDataContext selection+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +listSelections ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt ListSelectionsReply)+listSelections c+ = do receipt <- newEmptyReceiptIO+ let req = MkListSelections+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getClientContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetClientContextReply)+getClientContext c resource+ = do receipt <- newEmptyReceiptIO+ let req = MkGetClientContext resource+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/SELinux/Types.hs view
@@ -0,0 +1,707 @@+module Graphics.XHB.Gen.SELinux.Types+ (deserializeError, deserializeEvent, QueryVersion(..),+ QueryVersionReply(..), SetDeviceCreateContext(..),+ GetDeviceCreateContext(..), GetDeviceCreateContextReply(..),+ SetDeviceContext(..), GetDeviceContext(..),+ GetDeviceContextReply(..), SetWindowCreateContext(..),+ GetWindowCreateContext(..), GetWindowCreateContextReply(..),+ GetWindowContext(..), GetWindowContextReply(..), ListItem(..),+ SetPropertyCreateContext(..), GetPropertyCreateContext(..),+ GetPropertyCreateContextReply(..), SetPropertyUseContext(..),+ GetPropertyUseContext(..), GetPropertyUseContextReply(..),+ GetPropertyContext(..), GetPropertyContextReply(..),+ GetPropertyDataContext(..), GetPropertyDataContextReply(..),+ ListProperties(..), ListPropertiesReply(..),+ SetSelectionCreateContext(..), GetSelectionCreateContext(..),+ GetSelectionCreateContextReply(..), SetSelectionUseContext(..),+ GetSelectionUseContext(..), GetSelectionUseContextReply(..),+ GetSelectionContext(..), GetSelectionContextReply(..),+ GetSelectionDataContext(..), GetSelectionDataContextReply(..),+ ListSelections(..), ListSelectionsReply(..), GetClientContext(..),+ GetClientContextReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (ListProperties(..), ListPropertiesReply(..),+ deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data QueryVersion = MkQueryVersion{client_major_QueryVersion ::+ CARD8,+ client_minor_QueryVersion :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_QueryVersion x) ++ size (client_minor_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_QueryVersion x)+ serialize (client_minor_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{server_major_QueryVersionReply+ :: CARD16,+ server_minor_QueryVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ server_major <- deserialize+ server_minor <- deserialize+ let _ = isCard32 length+ return (MkQueryVersionReply server_major server_minor)+ +data SetDeviceCreateContext = MkSetDeviceCreateContext{context_len_SetDeviceCreateContext+ :: CARD32,+ context_SetDeviceCreateContext :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetDeviceCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (context_len_SetDeviceCreateContext x) ++ sum (map size (context_SetDeviceCreateContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_len_SetDeviceCreateContext x)+ serializeList (context_SetDeviceCreateContext x)+ putSkip (requiredPadding size__)+ +data GetDeviceCreateContext = MkGetDeviceCreateContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetDeviceCreateContextReply = MkGetDeviceCreateContextReply{context_len_GetDeviceCreateContextReply+ :: CARD32,+ context_GetDeviceCreateContextReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceCreateContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetDeviceCreateContextReply context_len context)+ +data SetDeviceContext = MkSetDeviceContext{device_SetDeviceContext+ :: CARD32,+ context_len_SetDeviceContext :: CARD32,+ context_SetDeviceContext :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetDeviceContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (device_SetDeviceContext x) ++ size (context_len_SetDeviceContext x)+ + sum (map size (context_SetDeviceContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_SetDeviceContext x)+ serialize (context_len_SetDeviceContext x)+ serializeList (context_SetDeviceContext x)+ putSkip (requiredPadding size__)+ +data GetDeviceContext = MkGetDeviceContext{device_GetDeviceContext+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (device_GetDeviceContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (device_GetDeviceContext x)+ putSkip (requiredPadding size__)+ +data GetDeviceContextReply = MkGetDeviceContextReply{context_len_GetDeviceContextReply+ :: CARD32,+ context_GetDeviceContextReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetDeviceContextReply context_len context)+ +data SetWindowCreateContext = MkSetWindowCreateContext{context_len_SetWindowCreateContext+ :: CARD32,+ context_SetWindowCreateContext :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetWindowCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (context_len_SetWindowCreateContext x) ++ sum (map size (context_SetWindowCreateContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_len_SetWindowCreateContext x)+ serializeList (context_SetWindowCreateContext x)+ putSkip (requiredPadding size__)+ +data GetWindowCreateContext = MkGetWindowCreateContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetWindowCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetWindowCreateContextReply = MkGetWindowCreateContextReply{context_len_GetWindowCreateContextReply+ :: CARD32,+ context_GetWindowCreateContextReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetWindowCreateContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetWindowCreateContextReply context_len context)+ +data GetWindowContext = MkGetWindowContext{window_GetWindowContext+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetWindowContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (window_GetWindowContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetWindowContext x)+ putSkip (requiredPadding size__)+ +data GetWindowContextReply = MkGetWindowContextReply{context_len_GetWindowContextReply+ :: CARD32,+ context_GetWindowContextReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetWindowContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetWindowContextReply context_len context)+ +data ListItem = MkListItem{name_ListItem :: ATOM,+ object_context_len_ListItem :: CARD32,+ data_context_len_ListItem :: CARD32,+ object_context_ListItem :: [CChar],+ data_context_ListItem :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize ListItem where+ serialize x+ = do serialize (name_ListItem x)+ serialize (object_context_len_ListItem x)+ serialize (data_context_len_ListItem x)+ serializeList (object_context_ListItem x)+ serializeList (data_context_ListItem x)+ size x+ = size (name_ListItem x) + size (object_context_len_ListItem x) ++ size (data_context_len_ListItem x)+ + sum (map size (object_context_ListItem x))+ + sum (map size (data_context_ListItem x))+ +instance Deserialize ListItem where+ deserialize+ = do name <- deserialize+ object_context_len <- deserialize+ data_context_len <- deserialize+ object_context <- deserializeList (fromIntegral object_context_len)+ data_context <- deserializeList (fromIntegral data_context_len)+ return+ (MkListItem name object_context_len data_context_len object_context+ data_context)+ +data SetPropertyCreateContext = MkSetPropertyCreateContext{context_len_SetPropertyCreateContext+ :: CARD32,+ context_SetPropertyCreateContext ::+ [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPropertyCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (context_len_SetPropertyCreateContext x) ++ sum (map size (context_SetPropertyCreateContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_len_SetPropertyCreateContext x)+ serializeList (context_SetPropertyCreateContext x)+ putSkip (requiredPadding size__)+ +data GetPropertyCreateContext = MkGetPropertyCreateContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPropertyCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetPropertyCreateContextReply = MkGetPropertyCreateContextReply{context_len_GetPropertyCreateContextReply+ :: CARD32,+ context_GetPropertyCreateContextReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetPropertyCreateContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetPropertyCreateContextReply context_len context)+ +data SetPropertyUseContext = MkSetPropertyUseContext{context_len_SetPropertyUseContext+ :: CARD32,+ context_SetPropertyUseContext :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPropertyUseContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__+ = 4 + size (context_len_SetPropertyUseContext x) ++ sum (map size (context_SetPropertyUseContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_len_SetPropertyUseContext x)+ serializeList (context_SetPropertyUseContext x)+ putSkip (requiredPadding size__)+ +data GetPropertyUseContext = MkGetPropertyUseContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPropertyUseContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetPropertyUseContextReply = MkGetPropertyUseContextReply{context_len_GetPropertyUseContextReply+ :: CARD32,+ context_GetPropertyUseContextReply ::+ [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetPropertyUseContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetPropertyUseContextReply context_len context)+ +data GetPropertyContext = MkGetPropertyContext{window_GetPropertyContext+ :: WINDOW,+ property_GetPropertyContext :: ATOM}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPropertyContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (window_GetPropertyContext x) ++ size (property_GetPropertyContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetPropertyContext x)+ serialize (property_GetPropertyContext x)+ putSkip (requiredPadding size__)+ +data GetPropertyContextReply = MkGetPropertyContextReply{context_len_GetPropertyContextReply+ :: CARD32,+ context_GetPropertyContextReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetPropertyContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetPropertyContextReply context_len context)+ +data GetPropertyDataContext = MkGetPropertyDataContext{window_GetPropertyDataContext+ :: WINDOW,+ property_GetPropertyDataContext :: ATOM}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPropertyDataContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__+ = 4 + size (window_GetPropertyDataContext x) ++ size (property_GetPropertyDataContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetPropertyDataContext x)+ serialize (property_GetPropertyDataContext x)+ putSkip (requiredPadding size__)+ +data GetPropertyDataContextReply = MkGetPropertyDataContextReply{context_len_GetPropertyDataContextReply+ :: CARD32,+ context_GetPropertyDataContextReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetPropertyDataContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetPropertyDataContextReply context_len context)+ +data ListProperties = MkListProperties{window_ListProperties ::+ WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListProperties where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 14+ let size__ = 4 + size (window_ListProperties x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_ListProperties x)+ putSkip (requiredPadding size__)+ +data ListPropertiesReply = MkListPropertiesReply{properties_len_ListPropertiesReply+ :: CARD32,+ properties_ListPropertiesReply :: [ListItem]}+ deriving (Show, Typeable)+ +instance Deserialize ListPropertiesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ properties_len <- deserialize+ skip 20+ properties <- deserializeList (fromIntegral properties_len)+ let _ = isCard32 length+ return (MkListPropertiesReply properties_len properties)+ +data SetSelectionCreateContext = MkSetSelectionCreateContext{context_len_SetSelectionCreateContext+ :: CARD32,+ context_SetSelectionCreateContext ::+ [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetSelectionCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 15+ let size__+ = 4 + size (context_len_SetSelectionCreateContext x) ++ sum (map size (context_SetSelectionCreateContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_len_SetSelectionCreateContext x)+ serializeList (context_SetSelectionCreateContext x)+ putSkip (requiredPadding size__)+ +data GetSelectionCreateContext = MkGetSelectionCreateContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetSelectionCreateContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 16+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetSelectionCreateContextReply = MkGetSelectionCreateContextReply{context_len_GetSelectionCreateContextReply+ :: CARD32,+ context_GetSelectionCreateContextReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetSelectionCreateContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetSelectionCreateContextReply context_len context)+ +data SetSelectionUseContext = MkSetSelectionUseContext{context_len_SetSelectionUseContext+ :: CARD32,+ context_SetSelectionUseContext :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetSelectionUseContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__+ = 4 + size (context_len_SetSelectionUseContext x) ++ sum (map size (context_SetSelectionUseContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_len_SetSelectionUseContext x)+ serializeList (context_SetSelectionUseContext x)+ putSkip (requiredPadding size__)+ +data GetSelectionUseContext = MkGetSelectionUseContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetSelectionUseContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetSelectionUseContextReply = MkGetSelectionUseContextReply{context_len_GetSelectionUseContextReply+ :: CARD32,+ context_GetSelectionUseContextReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetSelectionUseContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetSelectionUseContextReply context_len context)+ +data GetSelectionContext = MkGetSelectionContext{selection_GetSelectionContext+ :: ATOM}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetSelectionContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__ = 4 + size (selection_GetSelectionContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (selection_GetSelectionContext x)+ putSkip (requiredPadding size__)+ +data GetSelectionContextReply = MkGetSelectionContextReply{context_len_GetSelectionContextReply+ :: CARD32,+ context_GetSelectionContextReply ::+ [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetSelectionContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetSelectionContextReply context_len context)+ +data GetSelectionDataContext = MkGetSelectionDataContext{selection_GetSelectionDataContext+ :: ATOM}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetSelectionDataContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 20+ let size__ = 4 + size (selection_GetSelectionDataContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (selection_GetSelectionDataContext x)+ putSkip (requiredPadding size__)+ +data GetSelectionDataContextReply = MkGetSelectionDataContextReply{context_len_GetSelectionDataContextReply+ :: CARD32,+ context_GetSelectionDataContextReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetSelectionDataContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetSelectionDataContextReply context_len context)+ +data ListSelections = MkListSelections{}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListSelections where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 21+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data ListSelectionsReply = MkListSelectionsReply{selections_len_ListSelectionsReply+ :: CARD32,+ selections_ListSelectionsReply :: [ListItem]}+ deriving (Show, Typeable)+ +instance Deserialize ListSelectionsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ selections_len <- deserialize+ skip 20+ selections <- deserializeList (fromIntegral selections_len)+ let _ = isCard32 length+ return (MkListSelectionsReply selections_len selections)+ +data GetClientContext = MkGetClientContext{resource_GetClientContext+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetClientContext where+ extensionId _ = "SELinux"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 22+ let size__ = 4 + size (resource_GetClientContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (resource_GetClientContext x)+ putSkip (requiredPadding size__)+ +data GetClientContextReply = MkGetClientContextReply{context_len_GetClientContextReply+ :: CARD32,+ context_GetClientContextReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetClientContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context_len <- deserialize+ skip 20+ context <- deserializeList (fromIntegral context_len)+ let _ = isCard32 length+ return (MkGetClientContextReply context_len context)
+ patched/Graphics/XHB/Gen/ScreenSaver.hs view
@@ -0,0 +1,73 @@+module Graphics.XHB.Gen.ScreenSaver+ (extension, queryVersion, queryInfo, selectInput, setAttributes,+ unsetAttributes, suspend,+ module Graphics.XHB.Gen.ScreenSaver.Types)+ where+import Graphics.XHB.Gen.ScreenSaver.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "MIT-SCREEN-SAVER"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> CARD8 -> IO (Receipt QueryVersionReply)+queryVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryInfo ::+ Graphics.XHB.Connection.Types.Connection ->+ DRAWABLE -> IO (Receipt QueryInfoReply)+queryInfo c drawable+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryInfo drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +selectInput ::+ Graphics.XHB.Connection.Types.Connection ->+ DRAWABLE -> CARD32 -> IO ()+selectInput c drawable event_mask+ = do let req = MkSelectInput drawable event_mask+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setAttributes ::+ Graphics.XHB.Connection.Types.Connection -> SetAttributes -> IO ()+setAttributes c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +unsetAttributes ::+ Graphics.XHB.Connection.Types.Connection -> DRAWABLE -> IO ()+unsetAttributes c drawable+ = do let req = MkUnsetAttributes drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +suspend ::+ Graphics.XHB.Connection.Types.Connection -> BOOL -> IO ()+suspend c suspend+ = do let req = MkSuspend suspend+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/ScreenSaver/Types.hs view
@@ -0,0 +1,251 @@+module Graphics.XHB.Gen.ScreenSaver.Types+ (deserializeError, deserializeEvent, Kind(..), Event(..),+ State(..), QueryVersion(..), QueryVersionReply(..), QueryInfo(..),+ QueryInfoReply(..), SelectInput(..), SetAttributes(..),+ UnsetAttributes(..), Suspend(..), Notify(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get Notify))+deserializeEvent _ = Nothing+ +data Kind = KindBlanked+ | KindInternal+ | KindExternal+ +instance SimpleEnum Kind where+ toValue KindBlanked{} = 0+ toValue KindInternal{} = 1+ toValue KindExternal{} = 2+ fromValue 0 = KindBlanked+ fromValue 1 = KindInternal+ fromValue 2 = KindExternal+ +data Event = EventNotifyMask+ | EventCycleMask+ +instance BitEnum Event where+ toBit EventNotifyMask{} = 0+ toBit EventCycleMask{} = 1+ fromBit 0 = EventNotifyMask+ fromBit 1 = EventCycleMask+ +data State = StateOff+ | StateOn+ | StateCycle+ | StateDisabled+ +instance SimpleEnum State where+ toValue StateOff{} = 0+ toValue StateOn{} = 1+ toValue StateCycle{} = 2+ toValue StateDisabled{} = 3+ fromValue 0 = StateOff+ fromValue 1 = StateOn+ fromValue 2 = StateCycle+ fromValue 3 = StateDisabled+ +data QueryVersion = MkQueryVersion{client_major_version_QueryVersion+ :: CARD8,+ client_minor_version_QueryVersion :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "MIT-SCREEN-SAVER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_QueryVersion x) ++ size (client_minor_version_QueryVersion x)+ + 2+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_QueryVersion x)+ serialize (client_minor_version_QueryVersion x)+ putSkip 2+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{server_major_version_QueryVersionReply+ :: CARD16,+ server_minor_version_QueryVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ server_major_version <- deserialize+ server_minor_version <- deserialize+ skip 20+ let _ = isCard32 length+ return+ (MkQueryVersionReply server_major_version server_minor_version)+ +data QueryInfo = MkQueryInfo{drawable_QueryInfo :: DRAWABLE}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryInfo where+ extensionId _ = "MIT-SCREEN-SAVER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4 + size (drawable_QueryInfo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_QueryInfo x)+ putSkip (requiredPadding size__)+ +data QueryInfoReply = MkQueryInfoReply{state_QueryInfoReply ::+ CARD8,+ saver_window_QueryInfoReply :: WINDOW,+ ms_until_server_QueryInfoReply :: CARD32,+ ms_since_user_input_QueryInfoReply :: CARD32,+ event_mask_QueryInfoReply :: CARD32,+ kind_QueryInfoReply :: BYTE}+ deriving (Show, Typeable)+ +instance Deserialize QueryInfoReply where+ deserialize+ = do skip 1+ state <- deserialize+ skip 2+ length <- deserialize+ saver_window <- deserialize+ ms_until_server <- deserialize+ ms_since_user_input <- deserialize+ event_mask <- deserialize+ kind <- deserialize+ skip 7+ let _ = isCard32 length+ return+ (MkQueryInfoReply state saver_window ms_until_server+ ms_since_user_input+ event_mask+ kind)+ +data SelectInput = MkSelectInput{drawable_SelectInput :: DRAWABLE,+ event_mask_SelectInput :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectInput where+ extensionId _ = "MIT-SCREEN-SAVER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (drawable_SelectInput x) ++ size (event_mask_SelectInput x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_SelectInput x)+ serialize (event_mask_SelectInput x)+ putSkip (requiredPadding size__)+ +data SetAttributes = MkSetAttributes{drawable_SetAttributes ::+ DRAWABLE,+ x_SetAttributes :: INT16, y_SetAttributes :: INT16,+ width_SetAttributes :: CARD16, height_SetAttributes :: CARD16,+ border_width_SetAttributes :: CARD16,+ class_SetAttributes :: BYTE, depth_SetAttributes :: CARD8,+ visual_SetAttributes :: VISUALID,+ value_SetAttributes :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetAttributes where+ extensionId _ = "MIT-SCREEN-SAVER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (drawable_SetAttributes x) + size (x_SetAttributes x) ++ size (y_SetAttributes x)+ + size (width_SetAttributes x)+ + size (height_SetAttributes x)+ + size (border_width_SetAttributes x)+ + size (class_SetAttributes x)+ + size (depth_SetAttributes x)+ + size (visual_SetAttributes x)+ + size (value_SetAttributes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_SetAttributes x)+ serialize (x_SetAttributes x)+ serialize (y_SetAttributes x)+ serialize (width_SetAttributes x)+ serialize (height_SetAttributes x)+ serialize (border_width_SetAttributes x)+ serialize (class_SetAttributes x)+ serialize (depth_SetAttributes x)+ serialize (visual_SetAttributes x)+ serialize (value_SetAttributes x)+ putSkip (requiredPadding size__)+ +data UnsetAttributes = MkUnsetAttributes{drawable_UnsetAttributes+ :: DRAWABLE}+ deriving (Show, Typeable)+ +instance ExtensionRequest UnsetAttributes where+ extensionId _ = "MIT-SCREEN-SAVER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (drawable_UnsetAttributes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_UnsetAttributes x)+ putSkip (requiredPadding size__)+ +data Suspend = MkSuspend{suspend_Suspend :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest Suspend where+ extensionId _ = "MIT-SCREEN-SAVER"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4 + size (suspend_Suspend x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (suspend_Suspend x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data Notify = MkNotify{code_Notify :: CARD8, state_Notify :: BYTE,+ sequence_number_Notify :: CARD16, time_Notify :: TIMESTAMP,+ root_Notify :: WINDOW, window_Notify :: WINDOW,+ kind_Notify :: BYTE, forced_Notify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event Notify+ +instance Deserialize Notify where+ deserialize+ = do skip 1+ code <- deserialize+ skip 2+ state <- deserialize+ skip 1+ sequence_number <- deserialize+ time <- deserialize+ root <- deserialize+ window <- deserialize+ kind <- deserialize+ forced <- deserialize+ skip 14+ return+ (MkNotify code state sequence_number time root window kind forced)
+ patched/Graphics/XHB/Gen/Shape.hs view
@@ -0,0 +1,98 @@+module Graphics.XHB.Gen.Shape+ (extension, queryVersion, rectangles, mask, combine, offset,+ queryExtents, selectInput, inputSelected, getRectangles,+ module Graphics.XHB.Gen.Shape.Types)+ where+import Graphics.XHB.Gen.Shape.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "SHAPE"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryVersionReply)+queryVersion c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +rectangles ::+ Graphics.XHB.Connection.Types.Connection -> Rectangles -> IO ()+rectangles c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +mask :: Graphics.XHB.Connection.Types.Connection -> Mask -> IO ()+mask c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +combine ::+ Graphics.XHB.Connection.Types.Connection -> Combine -> IO ()+combine c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +offset ::+ Graphics.XHB.Connection.Types.Connection -> Offset -> IO ()+offset c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +queryExtents ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt QueryExtentsReply)+queryExtents c destination_window+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryExtents destination_window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +selectInput ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> BOOL -> IO ()+selectInput c destination_window enable+ = do let req = MkSelectInput destination_window enable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +inputSelected ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt InputSelectedReply)+inputSelected c destination_window+ = do receipt <- newEmptyReceiptIO+ let req = MkInputSelected destination_window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getRectangles ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> KIND -> IO (Receipt GetRectanglesReply)+getRectangles c window source_kind+ = do receipt <- newEmptyReceiptIO+ let req = MkGetRectangles window source_kind+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/Shape/Types.hs view
@@ -0,0 +1,376 @@+module Graphics.XHB.Gen.Shape.Types+ (deserializeError, deserializeEvent, OP, KIND, SO(..), SK(..),+ Notify(..), QueryVersion(..), QueryVersionReply(..),+ Rectangles(..), Mask(..), Combine(..), Offset(..),+ QueryExtents(..), QueryExtentsReply(..), SelectInput(..),+ InputSelected(..), InputSelectedReply(..), GetRectangles(..),+ GetRectanglesReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get Notify))+deserializeEvent _ = Nothing+ +type OP = CARD8+ +type KIND = CARD8+ +data SO = SOSet+ | SOUnion+ | SOIntersect+ | SOSubtract+ | SOInvert+ +instance SimpleEnum SO where+ toValue SOSet{} = 0+ toValue SOUnion{} = 1+ toValue SOIntersect{} = 2+ toValue SOSubtract{} = 3+ toValue SOInvert{} = 4+ fromValue 0 = SOSet+ fromValue 1 = SOUnion+ fromValue 2 = SOIntersect+ fromValue 3 = SOSubtract+ fromValue 4 = SOInvert+ +data SK = SKBounding+ | SKClip+ | SKInput+ +instance SimpleEnum SK where+ toValue SKBounding{} = 0+ toValue SKClip{} = 1+ toValue SKInput{} = 2+ fromValue 0 = SKBounding+ fromValue 1 = SKClip+ fromValue 2 = SKInput+ +data Notify = MkNotify{shape_kind_Notify :: KIND,+ affected_window_Notify :: WINDOW, extents_x_Notify :: INT16,+ extents_y_Notify :: INT16, extents_width_Notify :: CARD16,+ extents_height_Notify :: CARD16, server_time_Notify :: TIMESTAMP,+ shaped_Notify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event Notify+ +instance Deserialize Notify where+ deserialize+ = do skip 1+ shape_kind <- deserialize+ skip 2+ affected_window <- deserialize+ extents_x <- deserialize+ extents_y <- deserialize+ extents_width <- deserialize+ extents_height <- deserialize+ server_time <- deserialize+ shaped <- deserialize+ skip 11+ return+ (MkNotify shape_kind affected_window extents_x extents_y+ extents_width+ extents_height+ server_time+ shaped)+ +data QueryVersion = MkQueryVersion{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD16,+ minor_version_QueryVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data Rectangles = MkRectangles{operation_Rectangles :: OP,+ destination_kind_Rectangles :: KIND, ordering_Rectangles :: BYTE,+ destination_window_Rectangles :: WINDOW,+ x_offset_Rectangles :: INT16, y_offset_Rectangles :: INT16,+ rectangles_Rectangles :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest Rectangles where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (operation_Rectangles x) ++ size (destination_kind_Rectangles x)+ + size (ordering_Rectangles x)+ + 1+ + size (destination_window_Rectangles x)+ + size (x_offset_Rectangles x)+ + size (y_offset_Rectangles x)+ + sum (map size (rectangles_Rectangles x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (operation_Rectangles x)+ serialize (destination_kind_Rectangles x)+ serialize (ordering_Rectangles x)+ putSkip 1+ serialize (destination_window_Rectangles x)+ serialize (x_offset_Rectangles x)+ serialize (y_offset_Rectangles x)+ serializeList (rectangles_Rectangles x)+ putSkip (requiredPadding size__)+ +data Mask = MkMask{operation_Mask :: OP,+ destination_kind_Mask :: KIND, destination_window_Mask :: WINDOW,+ x_offset_Mask :: INT16, y_offset_Mask :: INT16,+ source_bitmap_Mask :: PIXMAP}+ deriving (Show, Typeable)+ +instance ExtensionRequest Mask where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (operation_Mask x) + size (destination_kind_Mask x) + 2+ + size (destination_window_Mask x)+ + size (x_offset_Mask x)+ + size (y_offset_Mask x)+ + size (source_bitmap_Mask x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (operation_Mask x)+ serialize (destination_kind_Mask x)+ putSkip 2+ serialize (destination_window_Mask x)+ serialize (x_offset_Mask x)+ serialize (y_offset_Mask x)+ serialize (source_bitmap_Mask x)+ putSkip (requiredPadding size__)+ +data Combine = MkCombine{operation_Combine :: OP,+ destination_kind_Combine :: KIND, source_kind_Combine :: KIND,+ destination_window_Combine :: WINDOW, x_offset_Combine :: INT16,+ y_offset_Combine :: INT16, source_window_Combine :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest Combine where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (operation_Combine x) ++ size (destination_kind_Combine x)+ + size (source_kind_Combine x)+ + 1+ + size (destination_window_Combine x)+ + size (x_offset_Combine x)+ + size (y_offset_Combine x)+ + size (source_window_Combine x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (operation_Combine x)+ serialize (destination_kind_Combine x)+ serialize (source_kind_Combine x)+ putSkip 1+ serialize (destination_window_Combine x)+ serialize (x_offset_Combine x)+ serialize (y_offset_Combine x)+ serialize (source_window_Combine x)+ putSkip (requiredPadding size__)+ +data Offset = MkOffset{destination_kind_Offset :: KIND,+ destination_window_Offset :: WINDOW, x_offset_Offset :: INT16,+ y_offset_Offset :: INT16}+ deriving (Show, Typeable)+ +instance ExtensionRequest Offset where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (destination_kind_Offset x) + 3 ++ size (destination_window_Offset x)+ + size (x_offset_Offset x)+ + size (y_offset_Offset x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (destination_kind_Offset x)+ putSkip 3+ serialize (destination_window_Offset x)+ serialize (x_offset_Offset x)+ serialize (y_offset_Offset x)+ putSkip (requiredPadding size__)+ +data QueryExtents = MkQueryExtents{destination_window_QueryExtents+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryExtents where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4 + size (destination_window_QueryExtents x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (destination_window_QueryExtents x)+ putSkip (requiredPadding size__)+ +data QueryExtentsReply = MkQueryExtentsReply{bounding_shaped_QueryExtentsReply+ :: BOOL,+ clip_shaped_QueryExtentsReply :: BOOL,+ bounding_shape_extents_x_QueryExtentsReply :: INT16,+ bounding_shape_extents_y_QueryExtentsReply :: INT16,+ bounding_shape_extents_width_QueryExtentsReply ::+ CARD16,+ bounding_shape_extents_height_QueryExtentsReply ::+ CARD16,+ clip_shape_extents_x_QueryExtentsReply :: INT16,+ clip_shape_extents_y_QueryExtentsReply :: INT16,+ clip_shape_extents_width_QueryExtentsReply :: CARD16,+ clip_shape_extents_height_QueryExtentsReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryExtentsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ bounding_shaped <- deserialize+ clip_shaped <- deserialize+ skip 2+ bounding_shape_extents_x <- deserialize+ bounding_shape_extents_y <- deserialize+ bounding_shape_extents_width <- deserialize+ bounding_shape_extents_height <- deserialize+ clip_shape_extents_x <- deserialize+ clip_shape_extents_y <- deserialize+ clip_shape_extents_width <- deserialize+ clip_shape_extents_height <- deserialize+ let _ = isCard32 length+ return+ (MkQueryExtentsReply bounding_shaped clip_shaped+ bounding_shape_extents_x+ bounding_shape_extents_y+ bounding_shape_extents_width+ bounding_shape_extents_height+ clip_shape_extents_x+ clip_shape_extents_y+ clip_shape_extents_width+ clip_shape_extents_height)+ +data SelectInput = MkSelectInput{destination_window_SelectInput ::+ WINDOW,+ enable_SelectInput :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectInput where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (destination_window_SelectInput x) ++ size (enable_SelectInput x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (destination_window_SelectInput x)+ serialize (enable_SelectInput x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data InputSelected = MkInputSelected{destination_window_InputSelected+ :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest InputSelected where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (destination_window_InputSelected x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (destination_window_InputSelected x)+ putSkip (requiredPadding size__)+ +data InputSelectedReply = MkInputSelectedReply{enabled_InputSelectedReply+ :: BOOL}+ deriving (Show, Typeable)+ +instance Deserialize InputSelectedReply where+ deserialize+ = do skip 1+ enabled <- deserialize+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkInputSelectedReply enabled)+ +data GetRectangles = MkGetRectangles{window_GetRectangles ::+ WINDOW,+ source_kind_GetRectangles :: KIND}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetRectangles where+ extensionId _ = "SHAPE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (window_GetRectangles x) ++ size (source_kind_GetRectangles x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetRectangles x)+ serialize (source_kind_GetRectangles x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data GetRectanglesReply = MkGetRectanglesReply{ordering_GetRectanglesReply+ :: BYTE,+ rectangles_len_GetRectanglesReply :: CARD32,+ rectangles_GetRectanglesReply :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance Deserialize GetRectanglesReply where+ deserialize+ = do skip 1+ ordering <- deserialize+ skip 2+ length <- deserialize+ rectangles_len <- deserialize+ rectangles <- deserializeList (fromIntegral rectangles_len)+ let _ = isCard32 length+ return (MkGetRectanglesReply ordering rectangles_len rectangles)
+ patched/Graphics/XHB/Gen/Shm.hs view
@@ -0,0 +1,68 @@+module Graphics.XHB.Gen.Shm+ (extension, queryVersion, attach, detach, putImage, getImage,+ createPixmap, module Graphics.XHB.Gen.Shm.Types)+ where+import Graphics.XHB.Gen.Shm.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 (PutImage(..), GetImage(..), GetImageReply(..),+ CreatePixmap(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "MIT-SHM"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryVersionReply)+queryVersion c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +attach ::+ Graphics.XHB.Connection.Types.Connection -> Attach -> IO ()+attach c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +detach :: Graphics.XHB.Connection.Types.Connection -> SEG -> IO ()+detach c shmseg+ = do let req = MkDetach shmseg+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +putImage ::+ Graphics.XHB.Connection.Types.Connection -> PutImage -> IO ()+putImage c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getImage ::+ Graphics.XHB.Connection.Types.Connection ->+ GetImage -> IO (Receipt GetImageReply)+getImage c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createPixmap ::+ Graphics.XHB.Connection.Types.Connection -> CreatePixmap -> IO ()+createPixmap c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/Shm/Types.hs view
@@ -0,0 +1,272 @@+module Graphics.XHB.Gen.Shm.Types+ (deserializeError, deserializeEvent, SEG, Completion(..),+ BadSeg(..), QueryVersion(..), QueryVersionReply(..), Attach(..),+ Detach(..), PutImage(..), GetImage(..), GetImageReply(..),+ CreatePixmap(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (PutImage(..), GetImage(..), GetImageReply(..),+ CreatePixmap(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError 0+ = return (liftM toError (deserialize :: Get BadSeg))+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get Completion))+deserializeEvent _ = Nothing+ +newtype SEG = MkSEG Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data Completion = MkCompletion{drawable_Completion :: DRAWABLE,+ shmseg_Completion :: SEG, minor_event_Completion :: CARD16,+ major_event_Completion :: BYTE, offset_Completion :: CARD32}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event Completion+ +instance Deserialize Completion where+ deserialize+ = do skip 1+ skip 1+ skip 2+ drawable <- deserialize+ shmseg <- deserialize+ minor_event <- deserialize+ major_event <- deserialize+ skip 1+ offset <- deserialize+ return+ (MkCompletion drawable shmseg minor_event major_event offset)+ +data BadSeg = MkBadSeg{bad_value_BadSeg :: CARD32,+ minor_opcode_BadSeg :: CARD16, major_opcode_BadSeg :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error BadSeg+ +instance Deserialize BadSeg where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkBadSeg bad_value minor_opcode major_opcode)+ +data QueryVersion = MkQueryVersion{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "MIT-SHM"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{shared_pixmaps_QueryVersionReply+ :: BOOL,+ major_version_QueryVersionReply :: CARD16,+ minor_version_QueryVersionReply :: CARD16,+ uid_QueryVersionReply :: CARD16,+ gid_QueryVersionReply :: CARD16,+ pixmap_format_QueryVersionReply :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ shared_pixmaps <- deserialize+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ uid <- deserialize+ gid <- deserialize+ pixmap_format <- deserialize+ skip 15+ let _ = isCard32 length+ return+ (MkQueryVersionReply shared_pixmaps major_version minor_version uid+ gid+ pixmap_format)+ +data Attach = MkAttach{shmseg_Attach :: SEG,+ shmid_Attach :: CARD32, read_only_Attach :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest Attach where+ extensionId _ = "MIT-SHM"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (shmseg_Attach x) + size (shmid_Attach x) ++ size (read_only_Attach x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (shmseg_Attach x)+ serialize (shmid_Attach x)+ serialize (read_only_Attach x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data Detach = MkDetach{shmseg_Detach :: SEG}+ deriving (Show, Typeable)+ +instance ExtensionRequest Detach where+ extensionId _ = "MIT-SHM"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (shmseg_Detach x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (shmseg_Detach x)+ putSkip (requiredPadding size__)+ +data PutImage = MkPutImage{drawable_PutImage :: DRAWABLE,+ gc_PutImage :: GCONTEXT, total_width_PutImage :: CARD16,+ total_height_PutImage :: CARD16, src_x_PutImage :: CARD16,+ src_y_PutImage :: CARD16, src_width_PutImage :: CARD16,+ src_height_PutImage :: CARD16, dst_x_PutImage :: INT16,+ dst_y_PutImage :: INT16, depth_PutImage :: CARD8,+ format_PutImage :: CARD8, send_event_PutImage :: CARD8,+ shmseg_PutImage :: SEG, offset_PutImage :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest PutImage where+ extensionId _ = "MIT-SHM"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (drawable_PutImage x) + size (gc_PutImage x) ++ size (total_width_PutImage x)+ + size (total_height_PutImage x)+ + size (src_x_PutImage x)+ + size (src_y_PutImage x)+ + size (src_width_PutImage x)+ + size (src_height_PutImage x)+ + size (dst_x_PutImage x)+ + size (dst_y_PutImage x)+ + size (depth_PutImage x)+ + size (format_PutImage x)+ + size (send_event_PutImage x)+ + 1+ + size (shmseg_PutImage x)+ + size (offset_PutImage x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_PutImage x)+ serialize (gc_PutImage x)+ serialize (total_width_PutImage x)+ serialize (total_height_PutImage x)+ serialize (src_x_PutImage x)+ serialize (src_y_PutImage x)+ serialize (src_width_PutImage x)+ serialize (src_height_PutImage x)+ serialize (dst_x_PutImage x)+ serialize (dst_y_PutImage x)+ serialize (depth_PutImage x)+ serialize (format_PutImage x)+ serialize (send_event_PutImage x)+ putSkip 1+ serialize (shmseg_PutImage x)+ serialize (offset_PutImage x)+ putSkip (requiredPadding size__)+ +data GetImage = MkGetImage{drawable_GetImage :: DRAWABLE,+ x_GetImage :: INT16, y_GetImage :: INT16, width_GetImage :: CARD16,+ height_GetImage :: CARD16, plane_mask_GetImage :: CARD32,+ format_GetImage :: CARD8, shmseg_GetImage :: SEG,+ offset_GetImage :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetImage where+ extensionId _ = "MIT-SHM"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (drawable_GetImage x) + size (x_GetImage x) ++ size (y_GetImage x)+ + size (width_GetImage x)+ + size (height_GetImage x)+ + size (plane_mask_GetImage x)+ + size (format_GetImage x)+ + 3+ + size (shmseg_GetImage x)+ + size (offset_GetImage x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_GetImage x)+ serialize (x_GetImage x)+ serialize (y_GetImage x)+ serialize (width_GetImage x)+ serialize (height_GetImage x)+ serialize (plane_mask_GetImage x)+ serialize (format_GetImage x)+ putSkip 3+ serialize (shmseg_GetImage x)+ serialize (offset_GetImage x)+ putSkip (requiredPadding size__)+ +data GetImageReply = MkGetImageReply{depth_GetImageReply :: CARD8,+ visual_GetImageReply :: VISUALID, size_GetImageReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize GetImageReply where+ deserialize+ = do skip 1+ depth <- deserialize+ skip 2+ length <- deserialize+ visual <- deserialize+ size <- deserialize+ let _ = isCard32 length+ return (MkGetImageReply depth visual size)+ +data CreatePixmap = MkCreatePixmap{pid_CreatePixmap :: PIXMAP,+ drawable_CreatePixmap :: DRAWABLE, width_CreatePixmap :: CARD16,+ height_CreatePixmap :: CARD16, depth_CreatePixmap :: CARD8,+ shmseg_CreatePixmap :: SEG, offset_CreatePixmap :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreatePixmap where+ extensionId _ = "MIT-SHM"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (pid_CreatePixmap x) + size (drawable_CreatePixmap x) ++ size (width_CreatePixmap x)+ + size (height_CreatePixmap x)+ + size (depth_CreatePixmap x)+ + 3+ + size (shmseg_CreatePixmap x)+ + size (offset_CreatePixmap x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (pid_CreatePixmap x)+ serialize (drawable_CreatePixmap x)+ serialize (width_CreatePixmap x)+ serialize (height_CreatePixmap x)+ serialize (depth_CreatePixmap x)+ putSkip 3+ serialize (shmseg_CreatePixmap x)+ serialize (offset_CreatePixmap x)+ putSkip (requiredPadding size__)
+ patched/Graphics/XHB/Gen/Sync.hs view
@@ -0,0 +1,154 @@+module Graphics.XHB.Gen.Sync+ (extension, initialize, listSystemCounters, createCounter,+ destroyCounter, queryCounter, await, changeCounter, setCounter,+ createAlarm, changeAlarm, destroyAlarm, queryAlarm, setPriority,+ getPriority, module Graphics.XHB.Gen.Sync.Types)+ where+import Graphics.XHB.Gen.Sync.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "SYNC"+ +initialize ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> CARD8 -> IO (Receipt InitializeReply)+initialize c desired_major_version desired_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkInitialize desired_major_version desired_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +listSystemCounters ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt ListSystemCountersReply)+listSystemCounters c+ = do receipt <- newEmptyReceiptIO+ let req = MkListSystemCounters+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createCounter ::+ Graphics.XHB.Connection.Types.Connection ->+ COUNTER -> INT64 -> IO ()+createCounter c id initial_value+ = do let req = MkCreateCounter id initial_value+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +destroyCounter ::+ Graphics.XHB.Connection.Types.Connection -> COUNTER -> IO ()+destroyCounter c counter+ = do let req = MkDestroyCounter counter+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +queryCounter ::+ Graphics.XHB.Connection.Types.Connection ->+ COUNTER -> IO (Receipt QueryCounterReply)+queryCounter c counter+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryCounter counter+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +await ::+ Graphics.XHB.Connection.Types.Connection ->+ [WAITCONDITION] -> IO ()+await c wait_list+ = do let req = MkAwait wait_list+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +changeCounter ::+ Graphics.XHB.Connection.Types.Connection ->+ COUNTER -> INT64 -> IO ()+changeCounter c counter amount+ = do let req = MkChangeCounter counter amount+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setCounter ::+ Graphics.XHB.Connection.Types.Connection ->+ COUNTER -> INT64 -> IO ()+setCounter c counter value+ = do let req = MkSetCounter counter value+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createAlarm ::+ Graphics.XHB.Connection.Types.Connection ->+ ALARM -> ValueParam CARD32 -> IO ()+createAlarm c id value+ = do let req = MkCreateAlarm id value+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +changeAlarm ::+ Graphics.XHB.Connection.Types.Connection ->+ ALARM -> ValueParam CARD32 -> IO ()+changeAlarm c id value+ = do let req = MkChangeAlarm id value+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +destroyAlarm ::+ Graphics.XHB.Connection.Types.Connection -> ALARM -> IO ()+destroyAlarm c alarm+ = do let req = MkDestroyAlarm alarm+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +queryAlarm ::+ Graphics.XHB.Connection.Types.Connection ->+ ALARM -> IO (Receipt QueryAlarmReply)+queryAlarm c alarm+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryAlarm alarm+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setPriority ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> INT32 -> IO ()+setPriority c id priority+ = do let req = MkSetPriority id priority+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getPriority ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetPriorityReply)+getPriority c id+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPriority id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/Sync/Types.hs view
@@ -0,0 +1,556 @@+module Graphics.XHB.Gen.Sync.Types+ (deserializeError, deserializeEvent, ALARM, ALARMSTATE(..),+ COUNTER, TESTTYPE(..), VALUETYPE(..), CA(..), INT64(..),+ SYSTEMCOUNTER(..), TRIGGER(..), WAITCONDITION(..), Counter(..),+ Alarm(..), Initialize(..), InitializeReply(..),+ ListSystemCounters(..), ListSystemCountersReply(..),+ CreateCounter(..), DestroyCounter(..), QueryCounter(..),+ QueryCounterReply(..), Await(..), ChangeCounter(..),+ SetCounter(..), CreateAlarm(..), ChangeAlarm(..), DestroyAlarm(..),+ QueryAlarm(..), QueryAlarmReply(..), SetPriority(..),+ GetPriority(..), GetPriorityReply(..), CounterNotify(..),+ AlarmNotify(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError 0+ = return (liftM toError (deserialize :: Get Counter))+deserializeError 1+ = return (liftM toError (deserialize :: Get Alarm))+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get CounterNotify))+deserializeEvent 1+ = return (liftM toEvent (deserialize :: Get AlarmNotify))+deserializeEvent _ = Nothing+ +newtype ALARM = MkALARM Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data ALARMSTATE = ALARMSTATEActive+ | ALARMSTATEInactive+ | ALARMSTATEDestroyed+ +instance SimpleEnum ALARMSTATE where+ toValue ALARMSTATEActive{} = 0+ toValue ALARMSTATEInactive{} = 1+ toValue ALARMSTATEDestroyed{} = 2+ fromValue 0 = ALARMSTATEActive+ fromValue 1 = ALARMSTATEInactive+ fromValue 2 = ALARMSTATEDestroyed+ +newtype COUNTER = MkCOUNTER Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data TESTTYPE = TESTTYPEPositiveTransition+ | TESTTYPENegativeTransition+ | TESTTYPEPositiveComparison+ | TESTTYPENegativeComparison+ +instance SimpleEnum TESTTYPE where+ toValue TESTTYPEPositiveTransition{} = 0+ toValue TESTTYPENegativeTransition{} = 1+ toValue TESTTYPEPositiveComparison{} = 2+ toValue TESTTYPENegativeComparison{} = 3+ fromValue 0 = TESTTYPEPositiveTransition+ fromValue 1 = TESTTYPENegativeTransition+ fromValue 2 = TESTTYPEPositiveComparison+ fromValue 3 = TESTTYPENegativeComparison+ +data VALUETYPE = VALUETYPEAbsolute+ | VALUETYPERelative+ +instance SimpleEnum VALUETYPE where+ toValue VALUETYPEAbsolute{} = 0+ toValue VALUETYPERelative{} = 1+ fromValue 0 = VALUETYPEAbsolute+ fromValue 1 = VALUETYPERelative+ +data CA = CACounter+ | CAValueType+ | CAValue+ | CATestType+ | CADelta+ | CAEvents+ +instance BitEnum CA where+ toBit CACounter{} = 0+ toBit CAValueType{} = 1+ toBit CAValue{} = 2+ toBit CATestType{} = 3+ toBit CADelta{} = 4+ toBit CAEvents{} = 5+ fromBit 0 = CACounter+ fromBit 1 = CAValueType+ fromBit 2 = CAValue+ fromBit 3 = CATestType+ fromBit 4 = CADelta+ fromBit 5 = CAEvents+ +data INT64 = MkINT64{hi_INT64 :: INT32, lo_INT64 :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize INT64 where+ serialize x+ = do serialize (hi_INT64 x)+ serialize (lo_INT64 x)+ size x = size (hi_INT64 x) + size (lo_INT64 x)+ +instance Deserialize INT64 where+ deserialize+ = do hi <- deserialize+ lo <- deserialize+ return (MkINT64 hi lo)+ +data SYSTEMCOUNTER = MkSYSTEMCOUNTER{counter_SYSTEMCOUNTER ::+ COUNTER,+ resolution_SYSTEMCOUNTER :: INT64,+ name_len_SYSTEMCOUNTER :: CARD16,+ name_SYSTEMCOUNTER :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize SYSTEMCOUNTER where+ serialize x+ = do serialize (counter_SYSTEMCOUNTER x)+ serialize (resolution_SYSTEMCOUNTER x)+ serialize (name_len_SYSTEMCOUNTER x)+ serializeList (name_SYSTEMCOUNTER x)+ size x+ = size (counter_SYSTEMCOUNTER x) ++ size (resolution_SYSTEMCOUNTER x)+ + size (name_len_SYSTEMCOUNTER x)+ + sum (map size (name_SYSTEMCOUNTER x))+ +instance Deserialize SYSTEMCOUNTER where+ deserialize+ = do counter <- deserialize+ resolution <- deserialize+ name_len <- deserialize+ name <- deserializeList (fromIntegral name_len)+ return (MkSYSTEMCOUNTER counter resolution name_len name)+ +data TRIGGER = MkTRIGGER{counter_TRIGGER :: COUNTER,+ wait_type_TRIGGER :: CARD32, wait_value_TRIGGER :: INT64,+ test_type_TRIGGER :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize TRIGGER where+ serialize x+ = do serialize (counter_TRIGGER x)+ serialize (wait_type_TRIGGER x)+ serialize (wait_value_TRIGGER x)+ serialize (test_type_TRIGGER x)+ size x+ = size (counter_TRIGGER x) + size (wait_type_TRIGGER x) ++ size (wait_value_TRIGGER x)+ + size (test_type_TRIGGER x)+ +instance Deserialize TRIGGER where+ deserialize+ = do counter <- deserialize+ wait_type <- deserialize+ wait_value <- deserialize+ test_type <- deserialize+ return (MkTRIGGER counter wait_type wait_value test_type)+ +data WAITCONDITION = MkWAITCONDITION{trigger_WAITCONDITION ::+ TRIGGER,+ event_threshold_WAITCONDITION :: INT64}+ deriving (Show, Typeable)+ +instance Serialize WAITCONDITION where+ serialize x+ = do serialize (trigger_WAITCONDITION x)+ serialize (event_threshold_WAITCONDITION x)+ size x+ = size (trigger_WAITCONDITION x) ++ size (event_threshold_WAITCONDITION x)+ +instance Deserialize WAITCONDITION where+ deserialize+ = do trigger <- deserialize+ event_threshold <- deserialize+ return (MkWAITCONDITION trigger event_threshold)+ +data Counter = MkCounter{bad_counter_Counter :: CARD32,+ minor_opcode_Counter :: CARD16, major_opcode_Counter :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Counter+ +instance Deserialize Counter where+ deserialize+ = do skip 4+ bad_counter <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ return (MkCounter bad_counter minor_opcode major_opcode)+ +data Alarm = MkAlarm{bad_alarm_Alarm :: CARD32,+ minor_opcode_Alarm :: CARD16, major_opcode_Alarm :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Alarm+ +instance Deserialize Alarm where+ deserialize+ = do skip 4+ bad_alarm <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ return (MkAlarm bad_alarm minor_opcode major_opcode)+ +data Initialize = MkInitialize{desired_major_version_Initialize ::+ CARD8,+ desired_minor_version_Initialize :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest Initialize where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (desired_major_version_Initialize x) ++ size (desired_minor_version_Initialize x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (desired_major_version_Initialize x)+ serialize (desired_minor_version_Initialize x)+ putSkip (requiredPadding size__)+ +data InitializeReply = MkInitializeReply{major_version_InitializeReply+ :: CARD8,+ minor_version_InitializeReply :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize InitializeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ skip 22+ let _ = isCard32 length+ return (MkInitializeReply major_version minor_version)+ +data ListSystemCounters = MkListSystemCounters{}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListSystemCounters where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data ListSystemCountersReply = MkListSystemCountersReply{counters_len_ListSystemCountersReply+ :: CARD32,+ counters_ListSystemCountersReply ::+ [SYSTEMCOUNTER]}+ deriving (Show, Typeable)+ +instance Deserialize ListSystemCountersReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ counters_len <- deserialize+ skip 20+ counters <- deserializeList (fromIntegral counters_len)+ let _ = isCard32 length+ return (MkListSystemCountersReply counters_len counters)+ +data CreateCounter = MkCreateCounter{id_CreateCounter :: COUNTER,+ initial_value_CreateCounter :: INT64}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateCounter where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (id_CreateCounter x) ++ size (initial_value_CreateCounter x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (id_CreateCounter x)+ serialize (initial_value_CreateCounter x)+ putSkip (requiredPadding size__)+ +data DestroyCounter = MkDestroyCounter{counter_DestroyCounter ::+ COUNTER}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyCounter where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__ = 4 + size (counter_DestroyCounter x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (counter_DestroyCounter x)+ putSkip (requiredPadding size__)+ +data QueryCounter = MkQueryCounter{counter_QueryCounter :: COUNTER}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryCounter where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4 + size (counter_QueryCounter x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (counter_QueryCounter x)+ putSkip (requiredPadding size__)+ +data QueryCounterReply = MkQueryCounterReply{counter_value_QueryCounterReply+ :: INT64}+ deriving (Show, Typeable)+ +instance Deserialize QueryCounterReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ counter_value <- deserialize+ let _ = isCard32 length+ return (MkQueryCounterReply counter_value)+ +data Await = MkAwait{wait_list_Await :: [WAITCONDITION]}+ deriving (Show, Typeable)+ +instance ExtensionRequest Await where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + sum (map size (wait_list_Await x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serializeList (wait_list_Await x)+ putSkip (requiredPadding size__)+ +data ChangeCounter = MkChangeCounter{counter_ChangeCounter ::+ COUNTER,+ amount_ChangeCounter :: INT64}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeCounter where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (counter_ChangeCounter x) ++ size (amount_ChangeCounter x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (counter_ChangeCounter x)+ serialize (amount_ChangeCounter x)+ putSkip (requiredPadding size__)+ +data SetCounter = MkSetCounter{counter_SetCounter :: COUNTER,+ value_SetCounter :: INT64}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetCounter where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (counter_SetCounter x) + size (value_SetCounter x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (counter_SetCounter x)+ serialize (value_SetCounter x)+ putSkip (requiredPadding size__)+ +data CreateAlarm = MkCreateAlarm{id_CreateAlarm :: ALARM,+ value_CreateAlarm :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateAlarm where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (id_CreateAlarm x) + size (value_CreateAlarm x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (id_CreateAlarm x)+ serialize (value_CreateAlarm x)+ putSkip (requiredPadding size__)+ +data ChangeAlarm = MkChangeAlarm{id_ChangeAlarm :: ALARM,+ value_ChangeAlarm :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeAlarm where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__+ = 4 + size (id_ChangeAlarm x) + size (value_ChangeAlarm x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (id_ChangeAlarm x)+ serialize (value_ChangeAlarm x)+ putSkip (requiredPadding size__)+ +data DestroyAlarm = MkDestroyAlarm{alarm_DestroyAlarm :: ALARM}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyAlarm where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__ = 4 + size (alarm_DestroyAlarm x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (alarm_DestroyAlarm x)+ putSkip (requiredPadding size__)+ +data QueryAlarm = MkQueryAlarm{alarm_QueryAlarm :: ALARM}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryAlarm where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__ = 4 + size (alarm_QueryAlarm x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (alarm_QueryAlarm x)+ putSkip (requiredPadding size__)+ +data QueryAlarmReply = MkQueryAlarmReply{trigger_QueryAlarmReply ::+ TRIGGER,+ delta_QueryAlarmReply :: INT64,+ events_QueryAlarmReply :: BOOL,+ state_QueryAlarmReply :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize QueryAlarmReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ trigger <- deserialize+ delta <- deserialize+ events <- deserialize+ state <- deserialize+ skip 2+ let _ = isCard32 length+ return (MkQueryAlarmReply trigger delta events state)+ +data SetPriority = MkSetPriority{id_SetPriority :: CARD32,+ priority_SetPriority :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPriority where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (id_SetPriority x) + size (priority_SetPriority x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (id_SetPriority x)+ serialize (priority_SetPriority x)+ putSkip (requiredPadding size__)+ +data GetPriority = MkGetPriority{id_GetPriority :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPriority where+ extensionId _ = "SYNC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__ = 4 + size (id_GetPriority x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (id_GetPriority x)+ putSkip (requiredPadding size__)+ +data GetPriorityReply = MkGetPriorityReply{priority_GetPriorityReply+ :: INT32}+ deriving (Show, Typeable)+ +instance Deserialize GetPriorityReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ priority <- deserialize+ let _ = isCard32 length+ return (MkGetPriorityReply priority)+ +data CounterNotify = MkCounterNotify{kind_CounterNotify :: CARD8,+ counter_CounterNotify :: COUNTER,+ wait_value_CounterNotify :: INT64,+ counter_value_CounterNotify :: INT64,+ timestamp_CounterNotify :: TIMESTAMP,+ count_CounterNotify :: CARD16, destroyed_CounterNotify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event CounterNotify+ +instance Deserialize CounterNotify where+ deserialize+ = do skip 1+ kind <- deserialize+ skip 2+ counter <- deserialize+ wait_value <- deserialize+ counter_value <- deserialize+ timestamp <- deserialize+ count <- deserialize+ destroyed <- deserialize+ skip 1+ return+ (MkCounterNotify kind counter wait_value counter_value timestamp+ count+ destroyed)+ +data AlarmNotify = MkAlarmNotify{kind_AlarmNotify :: CARD8,+ alarm_AlarmNotify :: ALARM, counter_value_AlarmNotify :: INT64,+ alarm_value_AlarmNotify :: INT64,+ timestamp_AlarmNotify :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event AlarmNotify+ +instance Deserialize AlarmNotify where+ deserialize+ = do skip 1+ kind <- deserialize+ skip 2+ alarm <- deserialize+ counter_value <- deserialize+ alarm_value <- deserialize+ timestamp <- deserialize+ return+ (MkAlarmNotify kind alarm counter_value alarm_value timestamp)
+ patched/Graphics/XHB/Gen/Test.hs view
@@ -0,0 +1,55 @@+module Graphics.XHB.Gen.Test+ (extension, getVersion, compareCursor, fakeInput, grabControl,+ module Graphics.XHB.Gen.Test.Types)+ where+import Graphics.XHB.Gen.Test.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 (Cursor(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "XTEST"+ +getVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> CARD16 -> IO (Receipt GetVersionReply)+getVersion c major_version minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkGetVersion major_version minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +compareCursor ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CURSOR -> IO (Receipt CompareCursorReply)+compareCursor c window cursor+ = do receipt <- newEmptyReceiptIO+ let req = MkCompareCursor window cursor+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +fakeInput ::+ Graphics.XHB.Connection.Types.Connection -> FakeInput -> IO ()+fakeInput c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +grabControl ::+ Graphics.XHB.Connection.Types.Connection -> BOOL -> IO ()+grabControl c impervious+ = do let req = MkGrabControl impervious+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/Test/Types.hs view
@@ -0,0 +1,144 @@+module Graphics.XHB.Gen.Test.Types+ (deserializeError, deserializeEvent, GetVersion(..),+ GetVersionReply(..), Cursor(..), CompareCursor(..),+ CompareCursorReply(..), FakeInput(..), GrabControl(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (Cursor(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data GetVersion = MkGetVersion{major_version_GetVersion :: CARD8,+ minor_version_GetVersion :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetVersion where+ extensionId _ = "XTEST"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (major_version_GetVersion x) + 1 ++ size (minor_version_GetVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (major_version_GetVersion x)+ putSkip 1+ serialize (minor_version_GetVersion x)+ putSkip (requiredPadding size__)+ +data GetVersionReply = MkGetVersionReply{major_version_GetVersionReply+ :: CARD8,+ minor_version_GetVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetVersionReply where+ deserialize+ = do skip 1+ major_version <- deserialize+ skip 2+ length <- deserialize+ minor_version <- deserialize+ let _ = isCard32 length+ return (MkGetVersionReply major_version minor_version)+ +data Cursor = CursorNone+ | CursorCurrent+ +instance SimpleEnum Cursor where+ toValue CursorNone{} = 0+ toValue CursorCurrent{} = 1+ fromValue 0 = CursorNone+ fromValue 1 = CursorCurrent+ +data CompareCursor = MkCompareCursor{window_CompareCursor ::+ WINDOW,+ cursor_CompareCursor :: CURSOR}+ deriving (Show, Typeable)+ +instance ExtensionRequest CompareCursor where+ extensionId _ = "XTEST"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (window_CompareCursor x) + size (cursor_CompareCursor x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_CompareCursor x)+ serialize (cursor_CompareCursor x)+ putSkip (requiredPadding size__)+ +data CompareCursorReply = MkCompareCursorReply{same_CompareCursorReply+ :: BOOL}+ deriving (Show, Typeable)+ +instance Deserialize CompareCursorReply where+ deserialize+ = do skip 1+ same <- deserialize+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkCompareCursorReply same)+ +data FakeInput = MkFakeInput{type_FakeInput :: BYTE,+ detail_FakeInput :: BYTE, time_FakeInput :: CARD32,+ window_FakeInput :: WINDOW, rootX_FakeInput :: CARD16,+ rootY_FakeInput :: CARD16, deviceid_FakeInput :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest FakeInput where+ extensionId _ = "XTEST"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (type_FakeInput x) + size (detail_FakeInput x) + 2 ++ size (time_FakeInput x)+ + size (window_FakeInput x)+ + 8+ + size (rootX_FakeInput x)+ + size (rootY_FakeInput x)+ + 7+ + size (deviceid_FakeInput x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (type_FakeInput x)+ serialize (detail_FakeInput x)+ putSkip 2+ serialize (time_FakeInput x)+ serialize (window_FakeInput x)+ putSkip 8+ serialize (rootX_FakeInput x)+ serialize (rootY_FakeInput x)+ putSkip 7+ serialize (deviceid_FakeInput x)+ putSkip (requiredPadding size__)+ +data GrabControl = MkGrabControl{impervious_GrabControl :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest GrabControl where+ extensionId _ = "XTEST"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (impervious_GrabControl x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (impervious_GrabControl x)+ putSkip 3+ putSkip (requiredPadding size__)
+ patched/Graphics/XHB/Gen/XCMisc.hs view
@@ -0,0 +1,48 @@+module Graphics.XHB.Gen.XCMisc+ (extension, getVersion, getXIDRange, getXIDList,+ module Graphics.XHB.Gen.XCMisc.Types)+ where+import Graphics.XHB.Gen.XCMisc.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(..))+ +extension :: ExtensionId+extension = "XC-MISC"+ +getVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD16 -> CARD16 -> IO (Receipt GetVersionReply)+getVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkGetVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getXIDRange ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetXIDRangeReply)+getXIDRange c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetXIDRange+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getXIDList ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetXIDListReply)+getXIDList c count+ = do receipt <- newEmptyReceiptIO+ let req = MkGetXIDList count+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/XCMisc/Types.hs view
@@ -0,0 +1,115 @@+module Graphics.XHB.Gen.XCMisc.Types+ (deserializeError, deserializeEvent, GetVersion(..),+ GetVersionReply(..), GetXIDRange(..), GetXIDRangeReply(..),+ GetXIDList(..), GetXIDListReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data GetVersion = MkGetVersion{client_major_version_GetVersion ::+ CARD16,+ client_minor_version_GetVersion :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetVersion where+ extensionId _ = "XC-MISC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_GetVersion x) ++ size (client_minor_version_GetVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_GetVersion x)+ serialize (client_minor_version_GetVersion x)+ putSkip (requiredPadding size__)+ +data GetVersionReply = MkGetVersionReply{server_major_version_GetVersionReply+ :: CARD16,+ server_minor_version_GetVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ server_major_version <- deserialize+ server_minor_version <- deserialize+ let _ = isCard32 length+ return+ (MkGetVersionReply server_major_version server_minor_version)+ +data GetXIDRange = MkGetXIDRange{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetXIDRange where+ extensionId _ = "XC-MISC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetXIDRangeReply = MkGetXIDRangeReply{start_id_GetXIDRangeReply+ :: CARD32,+ count_GetXIDRangeReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize GetXIDRangeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ start_id <- deserialize+ count <- deserialize+ let _ = isCard32 length+ return (MkGetXIDRangeReply start_id count)+ +data GetXIDList = MkGetXIDList{count_GetXIDList :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetXIDList where+ extensionId _ = "XC-MISC"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (count_GetXIDList x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (count_GetXIDList x)+ putSkip (requiredPadding size__)+ +data GetXIDListReply = MkGetXIDListReply{ids_len_GetXIDListReply ::+ CARD32,+ ids_GetXIDListReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetXIDListReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ ids_len <- deserialize+ skip 20+ ids <- deserializeList (fromIntegral ids_len)+ let _ = isCard32 length+ return (MkGetXIDListReply ids_len ids)
+ patched/Graphics/XHB/Gen/XF86Dri.hs view
@@ -0,0 +1,142 @@+module Graphics.XHB.Gen.XF86Dri+ (extension, queryVersion, queryDirectRenderingCapable,+ openConnection, closeConnection, getClientDriverName,+ createContext, destroyContext, createDrawable, destroyDrawable,+ getDrawableInfo, getDeviceInfo, authConnection,+ module Graphics.XHB.Gen.XF86Dri.Types)+ where+import Graphics.XHB.Gen.XF86Dri.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(..))+ +extension :: ExtensionId+extension = "XFree86-DRI"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryVersionReply)+queryVersion c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryDirectRenderingCapable ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt QueryDirectRenderingCapableReply)+queryDirectRenderingCapable c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryDirectRenderingCapable screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +openConnection ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt OpenConnectionReply)+openConnection c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkOpenConnection screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +closeConnection ::+ Graphics.XHB.Connection.Types.Connection -> CARD32 -> IO ()+closeConnection c screen+ = do let req = MkCloseConnection screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getClientDriverName ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetClientDriverNameReply)+getClientDriverName c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkGetClientDriverName screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateContext -> IO (Receipt CreateContextReply)+createContext c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +destroyContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO ()+destroyContext c screen context+ = do let req = MkDestroyContext screen context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createDrawable ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt CreateDrawableReply)+createDrawable c screen drawable+ = do receipt <- newEmptyReceiptIO+ let req = MkCreateDrawable screen drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +destroyDrawable ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO ()+destroyDrawable c screen drawable+ = do let req = MkDestroyDrawable screen drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getDrawableInfo ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt GetDrawableInfoReply)+getDrawableInfo c screen drawable+ = do receipt <- newEmptyReceiptIO+ let req = MkGetDrawableInfo screen drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getDeviceInfo ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt GetDeviceInfoReply)+getDeviceInfo c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkGetDeviceInfo screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +authConnection ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt AuthConnectionReply)+authConnection c screen magic+ = do receipt <- newEmptyReceiptIO+ let req = MkAuthConnection screen magic+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/XF86Dri/Types.hs view
@@ -0,0 +1,457 @@+module Graphics.XHB.Gen.XF86Dri.Types+ (deserializeError, deserializeEvent, DrmClipRect(..),+ QueryVersion(..), QueryVersionReply(..),+ QueryDirectRenderingCapable(..),+ QueryDirectRenderingCapableReply(..), OpenConnection(..),+ OpenConnectionReply(..), CloseConnection(..),+ GetClientDriverName(..), GetClientDriverNameReply(..),+ CreateContext(..), CreateContextReply(..), DestroyContext(..),+ CreateDrawable(..), CreateDrawableReply(..), DestroyDrawable(..),+ GetDrawableInfo(..), GetDrawableInfoReply(..), GetDeviceInfo(..),+ GetDeviceInfoReply(..), AuthConnection(..),+ AuthConnectionReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data DrmClipRect = MkDrmClipRect{x1_DrmClipRect :: INT16,+ y1_DrmClipRect :: INT16, x2_DrmClipRect :: INT16,+ x3_DrmClipRect :: INT16}+ deriving (Show, Typeable)+ +instance Serialize DrmClipRect where+ serialize x+ = do serialize (x1_DrmClipRect x)+ serialize (y1_DrmClipRect x)+ serialize (x2_DrmClipRect x)+ serialize (x3_DrmClipRect x)+ size x+ = size (x1_DrmClipRect x) + size (y1_DrmClipRect x) ++ size (x2_DrmClipRect x)+ + size (x3_DrmClipRect x)+ +instance Deserialize DrmClipRect where+ deserialize+ = do x1 <- deserialize+ y1 <- deserialize+ x2 <- deserialize+ x3 <- deserialize+ return (MkDrmClipRect x1 y1 x2 x3)+ +data QueryVersion = MkQueryVersion{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{dri_major_version_QueryVersionReply+ :: CARD16,+ dri_minor_version_QueryVersionReply :: CARD16,+ dri_minor_patch_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ dri_major_version <- deserialize+ dri_minor_version <- deserialize+ dri_minor_patch <- deserialize+ let _ = isCard32 length+ return+ (MkQueryVersionReply dri_major_version dri_minor_version+ dri_minor_patch)+ +data QueryDirectRenderingCapable = MkQueryDirectRenderingCapable{screen_QueryDirectRenderingCapable+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryDirectRenderingCapable where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4 + size (screen_QueryDirectRenderingCapable x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_QueryDirectRenderingCapable x)+ putSkip (requiredPadding size__)+ +data QueryDirectRenderingCapableReply = MkQueryDirectRenderingCapableReply{is_capable_QueryDirectRenderingCapableReply+ :: BOOL}+ deriving (Show, Typeable)+ +instance Deserialize QueryDirectRenderingCapableReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ is_capable <- deserialize+ let _ = isCard32 length+ return (MkQueryDirectRenderingCapableReply is_capable)+ +data OpenConnection = MkOpenConnection{screen_OpenConnection ::+ CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest OpenConnection where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (screen_OpenConnection x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_OpenConnection x)+ putSkip (requiredPadding size__)+ +data OpenConnectionReply = MkOpenConnectionReply{drm_client_key_low_OpenConnectionReply+ :: CARD32,+ drm_client_key_high_OpenConnectionReply :: CARD32,+ sarea_handle_low_OpenConnectionReply :: CARD32,+ sarea_handle_high_OpenConnectionReply :: CARD32,+ bus_id_len_OpenConnectionReply :: CARD32,+ bus_id_OpenConnectionReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize OpenConnectionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ drm_client_key_low <- deserialize+ drm_client_key_high <- deserialize+ sarea_handle_low <- deserialize+ sarea_handle_high <- deserialize+ bus_id_len <- deserialize+ skip 12+ bus_id <- deserializeList (fromIntegral bus_id_len)+ let _ = isCard32 length+ return+ (MkOpenConnectionReply drm_client_key_low drm_client_key_high+ sarea_handle_low+ sarea_handle_high+ bus_id_len+ bus_id)+ +data CloseConnection = MkCloseConnection{screen_CloseConnection ::+ CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest CloseConnection where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (screen_CloseConnection x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_CloseConnection x)+ putSkip (requiredPadding size__)+ +data GetClientDriverName = MkGetClientDriverName{screen_GetClientDriverName+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetClientDriverName where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (screen_GetClientDriverName x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_GetClientDriverName x)+ putSkip (requiredPadding size__)+ +data GetClientDriverNameReply = MkGetClientDriverNameReply{client_driver_major_version_GetClientDriverNameReply+ :: CARD32,+ client_driver_minor_version_GetClientDriverNameReply+ :: CARD32,+ client_driver_patch_version_GetClientDriverNameReply+ :: CARD32,+ client_driver_name_len_GetClientDriverNameReply+ :: CARD32,+ client_driver_name_GetClientDriverNameReply+ :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetClientDriverNameReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ client_driver_major_version <- deserialize+ client_driver_minor_version <- deserialize+ client_driver_patch_version <- deserialize+ client_driver_name_len <- deserialize+ skip 8+ client_driver_name <- deserializeList+ (fromIntegral client_driver_name_len)+ let _ = isCard32 length+ return+ (MkGetClientDriverNameReply client_driver_major_version+ client_driver_minor_version+ client_driver_patch_version+ client_driver_name_len+ client_driver_name)+ +data CreateContext = MkCreateContext{visual_CreateContext ::+ CARD32,+ screen_CreateContext :: CARD32,+ context_CreateContext :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateContext where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (visual_CreateContext x) + size (screen_CreateContext x)+ + size (context_CreateContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (visual_CreateContext x)+ serialize (screen_CreateContext x)+ serialize (context_CreateContext x)+ putSkip (requiredPadding size__)+ +data CreateContextReply = MkCreateContextReply{hw_context_CreateContextReply+ :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize CreateContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ hw_context <- deserialize+ let _ = isCard32 length+ return (MkCreateContextReply hw_context)+ +data DestroyContext = MkDestroyContext{screen_DestroyContext ::+ CARD32,+ context_DestroyContext :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyContext where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (screen_DestroyContext x) ++ size (context_DestroyContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_DestroyContext x)+ serialize (context_DestroyContext x)+ putSkip (requiredPadding size__)+ +data CreateDrawable = MkCreateDrawable{screen_CreateDrawable ::+ CARD32,+ drawable_CreateDrawable :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateDrawable where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__+ = 4 + size (screen_CreateDrawable x) ++ size (drawable_CreateDrawable x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_CreateDrawable x)+ serialize (drawable_CreateDrawable x)+ putSkip (requiredPadding size__)+ +data CreateDrawableReply = MkCreateDrawableReply{hw_drawable_handle_CreateDrawableReply+ :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize CreateDrawableReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ hw_drawable_handle <- deserialize+ let _ = isCard32 length+ return (MkCreateDrawableReply hw_drawable_handle)+ +data DestroyDrawable = MkDestroyDrawable{screen_DestroyDrawable ::+ CARD32,+ drawable_DestroyDrawable :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyDrawable where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (screen_DestroyDrawable x) ++ size (drawable_DestroyDrawable x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_DestroyDrawable x)+ serialize (drawable_DestroyDrawable x)+ putSkip (requiredPadding size__)+ +data GetDrawableInfo = MkGetDrawableInfo{screen_GetDrawableInfo ::+ CARD32,+ drawable_GetDrawableInfo :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDrawableInfo where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__+ = 4 + size (screen_GetDrawableInfo x) ++ size (drawable_GetDrawableInfo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_GetDrawableInfo x)+ serialize (drawable_GetDrawableInfo x)+ putSkip (requiredPadding size__)+ +data GetDrawableInfoReply = MkGetDrawableInfoReply{drawable_table_index_GetDrawableInfoReply+ :: CARD32,+ drawable_table_stamp_GetDrawableInfoReply ::+ CARD32,+ drawable_origin_X_GetDrawableInfoReply :: INT16,+ drawable_origin_Y_GetDrawableInfoReply :: INT16,+ drawable_size_W_GetDrawableInfoReply :: INT16,+ drawable_size_H_GetDrawableInfoReply :: INT16,+ num_clip_rects_GetDrawableInfoReply :: CARD32,+ clip_rects_GetDrawableInfoReply :: [DrmClipRect]}+ deriving (Show, Typeable)+ +instance Deserialize GetDrawableInfoReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ drawable_table_index <- deserialize+ drawable_table_stamp <- deserialize+ drawable_origin_X <- deserialize+ drawable_origin_Y <- deserialize+ drawable_size_W <- deserialize+ drawable_size_H <- deserialize+ num_clip_rects <- deserialize+ skip 4+ clip_rects <- deserializeList (fromIntegral num_clip_rects)+ let _ = isCard32 length+ return+ (MkGetDrawableInfoReply drawable_table_index drawable_table_stamp+ drawable_origin_X+ drawable_origin_Y+ drawable_size_W+ drawable_size_H+ num_clip_rects+ clip_rects)+ +data GetDeviceInfo = MkGetDeviceInfo{screen_GetDeviceInfo ::+ CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetDeviceInfo where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__ = 4 + size (screen_GetDeviceInfo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_GetDeviceInfo x)+ putSkip (requiredPadding size__)+ +data GetDeviceInfoReply = MkGetDeviceInfoReply{framebuffer_handle_low_GetDeviceInfoReply+ :: CARD32,+ framebuffer_handle_high_GetDeviceInfoReply :: CARD32,+ framebuffer_origin_offset_GetDeviceInfoReply ::+ CARD32,+ framebuffer_size_GetDeviceInfoReply :: CARD32,+ framebuffer_stride_GetDeviceInfoReply :: CARD32,+ device_private_size_GetDeviceInfoReply :: CARD32,+ device_private_GetDeviceInfoReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetDeviceInfoReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ framebuffer_handle_low <- deserialize+ framebuffer_handle_high <- deserialize+ framebuffer_origin_offset <- deserialize+ framebuffer_size <- deserialize+ framebuffer_stride <- deserialize+ device_private_size <- deserialize+ device_private <- deserializeList+ (fromIntegral device_private_size)+ let _ = isCard32 length+ return+ (MkGetDeviceInfoReply framebuffer_handle_low+ framebuffer_handle_high+ framebuffer_origin_offset+ framebuffer_size+ framebuffer_stride+ device_private_size+ device_private)+ +data AuthConnection = MkAuthConnection{screen_AuthConnection ::+ CARD32,+ magic_AuthConnection :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest AuthConnection where+ extensionId _ = "XFree86-DRI"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__+ = 4 + size (screen_AuthConnection x) ++ size (magic_AuthConnection x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_AuthConnection x)+ serialize (magic_AuthConnection x)+ putSkip (requiredPadding size__)+ +data AuthConnectionReply = MkAuthConnectionReply{authenticated_AuthConnectionReply+ :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize AuthConnectionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ authenticated <- deserialize+ let _ = isCard32 length+ return (MkAuthConnectionReply authenticated)
+ patched/Graphics/XHB/Gen/XFixes.hs view
@@ -0,0 +1,301 @@+module Graphics.XHB.Gen.XFixes+ (extension, queryVersion, changeSaveSet, selectSelectionInput,+ selectCursorInput, getCursorImage, createRegion,+ createRegionFromBitmap, createRegionFromWindow, createRegionFromGC,+ createRegionFromPicture, destroyRegion, setRegion, copyRegion,+ unionRegion, intersectRegion, subtractRegion, invertRegion,+ translateRegion, regionExtents, fetchRegion, setGCClipRegion,+ setWindowShapeRegion, setPictureClipRegion, setCursorName,+ getCursorName, getCursorImageAndName, changeCursor,+ changeCursorByName, expandRegion, hideCursor, showCursor,+ module Graphics.XHB.Gen.XFixes.Types)+ where+import Graphics.XHB.Gen.XFixes.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 (ChangeSaveSet(..), SelectionNotify(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.Render.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Render.Types+import Graphics.XHB.Gen.Shape.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Shape.Types+ +extension :: ExtensionId+extension = "XFIXES"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> CARD32 -> IO (Receipt QueryVersionReply)+queryVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +changeSaveSet ::+ Graphics.XHB.Connection.Types.Connection -> ChangeSaveSet -> IO ()+changeSaveSet c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +selectSelectionInput ::+ Graphics.XHB.Connection.Types.Connection ->+ SelectSelectionInput -> IO ()+selectSelectionInput c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +selectCursorInput ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CARD32 -> IO ()+selectCursorInput c window event_mask+ = do let req = MkSelectCursorInput window event_mask+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getCursorImage ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetCursorImageReply)+getCursorImage c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetCursorImage+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> [RECTANGLE] -> IO ()+createRegion c region rectangles+ = do let req = MkCreateRegion region rectangles+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createRegionFromBitmap ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> PIXMAP -> IO ()+createRegionFromBitmap c region bitmap+ = do let req = MkCreateRegionFromBitmap region bitmap+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createRegionFromWindow ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateRegionFromWindow -> IO ()+createRegionFromWindow c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createRegionFromGC ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> GCONTEXT -> IO ()+createRegionFromGC c region gc+ = do let req = MkCreateRegionFromGC region gc+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createRegionFromPicture ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> PICTURE -> IO ()+createRegionFromPicture c region picture+ = do let req = MkCreateRegionFromPicture region picture+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +destroyRegion ::+ Graphics.XHB.Connection.Types.Connection -> REGION -> IO ()+destroyRegion c region+ = do let req = MkDestroyRegion region+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> [RECTANGLE] -> IO ()+setRegion c region rectangles+ = do let req = MkSetRegion region rectangles+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +copyRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> REGION -> IO ()+copyRegion c source destination+ = do let req = MkCopyRegion source destination+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +unionRegion ::+ Graphics.XHB.Connection.Types.Connection -> UnionRegion -> IO ()+unionRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +intersectRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ IntersectRegion -> IO ()+intersectRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +subtractRegion ::+ Graphics.XHB.Connection.Types.Connection -> SubtractRegion -> IO ()+subtractRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +invertRegion ::+ Graphics.XHB.Connection.Types.Connection -> InvertRegion -> IO ()+invertRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +translateRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ TranslateRegion -> IO ()+translateRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +regionExtents ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> REGION -> IO ()+regionExtents c source destination+ = do let req = MkRegionExtents source destination+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +fetchRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ REGION -> IO (Receipt FetchRegionReply)+fetchRegion c region+ = do receipt <- newEmptyReceiptIO+ let req = MkFetchRegion region+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setGCClipRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ SetGCClipRegion -> IO ()+setGCClipRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setWindowShapeRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ SetWindowShapeRegion -> IO ()+setWindowShapeRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setPictureClipRegion ::+ Graphics.XHB.Connection.Types.Connection ->+ SetPictureClipRegion -> IO ()+setPictureClipRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +setCursorName ::+ Graphics.XHB.Connection.Types.Connection -> SetCursorName -> IO ()+setCursorName c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getCursorName ::+ Graphics.XHB.Connection.Types.Connection ->+ CURSOR -> IO (Receipt GetCursorNameReply)+getCursorName c cursor+ = do receipt <- newEmptyReceiptIO+ let req = MkGetCursorName cursor+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getCursorImageAndName ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetCursorImageAndNameReply)+getCursorImageAndName c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetCursorImageAndName+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +changeCursor ::+ Graphics.XHB.Connection.Types.Connection ->+ CURSOR -> CURSOR -> IO ()+changeCursor c source destination+ = do let req = MkChangeCursor source destination+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +changeCursorByName ::+ Graphics.XHB.Connection.Types.Connection ->+ ChangeCursorByName -> IO ()+changeCursorByName c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +expandRegion ::+ Graphics.XHB.Connection.Types.Connection -> ExpandRegion -> IO ()+expandRegion c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +hideCursor ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+hideCursor c window+ = do let req = MkHideCursor window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +showCursor ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+showCursor c window+ = do let req = MkShowCursor window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/XFixes/Types.hs view
@@ -0,0 +1,882 @@+module Graphics.XHB.Gen.XFixes.Types+ (deserializeError, deserializeEvent, QueryVersion(..),+ QueryVersionReply(..), SaveSetMode(..), SaveSetTarget(..),+ SaveSetMapping(..), ChangeSaveSet(..), SelectionEvent(..),+ SelectionEventMask(..), SelectionNotify(..),+ SelectSelectionInput(..), CursorNotifyEnum(..), CursorNotifyMask(..),+ CursorNotify(..), SelectCursorInput(..), GetCursorImage(..),+ GetCursorImageReply(..), REGION, CreateRegion(..),+ CreateRegionFromBitmap(..), CreateRegionFromWindow(..),+ CreateRegionFromGC(..), CreateRegionFromPicture(..),+ DestroyRegion(..), SetRegion(..), CopyRegion(..), UnionRegion(..),+ IntersectRegion(..), SubtractRegion(..), InvertRegion(..),+ TranslateRegion(..), RegionExtents(..), FetchRegion(..),+ FetchRegionReply(..), SetGCClipRegion(..),+ SetWindowShapeRegion(..), SetPictureClipRegion(..),+ SetCursorName(..), GetCursorName(..), GetCursorNameReply(..),+ GetCursorImageAndName(..), GetCursorImageAndNameReply(..),+ ChangeCursor(..), ChangeCursorByName(..), ExpandRegion(..),+ HideCursor(..), ShowCursor(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (ChangeSaveSet(..), SelectionNotify(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.Render.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Render.Types+import Graphics.XHB.Gen.Shape.Types+ hiding (QueryVersion(..), QueryVersionReply(..), deserializeError,+ deserializeEvent)+import qualified Graphics.XHB.Gen.Shape.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get SelectionNotify))+deserializeEvent 1+ = return (liftM toEvent (deserialize :: Get CursorNotify))+deserializeEvent _ = Nothing+ +data QueryVersion = MkQueryVersion{client_major_version_QueryVersion+ :: CARD32,+ client_minor_version_QueryVersion :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_QueryVersion x) ++ size (client_minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_QueryVersion x)+ serialize (client_minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_version_QueryVersionReply+ :: CARD32,+ minor_version_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ skip 16+ let _ = isCard32 length+ return (MkQueryVersionReply major_version minor_version)+ +data SaveSetMode = SaveSetModeInsert+ | SaveSetModeDelete+ +instance SimpleEnum SaveSetMode where+ toValue SaveSetModeInsert{} = 0+ toValue SaveSetModeDelete{} = 1+ fromValue 0 = SaveSetModeInsert+ fromValue 1 = SaveSetModeDelete+ +data SaveSetTarget = SaveSetTargetNearest+ | SaveSetTargetRoot+ +instance SimpleEnum SaveSetTarget where+ toValue SaveSetTargetNearest{} = 0+ toValue SaveSetTargetRoot{} = 1+ fromValue 0 = SaveSetTargetNearest+ fromValue 1 = SaveSetTargetRoot+ +data SaveSetMapping = SaveSetMappingMap+ | SaveSetMappingUnmap+ +instance SimpleEnum SaveSetMapping where+ toValue SaveSetMappingMap{} = 0+ toValue SaveSetMappingUnmap{} = 1+ fromValue 0 = SaveSetMappingMap+ fromValue 1 = SaveSetMappingUnmap+ +data ChangeSaveSet = MkChangeSaveSet{mode_ChangeSaveSet :: BYTE,+ target_ChangeSaveSet :: BYTE, map_ChangeSaveSet :: BYTE,+ window_ChangeSaveSet :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeSaveSet where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (mode_ChangeSaveSet x) + size (target_ChangeSaveSet x) ++ size (map_ChangeSaveSet x)+ + 1+ + size (window_ChangeSaveSet x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (mode_ChangeSaveSet x)+ serialize (target_ChangeSaveSet x)+ serialize (map_ChangeSaveSet x)+ putSkip 1+ serialize (window_ChangeSaveSet x)+ putSkip (requiredPadding size__)+ +data SelectionEvent = SelectionEventSetSelectionOwner+ | SelectionEventSelectionWindowDestroy+ | SelectionEventSelectionClientClose+ +instance SimpleEnum SelectionEvent where+ toValue SelectionEventSetSelectionOwner{} = 0+ toValue SelectionEventSelectionWindowDestroy{} = 1+ toValue SelectionEventSelectionClientClose{} = 2+ fromValue 0 = SelectionEventSetSelectionOwner+ fromValue 1 = SelectionEventSelectionWindowDestroy+ fromValue 2 = SelectionEventSelectionClientClose+ +data SelectionEventMask = SelectionEventMaskSetSelectionOwner+ | SelectionEventMaskSelectionWindowDestroy+ | SelectionEventMaskSelectionClientClose+ +instance BitEnum SelectionEventMask where+ toBit SelectionEventMaskSetSelectionOwner{} = 0+ toBit SelectionEventMaskSelectionWindowDestroy{} = 1+ toBit SelectionEventMaskSelectionClientClose{} = 2+ fromBit 0 = SelectionEventMaskSetSelectionOwner+ fromBit 1 = SelectionEventMaskSelectionWindowDestroy+ fromBit 2 = SelectionEventMaskSelectionClientClose+ +data SelectionNotify = MkSelectionNotify{subtype_SelectionNotify ::+ CARD8,+ window_SelectionNotify :: WINDOW,+ owner_SelectionNotify :: WINDOW,+ selection_SelectionNotify :: ATOM,+ timestamp_SelectionNotify :: TIMESTAMP,+ selection_timestamp_SelectionNotify :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event SelectionNotify+ +instance Deserialize SelectionNotify where+ deserialize+ = do skip 1+ subtype <- deserialize+ skip 2+ window <- deserialize+ owner <- deserialize+ selection <- deserialize+ timestamp <- deserialize+ selection_timestamp <- deserialize+ skip 8+ return+ (MkSelectionNotify subtype window owner selection timestamp+ selection_timestamp)+ +data SelectSelectionInput = MkSelectSelectionInput{window_SelectSelectionInput+ :: WINDOW,+ selection_SelectSelectionInput :: ATOM,+ event_mask_SelectSelectionInput :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectSelectionInput where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (window_SelectSelectionInput x) ++ size (selection_SelectSelectionInput x)+ + size (event_mask_SelectSelectionInput x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_SelectSelectionInput x)+ serialize (selection_SelectSelectionInput x)+ serialize (event_mask_SelectSelectionInput x)+ putSkip (requiredPadding size__)+ +data CursorNotifyEnum = CursorNotifyDisplayCursor+ +instance SimpleEnum CursorNotifyEnum where+ toValue CursorNotifyDisplayCursor{} = 0+ fromValue 0 = CursorNotifyDisplayCursor+ +data CursorNotifyMask = CursorNotifyMaskDisplayCursor+ +instance BitEnum CursorNotifyMask where+ toBit CursorNotifyMaskDisplayCursor{} = 0+ fromBit 0 = CursorNotifyMaskDisplayCursor+ +data CursorNotify = MkCursorNotify{subtype_CursorNotify :: CARD8,+ window_CursorNotify :: WINDOW,+ cursor_serial_CursorNotify :: CARD32,+ timestamp_CursorNotify :: TIMESTAMP, name_CursorNotify :: ATOM}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event CursorNotify+ +instance Deserialize CursorNotify where+ deserialize+ = do skip 1+ subtype <- deserialize+ skip 2+ window <- deserialize+ cursor_serial <- deserialize+ timestamp <- deserialize+ name <- deserialize+ skip 12+ return (MkCursorNotify subtype window cursor_serial timestamp name)+ +data SelectCursorInput = MkSelectCursorInput{window_SelectCursorInput+ :: WINDOW,+ event_mask_SelectCursorInput :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectCursorInput where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (window_SelectCursorInput x) ++ size (event_mask_SelectCursorInput x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_SelectCursorInput x)+ serialize (event_mask_SelectCursorInput x)+ putSkip (requiredPadding size__)+ +data GetCursorImage = MkGetCursorImage{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetCursorImage where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetCursorImageReply = MkGetCursorImageReply{x_GetCursorImageReply+ :: INT16,+ y_GetCursorImageReply :: INT16,+ width_GetCursorImageReply :: CARD16,+ height_GetCursorImageReply :: CARD16,+ xhot_GetCursorImageReply :: CARD16,+ yhot_GetCursorImageReply :: CARD16,+ cursor_serial_GetCursorImageReply :: CARD32,+ cursor_image_GetCursorImageReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetCursorImageReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ xhot <- deserialize+ yhot <- deserialize+ cursor_serial <- deserialize+ skip 8+ cursor_image <- deserializeList+ (fromIntegral (fromIntegral (width * height)))+ let _ = isCard32 length+ return+ (MkGetCursorImageReply x y width height xhot yhot cursor_serial+ cursor_image)+ +newtype REGION = MkREGION Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data CreateRegion = MkCreateRegion{region_CreateRegion :: REGION,+ rectangles_CreateRegion :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (region_CreateRegion x) ++ sum (map size (rectangles_CreateRegion x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_CreateRegion x)+ serializeList (rectangles_CreateRegion x)+ putSkip (requiredPadding size__)+ +data CreateRegionFromBitmap = MkCreateRegionFromBitmap{region_CreateRegionFromBitmap+ :: REGION,+ bitmap_CreateRegionFromBitmap :: PIXMAP}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateRegionFromBitmap where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (region_CreateRegionFromBitmap x) ++ size (bitmap_CreateRegionFromBitmap x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_CreateRegionFromBitmap x)+ serialize (bitmap_CreateRegionFromBitmap x)+ putSkip (requiredPadding size__)+ +data CreateRegionFromWindow = MkCreateRegionFromWindow{region_CreateRegionFromWindow+ :: REGION,+ window_CreateRegionFromWindow :: WINDOW,+ kind_CreateRegionFromWindow ::+ Graphics.XHB.Gen.Shape.Types.KIND}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateRegionFromWindow where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__+ = 4 + size (region_CreateRegionFromWindow x) ++ size (window_CreateRegionFromWindow x)+ + size (kind_CreateRegionFromWindow x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_CreateRegionFromWindow x)+ serialize (window_CreateRegionFromWindow x)+ serialize (kind_CreateRegionFromWindow x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data CreateRegionFromGC = MkCreateRegionFromGC{region_CreateRegionFromGC+ :: REGION,+ gc_CreateRegionFromGC :: GCONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateRegionFromGC where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (region_CreateRegionFromGC x) ++ size (gc_CreateRegionFromGC x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_CreateRegionFromGC x)+ serialize (gc_CreateRegionFromGC x)+ putSkip (requiredPadding size__)+ +data CreateRegionFromPicture = MkCreateRegionFromPicture{region_CreateRegionFromPicture+ :: REGION,+ picture_CreateRegionFromPicture :: PICTURE}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateRegionFromPicture where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__+ = 4 + size (region_CreateRegionFromPicture x) ++ size (picture_CreateRegionFromPicture x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_CreateRegionFromPicture x)+ serialize (picture_CreateRegionFromPicture x)+ putSkip (requiredPadding size__)+ +data DestroyRegion = MkDestroyRegion{region_DestroyRegion ::+ REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__ = 4 + size (region_DestroyRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_DestroyRegion x)+ putSkip (requiredPadding size__)+ +data SetRegion = MkSetRegion{region_SetRegion :: REGION,+ rectangles_SetRegion :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__+ = 4 + size (region_SetRegion x) ++ sum (map size (rectangles_SetRegion x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_SetRegion x)+ serializeList (rectangles_SetRegion x)+ putSkip (requiredPadding size__)+ +data CopyRegion = MkCopyRegion{source_CopyRegion :: REGION,+ destination_CopyRegion :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest CopyRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (source_CopyRegion x) + size (destination_CopyRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source_CopyRegion x)+ serialize (destination_CopyRegion x)+ putSkip (requiredPadding size__)+ +data UnionRegion = MkUnionRegion{source1_UnionRegion :: REGION,+ source2_UnionRegion :: REGION, destination_UnionRegion :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest UnionRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__+ = 4 + size (source1_UnionRegion x) + size (source2_UnionRegion x) ++ size (destination_UnionRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source1_UnionRegion x)+ serialize (source2_UnionRegion x)+ serialize (destination_UnionRegion x)+ putSkip (requiredPadding size__)+ +data IntersectRegion = MkIntersectRegion{source1_IntersectRegion ::+ REGION,+ source2_IntersectRegion :: REGION,+ destination_IntersectRegion :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest IntersectRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 14+ let size__+ = 4 + size (source1_IntersectRegion x) ++ size (source2_IntersectRegion x)+ + size (destination_IntersectRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source1_IntersectRegion x)+ serialize (source2_IntersectRegion x)+ serialize (destination_IntersectRegion x)+ putSkip (requiredPadding size__)+ +data SubtractRegion = MkSubtractRegion{source1_SubtractRegion ::+ REGION,+ source2_SubtractRegion :: REGION,+ destination_SubtractRegion :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest SubtractRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 15+ let size__+ = 4 + size (source1_SubtractRegion x) ++ size (source2_SubtractRegion x)+ + size (destination_SubtractRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source1_SubtractRegion x)+ serialize (source2_SubtractRegion x)+ serialize (destination_SubtractRegion x)+ putSkip (requiredPadding size__)+ +data InvertRegion = MkInvertRegion{source_InvertRegion :: REGION,+ bounds_InvertRegion :: RECTANGLE,+ destination_InvertRegion :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest InvertRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 16+ let size__+ = 4 + size (source_InvertRegion x) + size (bounds_InvertRegion x) ++ size (destination_InvertRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source_InvertRegion x)+ serialize (bounds_InvertRegion x)+ serialize (destination_InvertRegion x)+ putSkip (requiredPadding size__)+ +data TranslateRegion = MkTranslateRegion{region_TranslateRegion ::+ REGION,+ dx_TranslateRegion :: INT16, dy_TranslateRegion :: INT16}+ deriving (Show, Typeable)+ +instance ExtensionRequest TranslateRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__+ = 4 + size (region_TranslateRegion x) + size (dx_TranslateRegion x)+ + size (dy_TranslateRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_TranslateRegion x)+ serialize (dx_TranslateRegion x)+ serialize (dy_TranslateRegion x)+ putSkip (requiredPadding size__)+ +data RegionExtents = MkRegionExtents{source_RegionExtents ::+ REGION,+ destination_RegionExtents :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest RegionExtents where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__+ = 4 + size (source_RegionExtents x) ++ size (destination_RegionExtents x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source_RegionExtents x)+ serialize (destination_RegionExtents x)+ putSkip (requiredPadding size__)+ +data FetchRegion = MkFetchRegion{region_FetchRegion :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest FetchRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__ = 4 + size (region_FetchRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (region_FetchRegion x)+ putSkip (requiredPadding size__)+ +data FetchRegionReply = MkFetchRegionReply{extents_FetchRegionReply+ :: RECTANGLE,+ rectangles_FetchRegionReply :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance Deserialize FetchRegionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ extents <- deserialize+ skip 16+ rectangles <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return (MkFetchRegionReply extents rectangles)+ +data SetGCClipRegion = MkSetGCClipRegion{gc_SetGCClipRegion ::+ GCONTEXT,+ region_SetGCClipRegion :: REGION,+ x_origin_SetGCClipRegion :: INT16,+ y_origin_SetGCClipRegion :: INT16}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetGCClipRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 20+ let size__+ = 4 + size (gc_SetGCClipRegion x) + size (region_SetGCClipRegion x)+ + size (x_origin_SetGCClipRegion x)+ + size (y_origin_SetGCClipRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (gc_SetGCClipRegion x)+ serialize (region_SetGCClipRegion x)+ serialize (x_origin_SetGCClipRegion x)+ serialize (y_origin_SetGCClipRegion x)+ putSkip (requiredPadding size__)+ +data SetWindowShapeRegion = MkSetWindowShapeRegion{dest_SetWindowShapeRegion+ :: WINDOW,+ dest_kind_SetWindowShapeRegion ::+ Graphics.XHB.Gen.Shape.Types.KIND,+ x_offset_SetWindowShapeRegion :: INT16,+ y_offset_SetWindowShapeRegion :: INT16,+ region_SetWindowShapeRegion :: REGION}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetWindowShapeRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 21+ let size__+ = 4 + size (dest_SetWindowShapeRegion x) ++ size (dest_kind_SetWindowShapeRegion x)+ + 3+ + size (x_offset_SetWindowShapeRegion x)+ + size (y_offset_SetWindowShapeRegion x)+ + size (region_SetWindowShapeRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (dest_SetWindowShapeRegion x)+ serialize (dest_kind_SetWindowShapeRegion x)+ putSkip 3+ serialize (x_offset_SetWindowShapeRegion x)+ serialize (y_offset_SetWindowShapeRegion x)+ serialize (region_SetWindowShapeRegion x)+ putSkip (requiredPadding size__)+ +data SetPictureClipRegion = MkSetPictureClipRegion{picture_SetPictureClipRegion+ :: PICTURE,+ region_SetPictureClipRegion :: REGION,+ x_origin_SetPictureClipRegion :: INT16,+ y_origin_SetPictureClipRegion :: INT16}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPictureClipRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 22+ let size__+ = 4 + size (picture_SetPictureClipRegion x) ++ size (region_SetPictureClipRegion x)+ + size (x_origin_SetPictureClipRegion x)+ + size (y_origin_SetPictureClipRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (picture_SetPictureClipRegion x)+ serialize (region_SetPictureClipRegion x)+ serialize (x_origin_SetPictureClipRegion x)+ serialize (y_origin_SetPictureClipRegion x)+ putSkip (requiredPadding size__)+ +data SetCursorName = MkSetCursorName{cursor_SetCursorName ::+ CURSOR,+ nbytes_SetCursorName :: CARD16, name_SetCursorName :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetCursorName where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 23+ let size__+ = 4 + size (cursor_SetCursorName x) + size (nbytes_SetCursorName x)+ + 2+ + sum (map size (name_SetCursorName x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cursor_SetCursorName x)+ serialize (nbytes_SetCursorName x)+ putSkip 2+ serializeList (name_SetCursorName x)+ putSkip (requiredPadding size__)+ +data GetCursorName = MkGetCursorName{cursor_GetCursorName ::+ CURSOR}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetCursorName where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 24+ let size__ = 4 + size (cursor_GetCursorName x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cursor_GetCursorName x)+ putSkip (requiredPadding size__)+ +data GetCursorNameReply = MkGetCursorNameReply{atom_GetCursorNameReply+ :: ATOM,+ nbytes_GetCursorNameReply :: CARD16,+ name_GetCursorNameReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetCursorNameReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ atom <- deserialize+ nbytes <- deserialize+ skip 18+ name <- deserializeList (fromIntegral nbytes)+ let _ = isCard32 length+ return (MkGetCursorNameReply atom nbytes name)+ +data GetCursorImageAndName = MkGetCursorImageAndName{}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetCursorImageAndName where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 25+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data GetCursorImageAndNameReply = MkGetCursorImageAndNameReply{x_GetCursorImageAndNameReply+ :: INT16,+ y_GetCursorImageAndNameReply ::+ INT16,+ width_GetCursorImageAndNameReply ::+ CARD16,+ height_GetCursorImageAndNameReply ::+ CARD16,+ xhot_GetCursorImageAndNameReply ::+ CARD16,+ yhot_GetCursorImageAndNameReply ::+ CARD16,+ cursor_serial_GetCursorImageAndNameReply+ :: CARD32,+ cursor_atom_GetCursorImageAndNameReply+ :: ATOM,+ nbytes_GetCursorImageAndNameReply ::+ CARD16,+ name_GetCursorImageAndNameReply ::+ [CChar],+ cursor_image_GetCursorImageAndNameReply+ :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize GetCursorImageAndNameReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ xhot <- deserialize+ yhot <- deserialize+ cursor_serial <- deserialize+ cursor_atom <- deserialize+ nbytes <- deserialize+ skip 2+ name <- deserializeList (fromIntegral nbytes)+ cursor_image <- deserializeList+ (fromIntegral (fromIntegral (width * height)))+ let _ = isCard32 length+ return+ (MkGetCursorImageAndNameReply x y width height xhot yhot+ cursor_serial+ cursor_atom+ nbytes+ name+ cursor_image)+ +data ChangeCursor = MkChangeCursor{source_ChangeCursor :: CURSOR,+ destination_ChangeCursor :: CURSOR}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeCursor where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 26+ let size__+ = 4 + size (source_ChangeCursor x) ++ size (destination_ChangeCursor x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source_ChangeCursor x)+ serialize (destination_ChangeCursor x)+ putSkip (requiredPadding size__)+ +data ChangeCursorByName = MkChangeCursorByName{src_ChangeCursorByName+ :: CURSOR,+ nbytes_ChangeCursorByName :: CARD16,+ name_ChangeCursorByName :: [CChar]}+ deriving (Show, Typeable)+ +instance ExtensionRequest ChangeCursorByName where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 27+ let size__+ = 4 + size (src_ChangeCursorByName x) ++ size (nbytes_ChangeCursorByName x)+ + 2+ + sum (map size (name_ChangeCursorByName x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (src_ChangeCursorByName x)+ serialize (nbytes_ChangeCursorByName x)+ putSkip 2+ serializeList (name_ChangeCursorByName x)+ putSkip (requiredPadding size__)+ +data ExpandRegion = MkExpandRegion{source_ExpandRegion :: REGION,+ destination_ExpandRegion :: REGION, left_ExpandRegion :: CARD16,+ right_ExpandRegion :: CARD16, top_ExpandRegion :: CARD16,+ bottom_ExpandRegion :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest ExpandRegion where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 28+ let size__+ = 4 + size (source_ExpandRegion x) ++ size (destination_ExpandRegion x)+ + size (left_ExpandRegion x)+ + size (right_ExpandRegion x)+ + size (top_ExpandRegion x)+ + size (bottom_ExpandRegion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (source_ExpandRegion x)+ serialize (destination_ExpandRegion x)+ serialize (left_ExpandRegion x)+ serialize (right_ExpandRegion x)+ serialize (top_ExpandRegion x)+ serialize (bottom_ExpandRegion x)+ putSkip (requiredPadding size__)+ +data HideCursor = MkHideCursor{window_HideCursor :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest HideCursor where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 29+ let size__ = 4 + size (window_HideCursor x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_HideCursor x)+ putSkip (requiredPadding size__)+ +data ShowCursor = MkShowCursor{window_ShowCursor :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest ShowCursor where+ extensionId _ = "XFIXES"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 30+ let size__ = 4 + size (window_ShowCursor x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_ShowCursor x)+ putSkip (requiredPadding size__)
+ patched/Graphics/XHB/Gen/XPrint.hs view
@@ -0,0 +1,250 @@+module Graphics.XHB.Gen.XPrint+ (extension, printQueryVersion, printGetPrinterList, createContext,+ printSetContext, printGetContext, printDestroyContext,+ printGetScreenOfContext, printStartJob, printEndJob, printStartDoc,+ printEndDoc, printPutDocumentData, printGetDocumentData,+ printStartPage, printEndPage, printSelectInput, printInputSelected,+ printGetAttributes, printGetOneAttributes, printSetAttributes,+ printGetPageDimensions, printQueryScreens, printSetImageResolution,+ printGetImageResolution, module Graphics.XHB.Gen.XPrint.Types)+ where+import Graphics.XHB.Gen.XPrint.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "XpExtension"+ +printQueryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt PrintQueryVersionReply)+printQueryVersion c+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintQueryVersion+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printGetPrinterList ::+ Graphics.XHB.Connection.Types.Connection ->+ PrintGetPrinterList -> IO (Receipt PrintGetPrinterListReply)+printGetPrinterList c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createContext ::+ Graphics.XHB.Connection.Types.Connection -> CreateContext -> IO ()+createContext c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printSetContext ::+ Graphics.XHB.Connection.Types.Connection -> CARD32 -> IO ()+printSetContext c context+ = do let req = MkPrintSetContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printGetContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt PrintGetContextReply)+printGetContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintGetContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printDestroyContext ::+ Graphics.XHB.Connection.Types.Connection -> CARD32 -> IO ()+printDestroyContext c context+ = do let req = MkPrintDestroyContext context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printGetScreenOfContext ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt PrintGetScreenOfContextReply)+printGetScreenOfContext c+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintGetScreenOfContext+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printStartJob ::+ Graphics.XHB.Connection.Types.Connection -> CARD8 -> IO ()+printStartJob c output_mode+ = do let req = MkPrintStartJob output_mode+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printEndJob ::+ Graphics.XHB.Connection.Types.Connection -> BOOL -> IO ()+printEndJob c cancel+ = do let req = MkPrintEndJob cancel+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printStartDoc ::+ Graphics.XHB.Connection.Types.Connection -> CARD8 -> IO ()+printStartDoc c driver_mode+ = do let req = MkPrintStartDoc driver_mode+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printEndDoc ::+ Graphics.XHB.Connection.Types.Connection -> BOOL -> IO ()+printEndDoc c cancel+ = do let req = MkPrintEndDoc cancel+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printPutDocumentData ::+ Graphics.XHB.Connection.Types.Connection ->+ PrintPutDocumentData -> IO ()+printPutDocumentData c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printGetDocumentData ::+ Graphics.XHB.Connection.Types.Connection ->+ PCONTEXT -> CARD32 -> IO (Receipt PrintGetDocumentDataReply)+printGetDocumentData c context max_bytes+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintGetDocumentData context max_bytes+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printStartPage ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+printStartPage c window+ = do let req = MkPrintStartPage window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printEndPage ::+ Graphics.XHB.Connection.Types.Connection -> BOOL -> IO ()+printEndPage c cancel+ = do let req = MkPrintEndPage cancel+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printSelectInput ::+ Graphics.XHB.Connection.Types.Connection ->+ PCONTEXT -> ValueParam CARD32 -> IO ()+printSelectInput c context event+ = do let req = MkPrintSelectInput context event+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printInputSelected ::+ Graphics.XHB.Connection.Types.Connection ->+ PCONTEXT -> IO (Receipt PrintInputSelectedReply)+printInputSelected c context+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintInputSelected context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printGetAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ PCONTEXT -> CARD8 -> IO (Receipt PrintGetAttributesReply)+printGetAttributes c context pool+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintGetAttributes context pool+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printGetOneAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ PrintGetOneAttributes -> IO (Receipt PrintGetOneAttributesReply)+printGetOneAttributes c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printSetAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ PrintSetAttributes -> IO ()+printSetAttributes c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +printGetPageDimensions ::+ Graphics.XHB.Connection.Types.Connection ->+ PCONTEXT -> IO (Receipt PrintGetPageDimensionsReply)+printGetPageDimensions c context+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintGetPageDimensions context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printQueryScreens ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt PrintQueryScreensReply)+printQueryScreens c+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintQueryScreens+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printSetImageResolution ::+ Graphics.XHB.Connection.Types.Connection ->+ PCONTEXT -> CARD16 -> IO (Receipt PrintSetImageResolutionReply)+printSetImageResolution c context image_resolution+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintSetImageResolution context image_resolution+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +printGetImageResolution ::+ Graphics.XHB.Connection.Types.Connection ->+ PCONTEXT -> IO (Receipt PrintGetImageResolutionReply)+printGetImageResolution c context+ = do receipt <- newEmptyReceiptIO+ let req = MkPrintGetImageResolution context+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/XPrint/Types.hs view
@@ -0,0 +1,802 @@+module Graphics.XHB.Gen.XPrint.Types+ (deserializeError, deserializeEvent, STRING8, PRINTER(..),+ PCONTEXT, GetDoc(..), EvMask(..), Detail(..), Attr(..),+ PrintQueryVersion(..), PrintQueryVersionReply(..),+ PrintGetPrinterList(..), PrintGetPrinterListReply(..),+ CreateContext(..), PrintSetContext(..), PrintGetContext(..),+ PrintGetContextReply(..), PrintDestroyContext(..),+ PrintGetScreenOfContext(..), PrintGetScreenOfContextReply(..),+ PrintStartJob(..), PrintEndJob(..), PrintStartDoc(..),+ PrintEndDoc(..), PrintPutDocumentData(..),+ PrintGetDocumentData(..), PrintGetDocumentDataReply(..),+ PrintStartPage(..), PrintEndPage(..), PrintSelectInput(..),+ PrintInputSelected(..), PrintInputSelectedReply(..),+ PrintGetAttributes(..), PrintGetAttributesReply(..),+ PrintGetOneAttributes(..), PrintGetOneAttributesReply(..),+ PrintSetAttributes(..), PrintGetPageDimensions(..),+ PrintGetPageDimensionsReply(..), PrintQueryScreens(..),+ PrintQueryScreensReply(..), PrintSetImageResolution(..),+ PrintSetImageResolutionReply(..), PrintGetImageResolution(..),+ PrintGetImageResolutionReply(..), Notify(..), AttributNotify(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get Notify))+deserializeEvent 1+ = return (liftM toEvent (deserialize :: Get AttributNotify))+deserializeEvent _ = Nothing+ +type STRING8 = CChar+ +data PRINTER = MkPRINTER{nameLen_PRINTER :: CARD32,+ name_PRINTER :: [STRING8], descLen_PRINTER :: CARD32,+ description_PRINTER :: [STRING8]}+ deriving (Show, Typeable)+ +instance Serialize PRINTER where+ serialize x+ = do serialize (nameLen_PRINTER x)+ serializeList (name_PRINTER x)+ serialize (descLen_PRINTER x)+ serializeList (description_PRINTER x)+ size x+ = size (nameLen_PRINTER x) + sum (map size (name_PRINTER x)) ++ size (descLen_PRINTER x)+ + sum (map size (description_PRINTER x))+ +instance Deserialize PRINTER where+ deserialize+ = do nameLen <- deserialize+ name <- deserializeList (fromIntegral nameLen)+ descLen <- deserialize+ description <- deserializeList (fromIntegral descLen)+ return (MkPRINTER nameLen name descLen description)+ +newtype PCONTEXT = MkPCONTEXT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data GetDoc = GetDocFinished+ | GetDocSecondConsumer+ +instance SimpleEnum GetDoc where+ toValue GetDocFinished{} = 0+ toValue GetDocSecondConsumer{} = 1+ fromValue 0 = GetDocFinished+ fromValue 1 = GetDocSecondConsumer+ +data EvMask = EvMaskPrintMask+ | EvMaskAttributeMask+ +instance BitEnum EvMask where+ toBit EvMaskPrintMask{} = 0+ toBit EvMaskAttributeMask{} = 1+ fromBit 0 = EvMaskPrintMask+ fromBit 1 = EvMaskAttributeMask+ +data Detail = DetailStartJobNotify+ | DetailEndJobNotify+ | DetailStartDocNotify+ | DetailEndDocNotify+ | DetailStartPageNotify+ | DetailEndPageNotify+ +instance SimpleEnum Detail where+ toValue DetailStartJobNotify{} = 1+ toValue DetailEndJobNotify{} = 2+ toValue DetailStartDocNotify{} = 3+ toValue DetailEndDocNotify{} = 4+ toValue DetailStartPageNotify{} = 5+ toValue DetailEndPageNotify{} = 6+ fromValue 1 = DetailStartJobNotify+ fromValue 2 = DetailEndJobNotify+ fromValue 3 = DetailStartDocNotify+ fromValue 4 = DetailEndDocNotify+ fromValue 5 = DetailStartPageNotify+ fromValue 6 = DetailEndPageNotify+ +data Attr = AttrJobAttr+ | AttrDocAttr+ | AttrPageAttr+ | AttrPrinterAttr+ | AttrServerAttr+ | AttrMediumAttr+ | AttrSpoolerAttr+ +instance SimpleEnum Attr where+ toValue AttrJobAttr{} = 1+ toValue AttrDocAttr{} = 2+ toValue AttrPageAttr{} = 3+ toValue AttrPrinterAttr{} = 4+ toValue AttrServerAttr{} = 5+ toValue AttrMediumAttr{} = 6+ toValue AttrSpoolerAttr{} = 7+ fromValue 1 = AttrJobAttr+ fromValue 2 = AttrDocAttr+ fromValue 3 = AttrPageAttr+ fromValue 4 = AttrPrinterAttr+ fromValue 5 = AttrServerAttr+ fromValue 6 = AttrMediumAttr+ fromValue 7 = AttrSpoolerAttr+ +data PrintQueryVersion = MkPrintQueryVersion{}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintQueryVersion where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data PrintQueryVersionReply = MkPrintQueryVersionReply{major_version_PrintQueryVersionReply+ :: CARD16,+ minor_version_PrintQueryVersionReply ::+ CARD16}+ deriving (Show, Typeable)+ +instance Deserialize PrintQueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major_version <- deserialize+ minor_version <- deserialize+ let _ = isCard32 length+ return (MkPrintQueryVersionReply major_version minor_version)+ +data PrintGetPrinterList = MkPrintGetPrinterList{printerNameLen_PrintGetPrinterList+ :: CARD32,+ localeLen_PrintGetPrinterList :: CARD32,+ printer_name_PrintGetPrinterList :: [STRING8],+ locale_PrintGetPrinterList :: [STRING8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetPrinterList where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__+ = 4 + size (printerNameLen_PrintGetPrinterList x) ++ size (localeLen_PrintGetPrinterList x)+ + sum (map size (printer_name_PrintGetPrinterList x))+ + sum (map size (locale_PrintGetPrinterList x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (printerNameLen_PrintGetPrinterList x)+ serialize (localeLen_PrintGetPrinterList x)+ serializeList (printer_name_PrintGetPrinterList x)+ serializeList (locale_PrintGetPrinterList x)+ putSkip (requiredPadding size__)+ +data PrintGetPrinterListReply = MkPrintGetPrinterListReply{listCount_PrintGetPrinterListReply+ :: CARD32,+ printers_PrintGetPrinterListReply ::+ [PRINTER]}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetPrinterListReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ listCount <- deserialize+ skip 20+ printers <- deserializeList (fromIntegral listCount)+ let _ = isCard32 length+ return (MkPrintGetPrinterListReply listCount printers)+ +data CreateContext = MkCreateContext{context_id_CreateContext ::+ CARD32,+ printerNameLen_CreateContext :: CARD32,+ localeLen_CreateContext :: CARD32,+ printerName_CreateContext :: [STRING8],+ locale_CreateContext :: [STRING8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateContext where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (context_id_CreateContext x) ++ size (printerNameLen_CreateContext x)+ + size (localeLen_CreateContext x)+ + sum (map size (printerName_CreateContext x))+ + sum (map size (locale_CreateContext x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_id_CreateContext x)+ serialize (printerNameLen_CreateContext x)+ serialize (localeLen_CreateContext x)+ serializeList (printerName_CreateContext x)+ serializeList (locale_CreateContext x)+ putSkip (requiredPadding size__)+ +data PrintSetContext = MkPrintSetContext{context_PrintSetContext ::+ CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintSetContext where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (context_PrintSetContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintSetContext x)+ putSkip (requiredPadding size__)+ +data PrintGetContext = MkPrintGetContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetContext where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data PrintGetContextReply = MkPrintGetContextReply{context_PrintGetContextReply+ :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ context <- deserialize+ let _ = isCard32 length+ return (MkPrintGetContextReply context)+ +data PrintDestroyContext = MkPrintDestroyContext{context_PrintDestroyContext+ :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintDestroyContext where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4 + size (context_PrintDestroyContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintDestroyContext x)+ putSkip (requiredPadding size__)+ +data PrintGetScreenOfContext = MkPrintGetScreenOfContext{}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetScreenOfContext where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data PrintGetScreenOfContextReply = MkPrintGetScreenOfContextReply{root_PrintGetScreenOfContextReply+ :: WINDOW}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetScreenOfContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ root <- deserialize+ let _ = isCard32 length+ return (MkPrintGetScreenOfContextReply root)+ +data PrintStartJob = MkPrintStartJob{output_mode_PrintStartJob ::+ CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintStartJob where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (output_mode_PrintStartJob x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (output_mode_PrintStartJob x)+ putSkip (requiredPadding size__)+ +data PrintEndJob = MkPrintEndJob{cancel_PrintEndJob :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintEndJob where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__ = 4 + size (cancel_PrintEndJob x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cancel_PrintEndJob x)+ putSkip (requiredPadding size__)+ +data PrintStartDoc = MkPrintStartDoc{driver_mode_PrintStartDoc ::+ CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintStartDoc where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__ = 4 + size (driver_mode_PrintStartDoc x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (driver_mode_PrintStartDoc x)+ putSkip (requiredPadding size__)+ +data PrintEndDoc = MkPrintEndDoc{cancel_PrintEndDoc :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintEndDoc where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__ = 4 + size (cancel_PrintEndDoc x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cancel_PrintEndDoc x)+ putSkip (requiredPadding size__)+ +data PrintPutDocumentData = MkPrintPutDocumentData{drawable_PrintPutDocumentData+ :: DRAWABLE,+ len_data_PrintPutDocumentData :: CARD32,+ len_fmt_PrintPutDocumentData :: CARD16,+ len_options_PrintPutDocumentData :: CARD16,+ data_PrintPutDocumentData :: [BYTE],+ doc_format_PrintPutDocumentData :: [STRING8],+ options_PrintPutDocumentData :: [STRING8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintPutDocumentData where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__+ = 4 + size (drawable_PrintPutDocumentData x) ++ size (len_data_PrintPutDocumentData x)+ + size (len_fmt_PrintPutDocumentData x)+ + size (len_options_PrintPutDocumentData x)+ + sum (map size (data_PrintPutDocumentData x))+ + sum (map size (doc_format_PrintPutDocumentData x))+ + sum (map size (options_PrintPutDocumentData x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_PrintPutDocumentData x)+ serialize (len_data_PrintPutDocumentData x)+ serialize (len_fmt_PrintPutDocumentData x)+ serialize (len_options_PrintPutDocumentData x)+ serializeList (data_PrintPutDocumentData x)+ serializeList (doc_format_PrintPutDocumentData x)+ serializeList (options_PrintPutDocumentData x)+ putSkip (requiredPadding size__)+ +data PrintGetDocumentData = MkPrintGetDocumentData{context_PrintGetDocumentData+ :: PCONTEXT,+ max_bytes_PrintGetDocumentData :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetDocumentData where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (context_PrintGetDocumentData x) ++ size (max_bytes_PrintGetDocumentData x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintGetDocumentData x)+ serialize (max_bytes_PrintGetDocumentData x)+ putSkip (requiredPadding size__)+ +data PrintGetDocumentDataReply = MkPrintGetDocumentDataReply{status_code_PrintGetDocumentDataReply+ :: CARD32,+ finished_flag_PrintGetDocumentDataReply+ :: CARD32,+ dataLen_PrintGetDocumentDataReply ::+ CARD32,+ data_PrintGetDocumentDataReply ::+ [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetDocumentDataReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ status_code <- deserialize+ finished_flag <- deserialize+ dataLen <- deserialize+ skip 12+ data_ <- deserializeList (fromIntegral dataLen)+ let _ = isCard32 length+ return+ (MkPrintGetDocumentDataReply status_code finished_flag dataLen+ data_)+ +data PrintStartPage = MkPrintStartPage{window_PrintStartPage ::+ WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintStartPage where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__ = 4 + size (window_PrintStartPage x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_PrintStartPage x)+ putSkip (requiredPadding size__)+ +data PrintEndPage = MkPrintEndPage{cancel_PrintEndPage :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintEndPage where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 14+ let size__ = 4 + size (cancel_PrintEndPage x) + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cancel_PrintEndPage x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data PrintSelectInput = MkPrintSelectInput{context_PrintSelectInput+ :: PCONTEXT,+ event_PrintSelectInput :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintSelectInput where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 15+ let size__+ = 4 + size (context_PrintSelectInput x) ++ size (event_PrintSelectInput x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintSelectInput x)+ serialize (event_PrintSelectInput x)+ putSkip (requiredPadding size__)+ +data PrintInputSelected = MkPrintInputSelected{context_PrintInputSelected+ :: PCONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintInputSelected where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 16+ let size__ = 4 + size (context_PrintInputSelected x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintInputSelected x)+ putSkip (requiredPadding size__)+ +data PrintInputSelectedReply = MkPrintInputSelectedReply{event_PrintInputSelectedReply+ :: ValueParam CARD32,+ all_events_PrintInputSelectedReply ::+ ValueParam CARD32}+ deriving (Show, Typeable)+ +instance Deserialize PrintInputSelectedReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ event <- deserialize+ all_events <- deserialize+ let _ = isCard32 length+ return (MkPrintInputSelectedReply event all_events)+ +data PrintGetAttributes = MkPrintGetAttributes{context_PrintGetAttributes+ :: PCONTEXT,+ pool_PrintGetAttributes :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetAttributes where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__+ = 4 + size (context_PrintGetAttributes x) ++ size (pool_PrintGetAttributes x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintGetAttributes x)+ serialize (pool_PrintGetAttributes x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data PrintGetAttributesReply = MkPrintGetAttributesReply{stringLen_PrintGetAttributesReply+ :: CARD32,+ attributes_PrintGetAttributesReply ::+ STRING8}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetAttributesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ stringLen <- deserialize+ skip 20+ attributes <- deserialize+ let _ = isCard32 length+ return (MkPrintGetAttributesReply stringLen attributes)+ +data PrintGetOneAttributes = MkPrintGetOneAttributes{context_PrintGetOneAttributes+ :: PCONTEXT,+ nameLen_PrintGetOneAttributes :: CARD32,+ pool_PrintGetOneAttributes :: CARD8,+ name_PrintGetOneAttributes :: [STRING8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetOneAttributes where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__+ = 4 + size (context_PrintGetOneAttributes x) ++ size (nameLen_PrintGetOneAttributes x)+ + size (pool_PrintGetOneAttributes x)+ + 3+ + sum (map size (name_PrintGetOneAttributes x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintGetOneAttributes x)+ serialize (nameLen_PrintGetOneAttributes x)+ serialize (pool_PrintGetOneAttributes x)+ putSkip 3+ serializeList (name_PrintGetOneAttributes x)+ putSkip (requiredPadding size__)+ +data PrintGetOneAttributesReply = MkPrintGetOneAttributesReply{valueLen_PrintGetOneAttributesReply+ :: CARD32,+ value_PrintGetOneAttributesReply ::+ [STRING8]}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetOneAttributesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ valueLen <- deserialize+ skip 20+ value <- deserializeList (fromIntegral valueLen)+ let _ = isCard32 length+ return (MkPrintGetOneAttributesReply valueLen value)+ +data PrintSetAttributes = MkPrintSetAttributes{context_PrintSetAttributes+ :: PCONTEXT,+ stringLen_PrintSetAttributes :: CARD32,+ pool_PrintSetAttributes :: CARD8,+ rule_PrintSetAttributes :: CARD8,+ attributes_PrintSetAttributes :: [STRING8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintSetAttributes where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__+ = 4 + size (context_PrintSetAttributes x) ++ size (stringLen_PrintSetAttributes x)+ + size (pool_PrintSetAttributes x)+ + size (rule_PrintSetAttributes x)+ + 2+ + sum (map size (attributes_PrintSetAttributes x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintSetAttributes x)+ serialize (stringLen_PrintSetAttributes x)+ serialize (pool_PrintSetAttributes x)+ serialize (rule_PrintSetAttributes x)+ putSkip 2+ serializeList (attributes_PrintSetAttributes x)+ putSkip (requiredPadding size__)+ +data PrintGetPageDimensions = MkPrintGetPageDimensions{context_PrintGetPageDimensions+ :: PCONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetPageDimensions where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 21+ let size__ = 4 + size (context_PrintGetPageDimensions x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintGetPageDimensions x)+ putSkip (requiredPadding size__)+ +data PrintGetPageDimensionsReply = MkPrintGetPageDimensionsReply{width_PrintGetPageDimensionsReply+ :: CARD16,+ height_PrintGetPageDimensionsReply+ :: CARD16,+ offset_x_PrintGetPageDimensionsReply+ :: CARD16,+ offset_y_PrintGetPageDimensionsReply+ :: CARD16,+ reproducible_width_PrintGetPageDimensionsReply+ :: CARD16,+ reproducible_height_PrintGetPageDimensionsReply+ :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetPageDimensionsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ width <- deserialize+ height <- deserialize+ offset_x <- deserialize+ offset_y <- deserialize+ reproducible_width <- deserialize+ reproducible_height <- deserialize+ let _ = isCard32 length+ return+ (MkPrintGetPageDimensionsReply width height offset_x offset_y+ reproducible_width+ reproducible_height)+ +data PrintQueryScreens = MkPrintQueryScreens{}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintQueryScreens where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 22+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data PrintQueryScreensReply = MkPrintQueryScreensReply{listCount_PrintQueryScreensReply+ :: CARD32,+ roots_PrintQueryScreensReply :: [WINDOW]}+ deriving (Show, Typeable)+ +instance Deserialize PrintQueryScreensReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ listCount <- deserialize+ skip 20+ roots <- deserializeList (fromIntegral listCount)+ let _ = isCard32 length+ return (MkPrintQueryScreensReply listCount roots)+ +data PrintSetImageResolution = MkPrintSetImageResolution{context_PrintSetImageResolution+ :: PCONTEXT,+ image_resolution_PrintSetImageResolution ::+ CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintSetImageResolution where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 23+ let size__+ = 4 + size (context_PrintSetImageResolution x) ++ size (image_resolution_PrintSetImageResolution x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintSetImageResolution x)+ serialize (image_resolution_PrintSetImageResolution x)+ putSkip (requiredPadding size__)+ +data PrintSetImageResolutionReply = MkPrintSetImageResolutionReply{status_PrintSetImageResolutionReply+ :: BOOL,+ previous_resolutions_PrintSetImageResolutionReply+ :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize PrintSetImageResolutionReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ previous_resolutions <- deserialize+ let _ = isCard32 length+ return (MkPrintSetImageResolutionReply status previous_resolutions)+ +data PrintGetImageResolution = MkPrintGetImageResolution{context_PrintGetImageResolution+ :: PCONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest PrintGetImageResolution where+ extensionId _ = "XpExtension"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 24+ let size__ = 4 + size (context_PrintGetImageResolution x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_PrintGetImageResolution x)+ putSkip (requiredPadding size__)+ +data PrintGetImageResolutionReply = MkPrintGetImageResolutionReply{image_resolution_PrintGetImageResolutionReply+ :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize PrintGetImageResolutionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ image_resolution <- deserialize+ let _ = isCard32 length+ return (MkPrintGetImageResolutionReply image_resolution)+ +data Notify = MkNotify{detail_Notify :: CARD8,+ context_Notify :: PCONTEXT, cancel_Notify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event Notify+ +instance Deserialize Notify where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ context <- deserialize+ cancel <- deserialize+ return (MkNotify detail context cancel)+ +data AttributNotify = MkAttributNotify{detail_AttributNotify ::+ CARD8,+ context_AttributNotify :: PCONTEXT}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event AttributNotify+ +instance Deserialize AttributNotify where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ context <- deserialize+ return (MkAttributNotify detail context)
+ patched/Graphics/XHB/Gen/Xevie.hs view
@@ -0,0 +1,70 @@+module Graphics.XHB.Gen.Xevie+ (extension, queryVersion, start, end, send, selectInput,+ module Graphics.XHB.Gen.Xevie.Types)+ where+import Graphics.XHB.Gen.Xevie.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(..))+ +extension :: ExtensionId+extension = "XEVIE"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD16 -> CARD16 -> IO (Receipt QueryVersionReply)+queryVersion c client_major_version client_minor_version+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion client_major_version client_minor_version+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +start ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt StartReply)+start c screen+ = do receipt <- newEmptyReceiptIO+ let req = MkStart screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +end ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt EndReply)+end c cmap+ = do receipt <- newEmptyReceiptIO+ let req = MkEnd cmap+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +send ::+ Graphics.XHB.Connection.Types.Connection ->+ Event -> CARD32 -> IO (Receipt SendReply)+send c event data_type+ = do receipt <- newEmptyReceiptIO+ let req = MkSend event data_type+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +selectInput ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD32 -> IO (Receipt SelectInputReply)+selectInput c event_mask+ = do receipt <- newEmptyReceiptIO+ let req = MkSelectInput event_mask+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/Xevie/Types.hs view
@@ -0,0 +1,186 @@+module Graphics.XHB.Gen.Xevie.Types+ (deserializeError, deserializeEvent, QueryVersion(..),+ QueryVersionReply(..), Start(..), StartReply(..), End(..),+ EndReply(..), Datatype(..), Event(..), Send(..), SendReply(..),+ SelectInput(..), SelectInputReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data QueryVersion = MkQueryVersion{client_major_version_QueryVersion+ :: CARD16,+ client_minor_version_QueryVersion :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "XEVIE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (client_major_version_QueryVersion x) ++ size (client_minor_version_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (client_major_version_QueryVersion x)+ serialize (client_minor_version_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{server_major_version_QueryVersionReply+ :: CARD16,+ server_minor_version_QueryVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ server_major_version <- deserialize+ server_minor_version <- deserialize+ skip 20+ let _ = isCard32 length+ return+ (MkQueryVersionReply server_major_version server_minor_version)+ +data Start = MkStart{screen_Start :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest Start where+ extensionId _ = "XEVIE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4 + size (screen_Start x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (screen_Start x)+ putSkip (requiredPadding size__)+ +data StartReply = MkStartReply{}+ deriving (Show, Typeable)+ +instance Deserialize StartReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ let _ = isCard32 length+ return (MkStartReply)+ +data End = MkEnd{cmap_End :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest End where+ extensionId _ = "XEVIE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (cmap_End x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (cmap_End x)+ putSkip (requiredPadding size__)+ +data EndReply = MkEndReply{}+ deriving (Show, Typeable)+ +instance Deserialize EndReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ let _ = isCard32 length+ return (MkEndReply)+ +data Datatype = DatatypeUnmodified+ | DatatypeModified+ +instance SimpleEnum Datatype where+ toValue DatatypeUnmodified{} = 0+ toValue DatatypeModified{} = 1+ fromValue 0 = DatatypeUnmodified+ fromValue 1 = DatatypeModified+ +data Event = MkEvent{}+ deriving (Show, Typeable)+ +instance Serialize Event where+ serialize x = do putSkip 32+ size x = 32+ +instance Deserialize Event where+ deserialize+ = do skip 32+ return (MkEvent)+ +data Send = MkSend{event_Send :: Event, data_type_Send :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest Send where+ extensionId _ = "XEVIE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (event_Send x) + size (data_type_Send x) + 64+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (event_Send x)+ serialize (data_type_Send x)+ putSkip 64+ putSkip (requiredPadding size__)+ +data SendReply = MkSendReply{}+ deriving (Show, Typeable)+ +instance Deserialize SendReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ let _ = isCard32 length+ return (MkSendReply)+ +data SelectInput = MkSelectInput{event_mask_SelectInput :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectInput where+ extensionId _ = "XEVIE"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4 + size (event_mask_SelectInput x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (event_mask_SelectInput x)+ putSkip (requiredPadding size__)+ +data SelectInputReply = MkSelectInputReply{}+ deriving (Show, Typeable)+ +instance Deserialize SelectInputReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ let _ = isCard32 length+ return (MkSelectInputReply)
+ patched/Graphics/XHB/Gen/Xinerama.hs view
@@ -0,0 +1,84 @@+module Graphics.XHB.Gen.Xinerama+ (extension, queryVersion, getState, getScreenCount, getScreenSize,+ isActive, queryScreens, module Graphics.XHB.Gen.Xinerama.Types)+ where+import Graphics.XHB.Gen.Xinerama.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 (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +extension :: ExtensionId+extension = "XINERAMA"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> CARD8 -> IO (Receipt QueryVersionReply)+queryVersion c major minor+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion major minor+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getState ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetStateReply)+getState c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetState window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getScreenCount ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetScreenCountReply)+getScreenCount c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetScreenCount window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +getScreenSize ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> CARD32 -> IO (Receipt GetScreenSizeReply)+getScreenSize c window screen+ = do receipt <- newEmptyReceiptIO+ let req = MkGetScreenSize window screen+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +isActive ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt IsActiveReply)+isActive c+ = do receipt <- newEmptyReceiptIO+ let req = MkIsActive+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryScreens ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryScreensReply)+queryScreens c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryScreens+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/Xinerama/Types.hs view
@@ -0,0 +1,230 @@+module Graphics.XHB.Gen.Xinerama.Types+ (deserializeError, deserializeEvent, ScreenInfo(..),+ QueryVersion(..), QueryVersionReply(..), GetState(..),+ GetStateReply(..), GetScreenCount(..), GetScreenCountReply(..),+ GetScreenSize(..), GetScreenSizeReply(..), IsActive(..),+ IsActiveReply(..), QueryScreens(..), QueryScreensReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +data ScreenInfo = MkScreenInfo{x_org_ScreenInfo :: INT16,+ y_org_ScreenInfo :: INT16, width_ScreenInfo :: CARD16,+ height_ScreenInfo :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize ScreenInfo where+ serialize x+ = do serialize (x_org_ScreenInfo x)+ serialize (y_org_ScreenInfo x)+ serialize (width_ScreenInfo x)+ serialize (height_ScreenInfo x)+ size x+ = size (x_org_ScreenInfo x) + size (y_org_ScreenInfo x) ++ size (width_ScreenInfo x)+ + size (height_ScreenInfo x)+ +instance Deserialize ScreenInfo where+ deserialize+ = do x_org <- deserialize+ y_org <- deserialize+ width <- deserialize+ height <- deserialize+ return (MkScreenInfo x_org y_org width height)+ +data QueryVersion = MkQueryVersion{major_QueryVersion :: CARD8,+ minor_QueryVersion :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "XINERAMA"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__+ = 4 + size (major_QueryVersion x) + size (minor_QueryVersion x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (major_QueryVersion x)+ serialize (minor_QueryVersion x)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_QueryVersionReply+ :: CARD16,+ minor_QueryVersionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major <- deserialize+ minor <- deserialize+ let _ = isCard32 length+ return (MkQueryVersionReply major minor)+ +data GetState = MkGetState{window_GetState :: WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetState where+ extensionId _ = "XINERAMA"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4 + size (window_GetState x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetState x)+ putSkip (requiredPadding size__)+ +data GetStateReply = MkGetStateReply{state_GetStateReply :: BYTE,+ window_GetStateReply :: WINDOW}+ deriving (Show, Typeable)+ +instance Deserialize GetStateReply where+ deserialize+ = do skip 1+ state <- deserialize+ skip 2+ length <- deserialize+ window <- deserialize+ let _ = isCard32 length+ return (MkGetStateReply state window)+ +data GetScreenCount = MkGetScreenCount{window_GetScreenCount ::+ WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetScreenCount where+ extensionId _ = "XINERAMA"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (window_GetScreenCount x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetScreenCount x)+ putSkip (requiredPadding size__)+ +data GetScreenCountReply = MkGetScreenCountReply{screen_count_GetScreenCountReply+ :: BYTE,+ window_GetScreenCountReply :: WINDOW}+ deriving (Show, Typeable)+ +instance Deserialize GetScreenCountReply where+ deserialize+ = do skip 1+ screen_count <- deserialize+ skip 2+ length <- deserialize+ window <- deserialize+ let _ = isCard32 length+ return (MkGetScreenCountReply screen_count window)+ +data GetScreenSize = MkGetScreenSize{window_GetScreenSize ::+ WINDOW,+ screen_GetScreenSize :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetScreenSize where+ extensionId _ = "XINERAMA"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__+ = 4 + size (window_GetScreenSize x) + size (screen_GetScreenSize x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_GetScreenSize x)+ serialize (screen_GetScreenSize x)+ putSkip (requiredPadding size__)+ +data GetScreenSizeReply = MkGetScreenSizeReply{width_GetScreenSizeReply+ :: CARD32,+ height_GetScreenSizeReply :: CARD32,+ window_GetScreenSizeReply :: WINDOW,+ screen_GetScreenSizeReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize GetScreenSizeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ width <- deserialize+ height <- deserialize+ window <- deserialize+ screen <- deserialize+ let _ = isCard32 length+ return (MkGetScreenSizeReply width height window screen)+ +data IsActive = MkIsActive{}+ deriving (Show, Typeable)+ +instance ExtensionRequest IsActive where+ extensionId _ = "XINERAMA"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data IsActiveReply = MkIsActiveReply{state_IsActiveReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize IsActiveReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ state <- deserialize+ let _ = isCard32 length+ return (MkIsActiveReply state)+ +data QueryScreens = MkQueryScreens{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryScreens where+ extensionId _ = "XINERAMA"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryScreensReply = MkQueryScreensReply{number_QueryScreensReply+ :: CARD32,+ screen_info_QueryScreensReply :: [ScreenInfo]}+ deriving (Show, Typeable)+ +instance Deserialize QueryScreensReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ number <- deserialize+ skip 20+ screen_info <- deserializeList (fromIntegral number)+ let _ = isCard32 length+ return (MkQueryScreensReply number screen_info)
+ patched/Graphics/XHB/Gen/Xproto.hs view
@@ -0,0 +1,935 @@+module Graphics.XHB.Gen.Xproto+ (createWindow, changeWindowAttributes, getWindowAttributes,+ destroyWindow, destroySubwindows, changeSaveSet, reparentWindow,+ mapWindow, mapSubwindows, unmapWindow, unmapSubwindows,+ configureWindow, circulateWindow, getGeometry, queryTree,+ internAtom, getAtomName, changeProperty, deleteProperty,+ getProperty, listProperties, setSelectionOwner, getSelectionOwner,+ convertSelection, sendEvent, grabPointer, ungrabPointer,+ grabButton, ungrabButton, changeActivePointerGrab, grabKeyboard,+ ungrabKeyboard, grabKey, ungrabKey, allowEvents, queryPointer,+ getMotionEvents, translateCoordinates, warpPointer, setInputFocus,+ getInputFocus, queryKeymap, openFont, closeFont, queryFont,+ queryTextExtents, listFonts, listFontsWithInfo, setFontPath,+ getFontPath, createPixmap, freePixmap, createGC, changeGC, copyGC,+ setDashes, setClipRectangles, freeGC, clearArea, copyArea,+ copyPlane, polyPoint, polyLine, polySegment, polyRectangle,+ polyArc, fillPoly, polyFillRectangle, polyFillArc, putImage,+ getImage, polyText8, polyText16, imageText8, imageText16,+ createColormap, freeColormap, copyColormapAndFree, installColormap,+ uninstallColormap, listInstalledColormaps, allocColor,+ allocNamedColor, allocColorCells, allocColorPlanes, freeColors,+ storeColors, storeNamedColor, queryColors, lookupColor,+ createCursor, createGlyphCursor, freeCursor, recolorCursor,+ queryBestSize, queryExtension, listExtensions,+ changeKeyboardMapping, getKeyboardMapping, changeKeyboardControl,+ getKeyboardControl, bell, changePointerControl, getPointerControl,+ setScreenSaver, getScreenSaver, changeHosts, listHosts,+ setAccessControl, setCloseDownMode, killClient, rotateProperties,+ forceScreenSaver, setPointerMapping, getPointerMapping,+ setModifierMapping, getModifierMapping,+ module Graphics.XHB.Gen.Xproto.Types)+ where+import Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Connection.Internal+import Graphics.XHB.Shared+import Data.Binary.Put+import Control.Concurrent.STM+import Foreign.C.Types+import qualified Graphics.XHB.Connection.Types+ +createWindow ::+ Graphics.XHB.Connection.Types.Connection -> CreateWindow -> IO ()+createWindow c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +changeWindowAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> ValueParam CARD32 -> IO ()+changeWindowAttributes c window value+ = do let req = MkChangeWindowAttributes window value+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +getWindowAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt GetWindowAttributesReply)+getWindowAttributes c window+ = do receipt <- newEmptyReceiptIO+ let req = MkGetWindowAttributes window+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +destroyWindow ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+destroyWindow c window+ = do let req = MkDestroyWindow window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +destroySubwindows ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+destroySubwindows c window+ = do let req = MkDestroySubwindows window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +changeSaveSet ::+ Graphics.XHB.Connection.Types.Connection -> BYTE -> WINDOW -> IO ()+changeSaveSet c mode window+ = do let req = MkChangeSaveSet mode window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +reparentWindow ::+ Graphics.XHB.Connection.Types.Connection -> ReparentWindow -> IO ()+reparentWindow c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +mapWindow ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+mapWindow c window+ = do let req = MkMapWindow window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +mapSubwindows ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+mapSubwindows c window+ = do let req = MkMapSubwindows window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +unmapWindow ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+unmapWindow c window+ = do let req = MkUnmapWindow window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +unmapSubwindows ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> IO ()+unmapSubwindows c window+ = do let req = MkUnmapSubwindows window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +configureWindow ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> ValueParam CARD16 -> IO ()+configureWindow c window value+ = do let req = MkConfigureWindow window value+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +circulateWindow ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> WINDOW -> IO ()+circulateWindow c direction window+ = do let req = MkCirculateWindow direction window+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +getGeometry ::+ Graphics.XHB.Connection.Types.Connection ->+ DRAWABLE -> IO (Receipt GetGeometryReply)+getGeometry c drawable+ = do receipt <- newEmptyReceiptIO+ let req = MkGetGeometry drawable+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +queryTree ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt QueryTreeReply)+queryTree c window+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryTree window+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +internAtom ::+ Graphics.XHB.Connection.Types.Connection ->+ InternAtom -> IO (Receipt InternAtomReply)+internAtom c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +getAtomName ::+ Graphics.XHB.Connection.Types.Connection ->+ ATOM -> IO (Receipt GetAtomNameReply)+getAtomName c atom+ = do receipt <- newEmptyReceiptIO+ let req = MkGetAtomName atom+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +changeProperty ::+ Graphics.XHB.Connection.Types.Connection -> ChangeProperty -> IO ()+changeProperty c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +deleteProperty ::+ Graphics.XHB.Connection.Types.Connection -> WINDOW -> ATOM -> IO ()+deleteProperty c window property+ = do let req = MkDeleteProperty window property+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +getProperty ::+ Graphics.XHB.Connection.Types.Connection ->+ GetProperty -> IO (Receipt GetPropertyReply)+getProperty c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +listProperties ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt ListPropertiesReply)+listProperties c window+ = do receipt <- newEmptyReceiptIO+ let req = MkListProperties window+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +setSelectionOwner ::+ Graphics.XHB.Connection.Types.Connection ->+ SetSelectionOwner -> IO ()+setSelectionOwner c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +getSelectionOwner ::+ Graphics.XHB.Connection.Types.Connection ->+ ATOM -> IO (Receipt GetSelectionOwnerReply)+getSelectionOwner c selection+ = do receipt <- newEmptyReceiptIO+ let req = MkGetSelectionOwner selection+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +convertSelection ::+ Graphics.XHB.Connection.Types.Connection ->+ ConvertSelection -> IO ()+convertSelection c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +sendEvent ::+ Graphics.XHB.Connection.Types.Connection -> SendEvent -> IO ()+sendEvent c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +grabPointer ::+ Graphics.XHB.Connection.Types.Connection ->+ GrabPointer -> IO (Receipt GrabPointerReply)+grabPointer c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +ungrabPointer ::+ Graphics.XHB.Connection.Types.Connection -> TIMESTAMP -> IO ()+ungrabPointer c time+ = do let req = MkUngrabPointer time+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +grabButton ::+ Graphics.XHB.Connection.Types.Connection -> GrabButton -> IO ()+grabButton c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +ungrabButton ::+ Graphics.XHB.Connection.Types.Connection -> UngrabButton -> IO ()+ungrabButton c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +changeActivePointerGrab ::+ Graphics.XHB.Connection.Types.Connection ->+ ChangeActivePointerGrab -> IO ()+changeActivePointerGrab c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +grabKeyboard ::+ Graphics.XHB.Connection.Types.Connection ->+ GrabKeyboard -> IO (Receipt GrabKeyboardReply)+grabKeyboard c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +ungrabKeyboard ::+ Graphics.XHB.Connection.Types.Connection -> TIMESTAMP -> IO ()+ungrabKeyboard c time+ = do let req = MkUngrabKeyboard time+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +grabKey ::+ Graphics.XHB.Connection.Types.Connection -> GrabKey -> IO ()+grabKey c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +ungrabKey ::+ Graphics.XHB.Connection.Types.Connection -> UngrabKey -> IO ()+ungrabKey c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +allowEvents ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> TIMESTAMP -> IO ()+allowEvents c mode time+ = do let req = MkAllowEvents mode time+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +queryPointer ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt QueryPointerReply)+queryPointer c window+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryPointer window+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +getMotionEvents ::+ Graphics.XHB.Connection.Types.Connection ->+ GetMotionEvents -> IO (Receipt GetMotionEventsReply)+getMotionEvents c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +translateCoordinates ::+ Graphics.XHB.Connection.Types.Connection ->+ TranslateCoordinates -> IO (Receipt TranslateCoordinatesReply)+translateCoordinates c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +warpPointer ::+ Graphics.XHB.Connection.Types.Connection -> WarpPointer -> IO ()+warpPointer c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +setInputFocus ::+ Graphics.XHB.Connection.Types.Connection -> SetInputFocus -> IO ()+setInputFocus c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +getInputFocus ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetInputFocusReply)+getInputFocus c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetInputFocus+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +queryKeymap ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryKeymapReply)+queryKeymap c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryKeymap+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +openFont ::+ Graphics.XHB.Connection.Types.Connection -> OpenFont -> IO ()+openFont c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +closeFont ::+ Graphics.XHB.Connection.Types.Connection -> FONT -> IO ()+closeFont c font+ = do let req = MkCloseFont font+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +queryFont ::+ Graphics.XHB.Connection.Types.Connection ->+ FONTABLE -> IO (Receipt QueryFontReply)+queryFont c font+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryFont font+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +queryTextExtents ::+ Graphics.XHB.Connection.Types.Connection ->+ FONTABLE -> [CHAR2B] -> IO (Receipt QueryTextExtentsReply)+queryTextExtents c font string+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryTextExtents font string+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +listFonts ::+ Graphics.XHB.Connection.Types.Connection ->+ ListFonts -> IO (Receipt ListFontsReply)+listFonts c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +listFontsWithInfo ::+ Graphics.XHB.Connection.Types.Connection ->+ ListFontsWithInfo -> IO (Receipt ListFontsWithInfoReply)+listFontsWithInfo c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +setFontPath ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD16 -> [CChar] -> IO ()+setFontPath c font_qty path+ = do let req = MkSetFontPath font_qty path+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +getFontPath ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetFontPathReply)+getFontPath c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetFontPath+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +createPixmap ::+ Graphics.XHB.Connection.Types.Connection -> CreatePixmap -> IO ()+createPixmap c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +freePixmap ::+ Graphics.XHB.Connection.Types.Connection -> PIXMAP -> IO ()+freePixmap c pixmap+ = do let req = MkFreePixmap pixmap+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +createGC ::+ Graphics.XHB.Connection.Types.Connection -> CreateGC -> IO ()+createGC c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +changeGC ::+ Graphics.XHB.Connection.Types.Connection ->+ GCONTEXT -> ValueParam CARD32 -> IO ()+changeGC c gc value+ = do let req = MkChangeGC gc value+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +copyGC ::+ Graphics.XHB.Connection.Types.Connection -> CopyGC -> IO ()+copyGC c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +setDashes ::+ Graphics.XHB.Connection.Types.Connection -> SetDashes -> IO ()+setDashes c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +setClipRectangles ::+ Graphics.XHB.Connection.Types.Connection ->+ SetClipRectangles -> IO ()+setClipRectangles c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +freeGC ::+ Graphics.XHB.Connection.Types.Connection -> GCONTEXT -> IO ()+freeGC c gc+ = do let req = MkFreeGC gc+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +clearArea ::+ Graphics.XHB.Connection.Types.Connection -> ClearArea -> IO ()+clearArea c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +copyArea ::+ Graphics.XHB.Connection.Types.Connection -> CopyArea -> IO ()+copyArea c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +copyPlane ::+ Graphics.XHB.Connection.Types.Connection -> CopyPlane -> IO ()+copyPlane c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polyPoint ::+ Graphics.XHB.Connection.Types.Connection -> PolyPoint -> IO ()+polyPoint c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polyLine ::+ Graphics.XHB.Connection.Types.Connection -> PolyLine -> IO ()+polyLine c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polySegment ::+ Graphics.XHB.Connection.Types.Connection -> PolySegment -> IO ()+polySegment c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polyRectangle ::+ Graphics.XHB.Connection.Types.Connection -> PolyRectangle -> IO ()+polyRectangle c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polyArc ::+ Graphics.XHB.Connection.Types.Connection -> PolyArc -> IO ()+polyArc c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +fillPoly ::+ Graphics.XHB.Connection.Types.Connection -> FillPoly -> IO ()+fillPoly c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polyFillRectangle ::+ Graphics.XHB.Connection.Types.Connection ->+ PolyFillRectangle -> IO ()+polyFillRectangle c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polyFillArc ::+ Graphics.XHB.Connection.Types.Connection -> PolyFillArc -> IO ()+polyFillArc c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +putImage ::+ Graphics.XHB.Connection.Types.Connection -> PutImage -> IO ()+putImage c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +getImage ::+ Graphics.XHB.Connection.Types.Connection ->+ GetImage -> IO (Receipt GetImageReply)+getImage c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +polyText8 ::+ Graphics.XHB.Connection.Types.Connection -> PolyText8 -> IO ()+polyText8 c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +polyText16 ::+ Graphics.XHB.Connection.Types.Connection -> PolyText16 -> IO ()+polyText16 c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +imageText8 ::+ Graphics.XHB.Connection.Types.Connection -> ImageText8 -> IO ()+imageText8 c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +imageText16 ::+ Graphics.XHB.Connection.Types.Connection -> ImageText16 -> IO ()+imageText16 c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +createColormap ::+ Graphics.XHB.Connection.Types.Connection -> CreateColormap -> IO ()+createColormap c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +freeColormap ::+ Graphics.XHB.Connection.Types.Connection -> COLORMAP -> IO ()+freeColormap c cmap+ = do let req = MkFreeColormap cmap+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +copyColormapAndFree ::+ Graphics.XHB.Connection.Types.Connection ->+ COLORMAP -> COLORMAP -> IO ()+copyColormapAndFree c mid src_cmap+ = do let req = MkCopyColormapAndFree mid src_cmap+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +installColormap ::+ Graphics.XHB.Connection.Types.Connection -> COLORMAP -> IO ()+installColormap c cmap+ = do let req = MkInstallColormap cmap+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +uninstallColormap ::+ Graphics.XHB.Connection.Types.Connection -> COLORMAP -> IO ()+uninstallColormap c cmap+ = do let req = MkUninstallColormap cmap+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +listInstalledColormaps ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt ListInstalledColormapsReply)+listInstalledColormaps c window+ = do receipt <- newEmptyReceiptIO+ let req = MkListInstalledColormaps window+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +allocColor ::+ Graphics.XHB.Connection.Types.Connection ->+ AllocColor -> IO (Receipt AllocColorReply)+allocColor c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +allocNamedColor ::+ Graphics.XHB.Connection.Types.Connection ->+ AllocNamedColor -> IO (Receipt AllocNamedColorReply)+allocNamedColor c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +allocColorCells ::+ Graphics.XHB.Connection.Types.Connection ->+ AllocColorCells -> IO (Receipt AllocColorCellsReply)+allocColorCells c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +allocColorPlanes ::+ Graphics.XHB.Connection.Types.Connection ->+ AllocColorPlanes -> IO (Receipt AllocColorPlanesReply)+allocColorPlanes c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +freeColors ::+ Graphics.XHB.Connection.Types.Connection -> FreeColors -> IO ()+freeColors c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +storeColors ::+ Graphics.XHB.Connection.Types.Connection ->+ COLORMAP -> [COLORITEM] -> IO ()+storeColors c cmap items+ = do let req = MkStoreColors cmap items+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +storeNamedColor ::+ Graphics.XHB.Connection.Types.Connection ->+ StoreNamedColor -> IO ()+storeNamedColor c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +queryColors ::+ Graphics.XHB.Connection.Types.Connection ->+ COLORMAP -> [CARD32] -> IO (Receipt QueryColorsReply)+queryColors c cmap pixels+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryColors cmap pixels+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +lookupColor ::+ Graphics.XHB.Connection.Types.Connection ->+ LookupColor -> IO (Receipt LookupColorReply)+lookupColor c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +createCursor ::+ Graphics.XHB.Connection.Types.Connection -> CreateCursor -> IO ()+createCursor c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +createGlyphCursor ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateGlyphCursor -> IO ()+createGlyphCursor c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +freeCursor ::+ Graphics.XHB.Connection.Types.Connection -> CURSOR -> IO ()+freeCursor c cursor+ = do let req = MkFreeCursor cursor+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +recolorCursor ::+ Graphics.XHB.Connection.Types.Connection -> RecolorCursor -> IO ()+recolorCursor c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +queryBestSize ::+ Graphics.XHB.Connection.Types.Connection ->+ QueryBestSize -> IO (Receipt QueryBestSizeReply)+queryBestSize c req+ = do receipt <- newEmptyReceiptIO+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +queryExtension ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD16 -> [CChar] -> IO (Receipt QueryExtensionReply)+queryExtension c name_len name+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryExtension name_len name+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +listExtensions ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt ListExtensionsReply)+listExtensions c+ = do receipt <- newEmptyReceiptIO+ let req = MkListExtensions+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +changeKeyboardMapping ::+ Graphics.XHB.Connection.Types.Connection ->+ ChangeKeyboardMapping -> IO ()+changeKeyboardMapping c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +getKeyboardMapping ::+ Graphics.XHB.Connection.Types.Connection ->+ KEYCODE -> CARD8 -> IO (Receipt GetKeyboardMappingReply)+getKeyboardMapping c first_keycode count+ = do receipt <- newEmptyReceiptIO+ let req = MkGetKeyboardMapping first_keycode count+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +changeKeyboardControl ::+ Graphics.XHB.Connection.Types.Connection ->+ ValueParam CARD32 -> IO ()+changeKeyboardControl c value+ = do let req = MkChangeKeyboardControl value+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +getKeyboardControl ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetKeyboardControlReply)+getKeyboardControl c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetKeyboardControl+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +bell :: Graphics.XHB.Connection.Types.Connection -> INT8 -> IO ()+bell c percent+ = do let req = MkBell percent+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +changePointerControl ::+ Graphics.XHB.Connection.Types.Connection ->+ ChangePointerControl -> IO ()+changePointerControl c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +getPointerControl ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetPointerControlReply)+getPointerControl c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPointerControl+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +setScreenSaver ::+ Graphics.XHB.Connection.Types.Connection -> SetScreenSaver -> IO ()+setScreenSaver c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +getScreenSaver ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetScreenSaverReply)+getScreenSaver c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetScreenSaver+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +changeHosts ::+ Graphics.XHB.Connection.Types.Connection -> ChangeHosts -> IO ()+changeHosts c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +listHosts ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt ListHostsReply)+listHosts c+ = do receipt <- newEmptyReceiptIO+ let req = MkListHosts+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +setAccessControl ::+ Graphics.XHB.Connection.Types.Connection -> CARD8 -> IO ()+setAccessControl c mode+ = do let req = MkSetAccessControl mode+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +setCloseDownMode ::+ Graphics.XHB.Connection.Types.Connection -> CARD8 -> IO ()+setCloseDownMode c mode+ = do let req = MkSetCloseDownMode mode+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +killClient ::+ Graphics.XHB.Connection.Types.Connection -> CARD32 -> IO ()+killClient c resource+ = do let req = MkKillClient resource+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +rotateProperties ::+ Graphics.XHB.Connection.Types.Connection ->+ RotateProperties -> IO ()+rotateProperties c req+ = do let chunk = runPut (serialize req)+ sendRequest c chunk+ +forceScreenSaver ::+ Graphics.XHB.Connection.Types.Connection -> CARD8 -> IO ()+forceScreenSaver c mode+ = do let req = MkForceScreenSaver mode+ let chunk = runPut (serialize req)+ sendRequest c chunk+ +setPointerMapping ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> [CARD8] -> IO (Receipt SetPointerMappingReply)+setPointerMapping c map_len map+ = do receipt <- newEmptyReceiptIO+ let req = MkSetPointerMapping map_len map+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +getPointerMapping ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetPointerMappingReply)+getPointerMapping c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPointerMapping+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +setModifierMapping ::+ Graphics.XHB.Connection.Types.Connection ->+ CARD8 -> [KEYCODE] -> IO (Receipt SetModifierMappingReply)+setModifierMapping c keycodes_per_modifier keycodes+ = do receipt <- newEmptyReceiptIO+ let req = MkSetModifierMapping keycodes_per_modifier keycodes+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt+ +getModifierMapping ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt GetModifierMappingReply)+getModifierMapping c+ = do receipt <- newEmptyReceiptIO+ let req = MkGetModifierMapping+ let chunk = runPut (serialize req)+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/Xproto/Types.hs view
@@ -0,0 +1,6146 @@+module Graphics.XHB.Gen.Xproto.Types+ (deserializeError, deserializeEvent, CHAR2B(..), WINDOW, PIXMAP,+ CURSOR, FONT, GCONTEXT, COLORMAP, ATOM, DRAWABLE, FONTABLE,+ VISUALID, TIMESTAMP, KEYSYM, KEYCODE, BUTTON, POINT(..),+ RECTANGLE(..), ARC(..), FORMAT(..), VisualClass(..),+ VISUALTYPE(..), DEPTH(..), SCREEN(..), SetupRequest(..),+ SetupFailed(..), SetupAuthenticate(..), ImageOrder(..), Setup(..),+ ModMask(..), KeyPress(..), KeyRelease(..), ButtonMask(..),+ ButtonPress(..), ButtonRelease(..), Motion(..), MotionNotify(..),+ NotifyDetail(..), NotifyMode(..), EnterNotify(..), LeaveNotify(..),+ FocusIn(..), FocusOut(..), KeymapNotify(..), Expose(..),+ GraphicsExposure(..), NoExposure(..), Visibility(..),+ VisibilityNotify(..), CreateNotify(..), DestroyNotify(..),+ UnmapNotify(..), MapNotify(..), MapRequest(..), ReparentNotify(..),+ ConfigureNotify(..), ConfigureRequest(..), GravityNotify(..),+ ResizeRequest(..), Place(..), CirculateNotify(..),+ CirculateRequest(..), Property(..), PropertyNotify(..),+ SelectionClear(..), SelectionRequest(..), SelectionNotify(..),+ ColormapState(..), ColormapNotify(..), ClientMessage(..),ClientMessageData(..),+ Mapping(..), MappingNotify(..), Request(..), Value(..), Window(..),+ Pixmap(..), Atom(..), Cursor(..), Font(..), Match(..),+ Drawable(..), Access(..), Alloc(..), Colormap(..), GContext(..),+ IDChoice(..), Name(..), Length(..), Implementation(..),+ WindowClass(..), CW(..), BackPixmap(..), Gravity(..),+ BackingStore(..), EventMask(..), CreateWindow(..),+ ChangeWindowAttributes(..), MapState(..), GetWindowAttributes(..),+ GetWindowAttributesReply(..), DestroyWindow(..),+ DestroySubwindows(..), SetMode(..), ChangeSaveSet(..),+ ReparentWindow(..), MapWindow(..), MapSubwindows(..),+ UnmapWindow(..), UnmapSubwindows(..), ConfigWindow(..),+ StackMode(..), ConfigureWindow(..), Circulate(..),+ CirculateWindow(..), GetGeometry(..), GetGeometryReply(..),+ QueryTree(..), QueryTreeReply(..), InternAtom(..),+ InternAtomReply(..), GetAtomName(..), GetAtomNameReply(..),+ PropMode(..), ChangeProperty(..), DeleteProperty(..),+ GetPropertyType(..), GetProperty(..), GetPropertyReply(..),+ ListProperties(..), ListPropertiesReply(..), SetSelectionOwner(..),+ GetSelectionOwner(..), GetSelectionOwnerReply(..),+ ConvertSelection(..), SendEventDest(..), SendEvent(..),+ GrabMode(..), GrabStatus(..), GrabPointer(..),+ GrabPointerReply(..), UngrabPointer(..), ButtonIndex(..),+ GrabButton(..), UngrabButton(..), ChangeActivePointerGrab(..),+ GrabKeyboard(..), GrabKeyboardReply(..), UngrabKeyboard(..),+ Grab(..), GrabKey(..), UngrabKey(..), Allow(..), AllowEvents(..),+ QueryPointer(..), QueryPointerReply(..), TIMECOORD(..),+ GetMotionEvents(..), GetMotionEventsReply(..),+ TranslateCoordinates(..), TranslateCoordinatesReply(..),+ WarpPointer(..), InputFocus(..), SetInputFocus(..),+ GetInputFocus(..), GetInputFocusReply(..), QueryKeymap(..),+ QueryKeymapReply(..), OpenFont(..), CloseFont(..), FontDraw(..),+ FONTPROP(..), CHARINFO(..), QueryFont(..), QueryFontReply(..),+ odd_length_QueryTextExtents, QueryTextExtents(..),+ QueryTextExtentsReply(..), STR(..), ListFonts(..),+ ListFontsReply(..), ListFontsWithInfo(..),+ ListFontsWithInfoReply(..), SetFontPath(..), GetFontPath(..),+ GetFontPathReply(..), CreatePixmap(..), FreePixmap(..), GC(..),+ GX(..), LineStyle(..), CapStyle(..), JoinStyle(..), FillStyle(..),+ FillRule(..), SubwindowMode(..), ArcMode(..), CreateGC(..),+ ChangeGC(..), CopyGC(..), SetDashes(..), ClipOrdering(..),+ SetClipRectangles(..), FreeGC(..), ClearArea(..), CopyArea(..),+ CopyPlane(..), CoordMode(..), PolyPoint(..), PolyLine(..),+ SEGMENT(..), PolySegment(..), PolyRectangle(..), PolyArc(..),+ PolyShape(..), FillPoly(..), PolyFillRectangle(..),+ PolyFillArc(..), ImageFormat(..), PutImage(..), GetImage(..),+ GetImageReply(..), PolyText8(..), PolyText16(..), ImageText8(..),+ ImageText16(..), ColormapAlloc(..), CreateColormap(..),+ FreeColormap(..), CopyColormapAndFree(..), InstallColormap(..),+ UninstallColormap(..), ListInstalledColormaps(..),+ ListInstalledColormapsReply(..), AllocColor(..),+ AllocColorReply(..), AllocNamedColor(..), AllocNamedColorReply(..),+ AllocColorCells(..), AllocColorCellsReply(..),+ AllocColorPlanes(..), AllocColorPlanesReply(..), FreeColors(..),+ ColorFlag(..), COLORITEM(..), StoreColors(..), StoreNamedColor(..),+ RGB(..), QueryColors(..), QueryColorsReply(..), LookupColor(..),+ LookupColorReply(..), CreateCursor(..), CreateGlyphCursor(..),+ FreeCursor(..), RecolorCursor(..), QueryShapeOf(..),+ QueryBestSize(..), QueryBestSizeReply(..), QueryExtension(..),+ QueryExtensionReply(..), ListExtensions(..),+ ListExtensionsReply(..), ChangeKeyboardMapping(..),+ GetKeyboardMapping(..), GetKeyboardMappingReply(..), KB(..),+ LedMode(..), AutoRepeatMode(..), ChangeKeyboardControl(..),+ GetKeyboardControl(..), GetKeyboardControlReply(..), Bell(..),+ ChangePointerControl(..), GetPointerControl(..),+ GetPointerControlReply(..), Blanking(..), Exposures(..),+ SetScreenSaver(..), GetScreenSaver(..), GetScreenSaverReply(..),+ HostMode(..), Family(..), ChangeHosts(..), HOST(..), ListHosts(..),+ ListHostsReply(..), AccessControl(..), SetAccessControl(..),+ CloseDown(..), SetCloseDownMode(..), Kill(..), KillClient(..),+ RotateProperties(..), ScreenSaver(..), ForceScreenSaver(..),+ MappingStatus(..), SetPointerMapping(..),+ SetPointerMappingReply(..), GetPointerMapping(..),+ GetPointerMappingReply(..), MapIndex(..), SetModifierMapping(..),+ SetModifierMappingReply(..), GetModifierMapping(..),+ GetModifierMappingReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError 1+ = return (liftM toError (deserialize :: Get Request))+deserializeError 2+ = return (liftM toError (deserialize :: Get Value))+deserializeError 3+ = return (liftM toError (deserialize :: Get Window))+deserializeError 4+ = return (liftM toError (deserialize :: Get Pixmap))+deserializeError 5+ = return (liftM toError (deserialize :: Get Atom))+deserializeError 6+ = return (liftM toError (deserialize :: Get Cursor))+deserializeError 7+ = return (liftM toError (deserialize :: Get Font))+deserializeError 8+ = return (liftM toError (deserialize :: Get Match))+deserializeError 9+ = return (liftM toError (deserialize :: Get Drawable))+deserializeError 10+ = return (liftM toError (deserialize :: Get Access))+deserializeError 11+ = return (liftM toError (deserialize :: Get Alloc))+deserializeError 12+ = return (liftM toError (deserialize :: Get Colormap))+deserializeError 13+ = return (liftM toError (deserialize :: Get GContext))+deserializeError 14+ = return (liftM toError (deserialize :: Get IDChoice))+deserializeError 15+ = return (liftM toError (deserialize :: Get Name))+deserializeError 16+ = return (liftM toError (deserialize :: Get Length))+deserializeError 17+ = return (liftM toError (deserialize :: Get Implementation))+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 2+ = return (liftM toEvent (deserialize :: Get KeyPress))+deserializeEvent 3+ = return (liftM toEvent (deserialize :: Get KeyRelease))+deserializeEvent 4+ = return (liftM toEvent (deserialize :: Get ButtonPress))+deserializeEvent 5+ = return (liftM toEvent (deserialize :: Get ButtonRelease))+deserializeEvent 6+ = return (liftM toEvent (deserialize :: Get MotionNotify))+deserializeEvent 7+ = return (liftM toEvent (deserialize :: Get EnterNotify))+deserializeEvent 8+ = return (liftM toEvent (deserialize :: Get LeaveNotify))+deserializeEvent 9+ = return (liftM toEvent (deserialize :: Get FocusIn))+deserializeEvent 10+ = return (liftM toEvent (deserialize :: Get FocusOut))+deserializeEvent 11+ = return (liftM toEvent (deserialize :: Get KeymapNotify))+deserializeEvent 12+ = return (liftM toEvent (deserialize :: Get Expose))+deserializeEvent 13+ = return (liftM toEvent (deserialize :: Get GraphicsExposure))+deserializeEvent 14+ = return (liftM toEvent (deserialize :: Get NoExposure))+deserializeEvent 15+ = return (liftM toEvent (deserialize :: Get VisibilityNotify))+deserializeEvent 16+ = return (liftM toEvent (deserialize :: Get CreateNotify))+deserializeEvent 17+ = return (liftM toEvent (deserialize :: Get DestroyNotify))+deserializeEvent 18+ = return (liftM toEvent (deserialize :: Get UnmapNotify))+deserializeEvent 19+ = return (liftM toEvent (deserialize :: Get MapNotify))+deserializeEvent 20+ = return (liftM toEvent (deserialize :: Get MapRequest))+deserializeEvent 21+ = return (liftM toEvent (deserialize :: Get ReparentNotify))+deserializeEvent 22+ = return (liftM toEvent (deserialize :: Get ConfigureNotify))+deserializeEvent 23+ = return (liftM toEvent (deserialize :: Get ConfigureRequest))+deserializeEvent 24+ = return (liftM toEvent (deserialize :: Get GravityNotify))+deserializeEvent 25+ = return (liftM toEvent (deserialize :: Get ResizeRequest))+deserializeEvent 26+ = return (liftM toEvent (deserialize :: Get CirculateNotify))+deserializeEvent 27+ = return (liftM toEvent (deserialize :: Get CirculateRequest))+deserializeEvent 28+ = return (liftM toEvent (deserialize :: Get PropertyNotify))+deserializeEvent 29+ = return (liftM toEvent (deserialize :: Get SelectionClear))+deserializeEvent 30+ = return (liftM toEvent (deserialize :: Get SelectionRequest))+deserializeEvent 31+ = return (liftM toEvent (deserialize :: Get SelectionNotify))+deserializeEvent 32+ = return (liftM toEvent (deserialize :: Get ColormapNotify))+deserializeEvent 33+ = return (liftM toEvent (deserialize :: Get ClientMessage))+deserializeEvent 34+ = return (liftM toEvent (deserialize :: Get MappingNotify))+deserializeEvent _ = Nothing+ +data CHAR2B = MkCHAR2B{byte1_CHAR2B :: CARD8,+ byte2_CHAR2B :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize CHAR2B where+ serialize x+ = do serialize (byte1_CHAR2B x)+ serialize (byte2_CHAR2B x)+ size x = size (byte1_CHAR2B x) + size (byte2_CHAR2B x)+ +instance Deserialize CHAR2B where+ deserialize+ = do byte1 <- deserialize+ byte2 <- deserialize+ return (MkCHAR2B byte1 byte2)+ +newtype WINDOW = MkWINDOW Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype PIXMAP = MkPIXMAP Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype CURSOR = MkCURSOR Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype FONT = MkFONT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype GCONTEXT = MkGCONTEXT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype COLORMAP = MkCOLORMAP Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype ATOM = MkATOM Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype DRAWABLE = MkDRAWABLE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype FONTABLE = MkFONTABLE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +type VISUALID = CARD32+ +type TIMESTAMP = CARD32+ +type KEYSYM = CARD32+ +type KEYCODE = CARD8+ +type BUTTON = CARD8+ +data POINT = MkPOINT{x_POINT :: INT16, y_POINT :: INT16}+ deriving (Show, Typeable)+ +instance Serialize POINT where+ serialize x+ = do serialize (x_POINT x)+ serialize (y_POINT x)+ size x = size (x_POINT x) + size (y_POINT x)+ +instance Deserialize POINT where+ deserialize+ = do x <- deserialize+ y <- deserialize+ return (MkPOINT x y)+ +data RECTANGLE = MkRECTANGLE{x_RECTANGLE :: INT16,+ y_RECTANGLE :: INT16, width_RECTANGLE :: CARD16,+ height_RECTANGLE :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize RECTANGLE where+ serialize x+ = do serialize (x_RECTANGLE x)+ serialize (y_RECTANGLE x)+ serialize (width_RECTANGLE x)+ serialize (height_RECTANGLE x)+ size x+ = size (x_RECTANGLE x) + size (y_RECTANGLE x) ++ size (width_RECTANGLE x)+ + size (height_RECTANGLE x)+ +instance Deserialize RECTANGLE where+ deserialize+ = do x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ return (MkRECTANGLE x y width height)+ +data ARC = MkARC{x_ARC :: INT16, y_ARC :: INT16,+ width_ARC :: CARD16, height_ARC :: CARD16, angle1_ARC :: INT16,+ angle2_ARC :: INT16}+ deriving (Show, Typeable)+ +instance Serialize ARC where+ serialize x+ = do serialize (x_ARC x)+ serialize (y_ARC x)+ serialize (width_ARC x)+ serialize (height_ARC x)+ serialize (angle1_ARC x)+ serialize (angle2_ARC x)+ size x+ = size (x_ARC x) + size (y_ARC x) + size (width_ARC x) ++ size (height_ARC x)+ + size (angle1_ARC x)+ + size (angle2_ARC x)+ +instance Deserialize ARC where+ deserialize+ = do x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ angle1 <- deserialize+ angle2 <- deserialize+ return (MkARC x y width height angle1 angle2)+ +data FORMAT = MkFORMAT{depth_FORMAT :: CARD8,+ bits_per_pixel_FORMAT :: CARD8, scanline_pad_FORMAT :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize FORMAT where+ serialize x+ = do serialize (depth_FORMAT x)+ serialize (bits_per_pixel_FORMAT x)+ serialize (scanline_pad_FORMAT x)+ putSkip 5+ size x+ = size (depth_FORMAT x) + size (bits_per_pixel_FORMAT x) ++ size (scanline_pad_FORMAT x)+ + 5+ +instance Deserialize FORMAT where+ deserialize+ = do depth <- deserialize+ bits_per_pixel <- deserialize+ scanline_pad <- deserialize+ skip 5+ return (MkFORMAT depth bits_per_pixel scanline_pad)+ +data VisualClass = VisualClassStaticGray+ | VisualClassGrayScale+ | VisualClassStaticColor+ | VisualClassPseudoColor+ | VisualClassTrueColor+ | VisualClassDirectColor+ +instance SimpleEnum VisualClass where+ toValue VisualClassStaticGray{} = 0+ toValue VisualClassGrayScale{} = 1+ toValue VisualClassStaticColor{} = 2+ toValue VisualClassPseudoColor{} = 3+ toValue VisualClassTrueColor{} = 4+ toValue VisualClassDirectColor{} = 5+ fromValue 0 = VisualClassStaticGray+ fromValue 1 = VisualClassGrayScale+ fromValue 2 = VisualClassStaticColor+ fromValue 3 = VisualClassPseudoColor+ fromValue 4 = VisualClassTrueColor+ fromValue 5 = VisualClassDirectColor+ +data VISUALTYPE = MkVISUALTYPE{visual_id_VISUALTYPE :: VISUALID,+ class_VISUALTYPE :: CARD8, bits_per_rgb_value_VISUALTYPE :: CARD8,+ colormap_entries_VISUALTYPE :: CARD16,+ red_mask_VISUALTYPE :: CARD32, green_mask_VISUALTYPE :: CARD32,+ blue_mask_VISUALTYPE :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize VISUALTYPE where+ serialize x+ = do serialize (visual_id_VISUALTYPE x)+ serialize (class_VISUALTYPE x)+ serialize (bits_per_rgb_value_VISUALTYPE x)+ serialize (colormap_entries_VISUALTYPE x)+ serialize (red_mask_VISUALTYPE x)+ serialize (green_mask_VISUALTYPE x)+ serialize (blue_mask_VISUALTYPE x)+ putSkip 4+ size x+ = size (visual_id_VISUALTYPE x) + size (class_VISUALTYPE x) ++ size (bits_per_rgb_value_VISUALTYPE x)+ + size (colormap_entries_VISUALTYPE x)+ + size (red_mask_VISUALTYPE x)+ + size (green_mask_VISUALTYPE x)+ + size (blue_mask_VISUALTYPE x)+ + 4+ +instance Deserialize VISUALTYPE where+ deserialize+ = do visual_id <- deserialize+ class_ <- deserialize+ bits_per_rgb_value <- deserialize+ colormap_entries <- deserialize+ red_mask <- deserialize+ green_mask <- deserialize+ blue_mask <- deserialize+ skip 4+ return+ (MkVISUALTYPE visual_id class_ bits_per_rgb_value colormap_entries+ red_mask+ green_mask+ blue_mask)+ +data DEPTH = MkDEPTH{depth_DEPTH :: CARD8,+ visuals_len_DEPTH :: CARD16, visuals_DEPTH :: [VISUALTYPE]}+ deriving (Show, Typeable)+ +instance Serialize DEPTH where+ serialize x+ = do serialize (depth_DEPTH x)+ putSkip 1+ serialize (visuals_len_DEPTH x)+ putSkip 4+ serializeList (visuals_DEPTH x)+ size x+ = size (depth_DEPTH x) + 1 + size (visuals_len_DEPTH x) + 4 ++ sum (map size (visuals_DEPTH x))+ +instance Deserialize DEPTH where+ deserialize+ = do depth <- deserialize+ skip 1+ visuals_len <- deserialize+ skip 4+ visuals <- deserializeList (fromIntegral visuals_len)+ return (MkDEPTH depth visuals_len visuals)+ +data SCREEN = MkSCREEN{root_SCREEN :: WINDOW,+ default_colormap_SCREEN :: COLORMAP, white_pixel_SCREEN :: CARD32,+ black_pixel_SCREEN :: CARD32, current_input_masks_SCREEN :: CARD32,+ width_in_pixels_SCREEN :: CARD16,+ height_in_pixels_SCREEN :: CARD16,+ width_in_millimeters_SCREEN :: CARD16,+ height_in_millimeters_SCREEN :: CARD16,+ min_installed_maps_SCREEN :: CARD16,+ max_installed_maps_SCREEN :: CARD16,+ root_visual_SCREEN :: VISUALID, backing_stores_SCREEN :: BYTE,+ save_unders_SCREEN :: BOOL, root_depth_SCREEN :: CARD8,+ allowed_depths_len_SCREEN :: CARD8,+ allowed_depths_SCREEN :: [DEPTH]}+ deriving (Show, Typeable)+ +instance Serialize SCREEN where+ serialize x+ = do serialize (root_SCREEN x)+ serialize (default_colormap_SCREEN x)+ serialize (white_pixel_SCREEN x)+ serialize (black_pixel_SCREEN x)+ serialize (current_input_masks_SCREEN x)+ serialize (width_in_pixels_SCREEN x)+ serialize (height_in_pixels_SCREEN x)+ serialize (width_in_millimeters_SCREEN x)+ serialize (height_in_millimeters_SCREEN x)+ serialize (min_installed_maps_SCREEN x)+ serialize (max_installed_maps_SCREEN x)+ serialize (root_visual_SCREEN x)+ serialize (backing_stores_SCREEN x)+ serialize (save_unders_SCREEN x)+ serialize (root_depth_SCREEN x)+ serialize (allowed_depths_len_SCREEN x)+ serializeList (allowed_depths_SCREEN x)+ size x+ = size (root_SCREEN x) + size (default_colormap_SCREEN x) ++ size (white_pixel_SCREEN x)+ + size (black_pixel_SCREEN x)+ + size (current_input_masks_SCREEN x)+ + size (width_in_pixels_SCREEN x)+ + size (height_in_pixels_SCREEN x)+ + size (width_in_millimeters_SCREEN x)+ + size (height_in_millimeters_SCREEN x)+ + size (min_installed_maps_SCREEN x)+ + size (max_installed_maps_SCREEN x)+ + size (root_visual_SCREEN x)+ + size (backing_stores_SCREEN x)+ + size (save_unders_SCREEN x)+ + size (root_depth_SCREEN x)+ + size (allowed_depths_len_SCREEN x)+ + sum (map size (allowed_depths_SCREEN x))+ +instance Deserialize SCREEN where+ deserialize+ = do root <- deserialize+ default_colormap <- deserialize+ white_pixel <- deserialize+ black_pixel <- deserialize+ current_input_masks <- deserialize+ width_in_pixels <- deserialize+ height_in_pixels <- deserialize+ width_in_millimeters <- deserialize+ height_in_millimeters <- deserialize+ min_installed_maps <- deserialize+ max_installed_maps <- deserialize+ root_visual <- deserialize+ backing_stores <- deserialize+ save_unders <- deserialize+ root_depth <- deserialize+ allowed_depths_len <- deserialize+ allowed_depths <- deserializeList (fromIntegral allowed_depths_len)+ return+ (MkSCREEN root default_colormap white_pixel black_pixel+ current_input_masks+ width_in_pixels+ height_in_pixels+ width_in_millimeters+ height_in_millimeters+ min_installed_maps+ max_installed_maps+ root_visual+ backing_stores+ save_unders+ root_depth+ allowed_depths_len+ allowed_depths)+ +data SetupRequest = MkSetupRequest{byte_order_SetupRequest ::+ CARD8,+ protocol_major_version_SetupRequest :: CARD16,+ protocol_minor_version_SetupRequest :: CARD16,+ authorization_protocol_name_len_SetupRequest :: CARD16,+ authorization_protocol_data_len_SetupRequest :: CARD16,+ authorization_protocol_name_SetupRequest :: [CChar],+ authorization_protocol_data_SetupRequest :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize SetupRequest where+ serialize x+ = do serialize (byte_order_SetupRequest x)+ putSkip 1+ serialize (protocol_major_version_SetupRequest x)+ serialize (protocol_minor_version_SetupRequest x)+ serialize (authorization_protocol_name_len_SetupRequest x)+ serialize (authorization_protocol_data_len_SetupRequest x)+ putSkip 2+ serializeList (authorization_protocol_name_SetupRequest x)+ serializeList (authorization_protocol_data_SetupRequest x)+ size x+ = size (byte_order_SetupRequest x) + 1 ++ size (protocol_major_version_SetupRequest x)+ + size (protocol_minor_version_SetupRequest x)+ + size (authorization_protocol_name_len_SetupRequest x)+ + size (authorization_protocol_data_len_SetupRequest x)+ + 2+ + sum (map size (authorization_protocol_name_SetupRequest x))+ + sum (map size (authorization_protocol_data_SetupRequest x))+ +instance Deserialize SetupRequest where+ deserialize+ = do byte_order <- deserialize+ skip 1+ protocol_major_version <- deserialize+ protocol_minor_version <- deserialize+ authorization_protocol_name_len <- deserialize+ authorization_protocol_data_len <- deserialize+ skip 2+ authorization_protocol_name <- deserializeList+ (fromIntegral authorization_protocol_name_len)+ authorization_protocol_data <- deserializeList+ (fromIntegral authorization_protocol_data_len)+ return+ (MkSetupRequest byte_order protocol_major_version+ protocol_minor_version+ authorization_protocol_name_len+ authorization_protocol_data_len+ authorization_protocol_name+ authorization_protocol_data)+ +data SetupFailed = MkSetupFailed{status_SetupFailed :: CARD8,+ reason_len_SetupFailed :: CARD8,+ protocol_major_version_SetupFailed :: CARD16,+ protocol_minor_version_SetupFailed :: CARD16,+ length_SetupFailed :: CARD16, reason_SetupFailed :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize SetupFailed where+ serialize x+ = do serialize (status_SetupFailed x)+ serialize (reason_len_SetupFailed x)+ serialize (protocol_major_version_SetupFailed x)+ serialize (protocol_minor_version_SetupFailed x)+ serialize (length_SetupFailed x)+ serializeList (reason_SetupFailed x)+ size x+ = size (status_SetupFailed x) + size (reason_len_SetupFailed x) ++ size (protocol_major_version_SetupFailed x)+ + size (protocol_minor_version_SetupFailed x)+ + size (length_SetupFailed x)+ + sum (map size (reason_SetupFailed x))+ +instance Deserialize SetupFailed where+ deserialize+ = do status <- deserialize+ reason_len <- deserialize+ protocol_major_version <- deserialize+ protocol_minor_version <- deserialize+ length <- deserialize+ reason <- deserializeList (fromIntegral reason_len)+ return+ (MkSetupFailed status reason_len protocol_major_version+ protocol_minor_version+ length+ reason)+ +data SetupAuthenticate = MkSetupAuthenticate{status_SetupAuthenticate+ :: CARD8,+ length_SetupAuthenticate :: CARD16,+ reason_SetupAuthenticate :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize SetupAuthenticate where+ serialize x+ = do serialize (status_SetupAuthenticate x)+ putSkip 5+ serialize (length_SetupAuthenticate x)+ serializeList (reason_SetupAuthenticate x)+ size x+ = size (status_SetupAuthenticate x) + 5 ++ size (length_SetupAuthenticate x)+ + sum (map size (reason_SetupAuthenticate x))+ +instance Deserialize SetupAuthenticate where+ deserialize+ = do status <- deserialize+ skip 5+ length <- deserialize+ reason <- deserializeList+ (fromIntegral (fromIntegral (length * 4)))+ return (MkSetupAuthenticate status length reason)+ +data ImageOrder = ImageOrderLSBFirst+ | ImageOrderMSBFirst+ +instance SimpleEnum ImageOrder where+ toValue ImageOrderLSBFirst{} = 0+ toValue ImageOrderMSBFirst{} = 1+ fromValue 0 = ImageOrderLSBFirst+ fromValue 1 = ImageOrderMSBFirst+ +data Setup = MkSetup{status_Setup :: CARD8,+ protocol_major_version_Setup :: CARD16,+ protocol_minor_version_Setup :: CARD16, length_Setup :: CARD16,+ release_number_Setup :: CARD32, resource_id_base_Setup :: CARD32,+ resource_id_mask_Setup :: CARD32,+ motion_buffer_size_Setup :: CARD32, vendor_len_Setup :: CARD16,+ maximum_request_length_Setup :: CARD16, roots_len_Setup :: CARD8,+ pixmap_formats_len_Setup :: CARD8, image_byte_order_Setup :: CARD8,+ bitmap_format_bit_order_Setup :: CARD8,+ bitmap_format_scanline_unit_Setup :: CARD8,+ bitmap_format_scanline_pad_Setup :: CARD8,+ min_keycode_Setup :: KEYCODE, max_keycode_Setup :: KEYCODE,+ vendor_Setup :: [CChar], pixmap_formats_Setup :: [FORMAT],+ roots_Setup :: [SCREEN]}+ deriving (Show, Typeable)+ +instance Serialize Setup where+ serialize x+ = do serialize (status_Setup x)+ putSkip 1+ serialize (protocol_major_version_Setup x)+ serialize (protocol_minor_version_Setup x)+ serialize (length_Setup x)+ serialize (release_number_Setup x)+ serialize (resource_id_base_Setup x)+ serialize (resource_id_mask_Setup x)+ serialize (motion_buffer_size_Setup x)+ serialize (vendor_len_Setup x)+ serialize (maximum_request_length_Setup x)+ serialize (roots_len_Setup x)+ serialize (pixmap_formats_len_Setup x)+ serialize (image_byte_order_Setup x)+ serialize (bitmap_format_bit_order_Setup x)+ serialize (bitmap_format_scanline_unit_Setup x)+ serialize (bitmap_format_scanline_pad_Setup x)+ serialize (min_keycode_Setup x)+ serialize (max_keycode_Setup x)+ putSkip 4+ serializeList (vendor_Setup x)+ serializeList (pixmap_formats_Setup x)+ serializeList (roots_Setup x)+ size x+ = size (status_Setup x) + 1 + size (protocol_major_version_Setup x)+ + size (protocol_minor_version_Setup x)+ + size (length_Setup x)+ + size (release_number_Setup x)+ + size (resource_id_base_Setup x)+ + size (resource_id_mask_Setup x)+ + size (motion_buffer_size_Setup x)+ + size (vendor_len_Setup x)+ + size (maximum_request_length_Setup x)+ + size (roots_len_Setup x)+ + size (pixmap_formats_len_Setup x)+ + size (image_byte_order_Setup x)+ + size (bitmap_format_bit_order_Setup x)+ + size (bitmap_format_scanline_unit_Setup x)+ + size (bitmap_format_scanline_pad_Setup x)+ + size (min_keycode_Setup x)+ + size (max_keycode_Setup x)+ + 4+ + sum (map size (vendor_Setup x))+ + sum (map size (pixmap_formats_Setup x))+ + sum (map size (roots_Setup x))+ +instance Deserialize Setup where+ deserialize+ = do status <- deserialize+ skip 1+ protocol_major_version <- deserialize+ protocol_minor_version <- deserialize+ length <- deserialize+ release_number <- deserialize+ resource_id_base <- deserialize+ resource_id_mask <- deserialize+ motion_buffer_size <- deserialize+ vendor_len <- deserialize+ maximum_request_length <- deserialize+ roots_len <- deserialize+ pixmap_formats_len <- deserialize+ image_byte_order <- deserialize+ bitmap_format_bit_order <- deserialize+ bitmap_format_scanline_unit <- deserialize+ bitmap_format_scanline_pad <- deserialize+ min_keycode <- deserialize+ max_keycode <- deserialize+ skip 4+ vendor <- deserializeList (fromIntegral vendor_len)+ pixmap_formats <- deserializeList (fromIntegral pixmap_formats_len)+ roots <- deserializeList (fromIntegral roots_len)+ return+ (MkSetup status protocol_major_version protocol_minor_version+ length+ release_number+ resource_id_base+ resource_id_mask+ motion_buffer_size+ vendor_len+ maximum_request_length+ roots_len+ pixmap_formats_len+ image_byte_order+ bitmap_format_bit_order+ bitmap_format_scanline_unit+ bitmap_format_scanline_pad+ min_keycode+ max_keycode+ vendor+ pixmap_formats+ roots)+ +data ModMask = ModMaskShift+ | ModMaskLock+ | ModMaskControl+ | ModMask1+ | ModMask2+ | ModMask3+ | ModMask4+ | ModMask5+ +instance BitEnum ModMask where+ toBit ModMaskShift{} = 0+ toBit ModMaskLock{} = 1+ toBit ModMaskControl{} = 2+ toBit ModMask1{} = 3+ toBit ModMask2{} = 4+ toBit ModMask3{} = 5+ toBit ModMask4{} = 6+ toBit ModMask5{} = 7+ fromBit 0 = ModMaskShift+ fromBit 1 = ModMaskLock+ fromBit 2 = ModMaskControl+ fromBit 3 = ModMask1+ fromBit 4 = ModMask2+ fromBit 5 = ModMask3+ fromBit 6 = ModMask4+ fromBit 7 = ModMask5+ +data KeyPress = MkKeyPress{detail_KeyPress :: KEYCODE,+ time_KeyPress :: TIMESTAMP, root_KeyPress :: WINDOW,+ event_KeyPress :: WINDOW, child_KeyPress :: WINDOW,+ root_x_KeyPress :: INT16, root_y_KeyPress :: INT16,+ event_x_KeyPress :: INT16, event_y_KeyPress :: INT16,+ state_KeyPress :: CARD16, same_screen_KeyPress :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event KeyPress+ +instance Deserialize KeyPress where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ skip 1+ return+ (MkKeyPress detail time root event child root_x root_y event_x+ event_y+ state+ same_screen)+ +data KeyRelease = MkKeyRelease{detail_KeyRelease :: KEYCODE,+ time_KeyRelease :: TIMESTAMP, root_KeyRelease :: WINDOW,+ event_KeyRelease :: WINDOW, child_KeyRelease :: WINDOW,+ root_x_KeyRelease :: INT16, root_y_KeyRelease :: INT16,+ event_x_KeyRelease :: INT16, event_y_KeyRelease :: INT16,+ state_KeyRelease :: CARD16, same_screen_KeyRelease :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event KeyRelease+ +instance Deserialize KeyRelease where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ skip 1+ return+ (MkKeyRelease detail time root event child root_x root_y event_x+ event_y+ state+ same_screen)+ +data ButtonMask = ButtonMask1+ | ButtonMask2+ | ButtonMask3+ | ButtonMask4+ | ButtonMask5+ | ButtonMaskAny+ +instance BitEnum ButtonMask where+ toBit ButtonMask1{} = 8+ toBit ButtonMask2{} = 9+ toBit ButtonMask3{} = 10+ toBit ButtonMask4{} = 11+ toBit ButtonMask5{} = 12+ toBit ButtonMaskAny{} = 15+ fromBit 8 = ButtonMask1+ fromBit 9 = ButtonMask2+ fromBit 10 = ButtonMask3+ fromBit 11 = ButtonMask4+ fromBit 12 = ButtonMask5+ fromBit 15 = ButtonMaskAny+ +data ButtonPress = MkButtonPress{detail_ButtonPress :: BUTTON,+ time_ButtonPress :: TIMESTAMP, root_ButtonPress :: WINDOW,+ event_ButtonPress :: WINDOW, child_ButtonPress :: WINDOW,+ root_x_ButtonPress :: INT16, root_y_ButtonPress :: INT16,+ event_x_ButtonPress :: INT16, event_y_ButtonPress :: INT16,+ state_ButtonPress :: CARD16, same_screen_ButtonPress :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ButtonPress+ +instance Deserialize ButtonPress where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ skip 1+ return+ (MkButtonPress detail time root event child root_x root_y event_x+ event_y+ state+ same_screen)+ +data ButtonRelease = MkButtonRelease{detail_ButtonRelease ::+ BUTTON,+ time_ButtonRelease :: TIMESTAMP, root_ButtonRelease :: WINDOW,+ event_ButtonRelease :: WINDOW, child_ButtonRelease :: WINDOW,+ root_x_ButtonRelease :: INT16, root_y_ButtonRelease :: INT16,+ event_x_ButtonRelease :: INT16, event_y_ButtonRelease :: INT16,+ state_ButtonRelease :: CARD16,+ same_screen_ButtonRelease :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ButtonRelease+ +instance Deserialize ButtonRelease where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ skip 1+ return+ (MkButtonRelease detail time root event child root_x root_y event_x+ event_y+ state+ same_screen)+ +data Motion = MotionNormal+ | MotionHint+ +instance SimpleEnum Motion where+ toValue MotionNormal{} = 0+ toValue MotionHint{} = 1+ fromValue 0 = MotionNormal+ fromValue 1 = MotionHint+ +data MotionNotify = MkMotionNotify{detail_MotionNotify :: BYTE,+ time_MotionNotify :: TIMESTAMP, root_MotionNotify :: WINDOW,+ event_MotionNotify :: WINDOW, child_MotionNotify :: WINDOW,+ root_x_MotionNotify :: INT16, root_y_MotionNotify :: INT16,+ event_x_MotionNotify :: INT16, event_y_MotionNotify :: INT16,+ state_MotionNotify :: CARD16, same_screen_MotionNotify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event MotionNotify+ +instance Deserialize MotionNotify where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ same_screen <- deserialize+ skip 1+ return+ (MkMotionNotify detail time root event child root_x root_y event_x+ event_y+ state+ same_screen)+ +data NotifyDetail = NotifyDetailAncestor+ | NotifyDetailVirtual+ | NotifyDetailInferior+ | NotifyDetailNonlinear+ | NotifyDetailNonlinearVirtual+ | NotifyDetailPointer+ | NotifyDetailPointerRoot+ | NotifyDetailNone+ +instance SimpleEnum NotifyDetail where+ toValue NotifyDetailAncestor{} = 0+ toValue NotifyDetailVirtual{} = 1+ toValue NotifyDetailInferior{} = 2+ toValue NotifyDetailNonlinear{} = 3+ toValue NotifyDetailNonlinearVirtual{} = 4+ toValue NotifyDetailPointer{} = 5+ toValue NotifyDetailPointerRoot{} = 6+ toValue NotifyDetailNone{} = 7+ fromValue 0 = NotifyDetailAncestor+ fromValue 1 = NotifyDetailVirtual+ fromValue 2 = NotifyDetailInferior+ fromValue 3 = NotifyDetailNonlinear+ fromValue 4 = NotifyDetailNonlinearVirtual+ fromValue 5 = NotifyDetailPointer+ fromValue 6 = NotifyDetailPointerRoot+ fromValue 7 = NotifyDetailNone+ +data NotifyMode = NotifyModeNormal+ | NotifyModeGrab+ | NotifyModeUngrab+ | NotifyModeWhileGrabbed+ +instance SimpleEnum NotifyMode where+ toValue NotifyModeNormal{} = 0+ toValue NotifyModeGrab{} = 1+ toValue NotifyModeUngrab{} = 2+ toValue NotifyModeWhileGrabbed{} = 3+ fromValue 0 = NotifyModeNormal+ fromValue 1 = NotifyModeGrab+ fromValue 2 = NotifyModeUngrab+ fromValue 3 = NotifyModeWhileGrabbed+ +data EnterNotify = MkEnterNotify{detail_EnterNotify :: BYTE,+ time_EnterNotify :: TIMESTAMP, root_EnterNotify :: WINDOW,+ event_EnterNotify :: WINDOW, child_EnterNotify :: WINDOW,+ root_x_EnterNotify :: INT16, root_y_EnterNotify :: INT16,+ event_x_EnterNotify :: INT16, event_y_EnterNotify :: INT16,+ state_EnterNotify :: CARD16, mode_EnterNotify :: BYTE,+ same_screen_focus_EnterNotify :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event EnterNotify+ +instance Deserialize EnterNotify where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ mode <- deserialize+ same_screen_focus <- deserialize+ return+ (MkEnterNotify detail time root event child root_x root_y event_x+ event_y+ state+ mode+ same_screen_focus)+ +data LeaveNotify = MkLeaveNotify{detail_LeaveNotify :: BYTE,+ time_LeaveNotify :: TIMESTAMP, root_LeaveNotify :: WINDOW,+ event_LeaveNotify :: WINDOW, child_LeaveNotify :: WINDOW,+ root_x_LeaveNotify :: INT16, root_y_LeaveNotify :: INT16,+ event_x_LeaveNotify :: INT16, event_y_LeaveNotify :: INT16,+ state_LeaveNotify :: CARD16, mode_LeaveNotify :: BYTE,+ same_screen_focus_LeaveNotify :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event LeaveNotify+ +instance Deserialize LeaveNotify where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ time <- deserialize+ root <- deserialize+ event <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ event_x <- deserialize+ event_y <- deserialize+ state <- deserialize+ mode <- deserialize+ same_screen_focus <- deserialize+ return+ (MkLeaveNotify detail time root event child root_x root_y event_x+ event_y+ state+ mode+ same_screen_focus)+ +data FocusIn = MkFocusIn{detail_FocusIn :: BYTE,+ event_FocusIn :: WINDOW, mode_FocusIn :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event FocusIn+ +instance Deserialize FocusIn where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ event <- deserialize+ mode <- deserialize+ skip 3+ return (MkFocusIn detail event mode)+ +data FocusOut = MkFocusOut{detail_FocusOut :: BYTE,+ event_FocusOut :: WINDOW, mode_FocusOut :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event FocusOut+ +instance Deserialize FocusOut where+ deserialize+ = do skip 1+ detail <- deserialize+ skip 2+ event <- deserialize+ mode <- deserialize+ skip 3+ return (MkFocusOut detail event mode)+ +data KeymapNotify = MkKeymapNotify{keys_KeymapNotify :: [CARD8]}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event KeymapNotify+ +instance Deserialize KeymapNotify where+ deserialize+ = do skip 1+ keys <- deserializeList (fromIntegral 31)+ return (MkKeymapNotify keys)+ +data Expose = MkExpose{window_Expose :: WINDOW, x_Expose :: CARD16,+ y_Expose :: CARD16, width_Expose :: CARD16,+ height_Expose :: CARD16, count_Expose :: CARD16}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event Expose+ +instance Deserialize Expose where+ deserialize+ = do skip 1+ skip 1+ skip 2+ window <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ count <- deserialize+ skip 2+ return (MkExpose window x y width height count)+ +data GraphicsExposure = MkGraphicsExposure{drawable_GraphicsExposure+ :: DRAWABLE,+ x_GraphicsExposure :: CARD16,+ y_GraphicsExposure :: CARD16,+ width_GraphicsExposure :: CARD16,+ height_GraphicsExposure :: CARD16,+ minor_opcode_GraphicsExposure :: CARD16,+ count_GraphicsExposure :: CARD16,+ major_opcode_GraphicsExposure :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event GraphicsExposure+ +instance Deserialize GraphicsExposure where+ deserialize+ = do skip 1+ skip 1+ skip 2+ drawable <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ minor_opcode <- deserialize+ count <- deserialize+ major_opcode <- deserialize+ skip 3+ return+ (MkGraphicsExposure drawable x y width height minor_opcode count+ major_opcode)+ +data NoExposure = MkNoExposure{drawable_NoExposure :: DRAWABLE,+ minor_opcode_NoExposure :: CARD16,+ major_opcode_NoExposure :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event NoExposure+ +instance Deserialize NoExposure where+ deserialize+ = do skip 1+ skip 1+ skip 2+ drawable <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkNoExposure drawable minor_opcode major_opcode)+ +data Visibility = VisibilityUnobscured+ | VisibilityPartiallyObscured+ | VisibilityFullyObscured+ +instance SimpleEnum Visibility where+ toValue VisibilityUnobscured{} = 0+ toValue VisibilityPartiallyObscured{} = 1+ toValue VisibilityFullyObscured{} = 2+ fromValue 0 = VisibilityUnobscured+ fromValue 1 = VisibilityPartiallyObscured+ fromValue 2 = VisibilityFullyObscured+ +data VisibilityNotify = MkVisibilityNotify{window_VisibilityNotify+ :: WINDOW,+ state_VisibilityNotify :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event VisibilityNotify+ +instance Deserialize VisibilityNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ window <- deserialize+ state <- deserialize+ skip 3+ return (MkVisibilityNotify window state)+ +data CreateNotify = MkCreateNotify{parent_CreateNotify :: WINDOW,+ window_CreateNotify :: WINDOW, x_CreateNotify :: INT16,+ y_CreateNotify :: INT16, width_CreateNotify :: CARD16,+ height_CreateNotify :: CARD16,+ border_width_CreateNotify :: CARD16,+ override_redirect_CreateNotify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event CreateNotify+ +instance Deserialize CreateNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ parent <- deserialize+ window <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ border_width <- deserialize+ override_redirect <- deserialize+ skip 1+ return+ (MkCreateNotify parent window x y width height border_width+ override_redirect)+ +data DestroyNotify = MkDestroyNotify{event_DestroyNotify :: WINDOW,+ window_DestroyNotify :: WINDOW}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event DestroyNotify+ +instance Deserialize DestroyNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ return (MkDestroyNotify event window)+ +data UnmapNotify = MkUnmapNotify{event_UnmapNotify :: WINDOW,+ window_UnmapNotify :: WINDOW, from_configure_UnmapNotify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event UnmapNotify+ +instance Deserialize UnmapNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ from_configure <- deserialize+ skip 3+ return (MkUnmapNotify event window from_configure)+ +data MapNotify = MkMapNotify{event_MapNotify :: WINDOW,+ window_MapNotify :: WINDOW, override_redirect_MapNotify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event MapNotify+ +instance Deserialize MapNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ override_redirect <- deserialize+ skip 3+ return (MkMapNotify event window override_redirect)+ +data MapRequest = MkMapRequest{parent_MapRequest :: WINDOW,+ window_MapRequest :: WINDOW}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event MapRequest+ +instance Deserialize MapRequest where+ deserialize+ = do skip 1+ skip 1+ skip 2+ parent <- deserialize+ window <- deserialize+ return (MkMapRequest parent window)+ +data ReparentNotify = MkReparentNotify{event_ReparentNotify ::+ WINDOW,+ window_ReparentNotify :: WINDOW,+ parent_ReparentNotify :: WINDOW, x_ReparentNotify :: INT16,+ y_ReparentNotify :: INT16,+ override_redirect_ReparentNotify :: BOOL}+ deriving (Show, Typeable)++ +data ClientMessageData = ClientData8 [CARD8] -- ^length 20+ | ClientData16 [CARD16] -- ^length 10+ | ClientData32 [CARD32] -- ^length 5+ deriving (Show, Typeable)++ +data ClientMessageDataType = CDType8+ | CDType16+ | CDType32+ +clientMessageDataType :: ClientMessageData -> ClientMessageDataType+clientMessageDataType ClientData8{} = CDType8+clientMessageDataType ClientData16{} = CDType16+clientMessageDataType ClientData32{} = CDType32+ +instance Serialize ClientMessageData where+ serialize (ClientData8 xs) = assert (length xs == 20) $+ serializeList xs+ serialize (ClientData16 xs) = assert (length xs == 10) $+ serializeList xs+ serialize (ClientData32 xs) = assert (length xs == 5) $+ serializeList xs+ size cd = assert+ (case cd of+ ClientData8 xs -> length xs == 20+ ClientData16 xs -> length xs == 10+ ClientData32 xs -> length xs == 5)+ 20++deserializeClientData :: ClientMessageDataType -> Get ClientMessageData+deserializeClientData CDType8+ = ClientData8 `liftM` deserializeList 20+deserializeClientData CDType16+ = ClientData16 `liftM` deserializeList 10+deserializeClientData CDType32+ = ClientData32 `liftM` deserializeList 5+ +clientDataFormatToType :: CARD8 -> ClientMessageDataType+clientDataFormatToType 8 = CDType8+clientDataFormatToType 16 = CDType16+clientDataFormatToType 32 = CDType32+clientDataFormatToType _ = CDType8 -- should we throw an error here?++ +instance Graphics.XHB.Shared.Event ReparentNotify+ +instance Deserialize ReparentNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ parent <- deserialize+ x <- deserialize+ y <- deserialize+ override_redirect <- deserialize+ skip 3+ return (MkReparentNotify event window parent x y override_redirect)+ +data ConfigureNotify = MkConfigureNotify{event_ConfigureNotify ::+ WINDOW,+ window_ConfigureNotify :: WINDOW,+ above_sibling_ConfigureNotify :: WINDOW,+ x_ConfigureNotify :: INT16, y_ConfigureNotify :: INT16,+ width_ConfigureNotify :: CARD16,+ height_ConfigureNotify :: CARD16,+ border_width_ConfigureNotify :: CARD16,+ override_redirect_ConfigureNotify :: BOOL}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ConfigureNotify+ +instance Deserialize ConfigureNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ above_sibling <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ border_width <- deserialize+ override_redirect <- deserialize+ skip 1+ return+ (MkConfigureNotify event window above_sibling x y width height+ border_width+ override_redirect)+ +data ConfigureRequest = MkConfigureRequest{stack_mode_ConfigureRequest+ :: BYTE,+ parent_ConfigureRequest :: WINDOW,+ window_ConfigureRequest :: WINDOW,+ sibling_ConfigureRequest :: WINDOW,+ x_ConfigureRequest :: INT16, y_ConfigureRequest :: INT16,+ width_ConfigureRequest :: CARD16,+ height_ConfigureRequest :: CARD16,+ border_width_ConfigureRequest :: CARD16,+ value_mask_ConfigureRequest :: CARD16}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ConfigureRequest+ +instance Deserialize ConfigureRequest where+ deserialize+ = do skip 1+ stack_mode <- deserialize+ skip 2+ parent <- deserialize+ window <- deserialize+ sibling <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ border_width <- deserialize+ value_mask <- deserialize+ return+ (MkConfigureRequest stack_mode parent window sibling x y width+ height+ border_width+ value_mask)+ +data GravityNotify = MkGravityNotify{event_GravityNotify :: WINDOW,+ window_GravityNotify :: WINDOW, x_GravityNotify :: INT16,+ y_GravityNotify :: INT16}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event GravityNotify+ +instance Deserialize GravityNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ x <- deserialize+ y <- deserialize+ return (MkGravityNotify event window x y)+ +data ResizeRequest = MkResizeRequest{window_ResizeRequest ::+ WINDOW,+ width_ResizeRequest :: CARD16, height_ResizeRequest :: CARD16}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ResizeRequest+ +instance Deserialize ResizeRequest where+ deserialize+ = do skip 1+ skip 1+ skip 2+ window <- deserialize+ width <- deserialize+ height <- deserialize+ return (MkResizeRequest window width height)+ +data Place = PlaceOnTop+ | PlaceOnBottom+ +instance SimpleEnum Place where+ toValue PlaceOnTop{} = 0+ toValue PlaceOnBottom{} = 1+ fromValue 0 = PlaceOnTop+ fromValue 1 = PlaceOnBottom+ +data CirculateNotify = MkCirculateNotify{event_CirculateNotify ::+ WINDOW,+ window_CirculateNotify :: WINDOW,+ place_CirculateNotify :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event CirculateNotify+ +instance Deserialize CirculateNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ skip 4+ place <- deserialize+ skip 3+ return (MkCirculateNotify event window place)+ +data CirculateRequest = MkCirculateRequest{event_CirculateRequest+ :: WINDOW,+ window_CirculateRequest :: WINDOW,+ place_CirculateRequest :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event CirculateRequest+ +instance Deserialize CirculateRequest where+ deserialize+ = do skip 1+ skip 1+ skip 2+ event <- deserialize+ window <- deserialize+ skip 4+ place <- deserialize+ skip 3+ return (MkCirculateRequest event window place)+ +data Property = PropertyNewValue+ | PropertyDelete+ +instance SimpleEnum Property where+ toValue PropertyNewValue{} = 0+ toValue PropertyDelete{} = 1+ fromValue 0 = PropertyNewValue+ fromValue 1 = PropertyDelete+ +data PropertyNotify = MkPropertyNotify{window_PropertyNotify ::+ WINDOW,+ atom_PropertyNotify :: ATOM,+ time_PropertyNotify :: TIMESTAMP,+ state_PropertyNotify :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event PropertyNotify+ +instance Deserialize PropertyNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ window <- deserialize+ atom <- deserialize+ time <- deserialize+ state <- deserialize+ skip 3+ return (MkPropertyNotify window atom time state)+ +data SelectionClear = MkSelectionClear{time_SelectionClear ::+ TIMESTAMP,+ owner_SelectionClear :: WINDOW,+ selection_SelectionClear :: ATOM}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event SelectionClear+ +instance Deserialize SelectionClear where+ deserialize+ = do skip 1+ skip 1+ skip 2+ time <- deserialize+ owner <- deserialize+ selection <- deserialize+ return (MkSelectionClear time owner selection)+ +data SelectionRequest = MkSelectionRequest{time_SelectionRequest ::+ TIMESTAMP,+ owner_SelectionRequest :: WINDOW,+ requestor_SelectionRequest :: WINDOW,+ selection_SelectionRequest :: ATOM,+ target_SelectionRequest :: ATOM,+ property_SelectionRequest :: ATOM}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event SelectionRequest+ +instance Deserialize SelectionRequest where+ deserialize+ = do skip 1+ skip 1+ skip 2+ time <- deserialize+ owner <- deserialize+ requestor <- deserialize+ selection <- deserialize+ target <- deserialize+ property <- deserialize+ return+ (MkSelectionRequest time owner requestor selection target property)+ +data SelectionNotify = MkSelectionNotify{time_SelectionNotify ::+ TIMESTAMP,+ requestor_SelectionNotify :: WINDOW,+ selection_SelectionNotify :: ATOM,+ target_SelectionNotify :: ATOM,+ property_SelectionNotify :: ATOM}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event SelectionNotify+ +instance Deserialize SelectionNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ time <- deserialize+ requestor <- deserialize+ selection <- deserialize+ target <- deserialize+ property <- deserialize+ return (MkSelectionNotify time requestor selection target property)+ +data ColormapState = ColormapStateUninstalled+ | ColormapStateInstalled+ +instance SimpleEnum ColormapState where+ toValue ColormapStateUninstalled{} = 0+ toValue ColormapStateInstalled{} = 1+ fromValue 0 = ColormapStateUninstalled+ fromValue 1 = ColormapStateInstalled+ +data ColormapNotify = MkColormapNotify{window_ColormapNotify ::+ WINDOW,+ colormap_ColormapNotify :: COLORMAP,+ new_ColormapNotify :: BOOL, state_ColormapNotify :: BYTE}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ColormapNotify+ +instance Deserialize ColormapNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ window <- deserialize+ colormap <- deserialize+ new <- deserialize+ state <- deserialize+ skip 2+ return (MkColormapNotify window colormap new state)+ +data ClientMessage = MkClientMessage{format_ClientMessage :: CARD8,+ window_ClientMessage :: WINDOW, type_ClientMessage :: ATOM,+ data_ClientMessage :: ClientMessageData}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event ClientMessage+ +instance Deserialize ClientMessage where+ deserialize+ = do skip 1+ format <- deserialize+ skip 2+ window <- deserialize+ type_ <- deserialize+ data_ <- deserializeClientData (clientDataFormatToType format)+ return (MkClientMessage format window type_ data_)+ +data Mapping = MappingModifier+ | MappingKeyboard+ | MappingPointer+ +instance SimpleEnum Mapping where+ toValue MappingModifier{} = 0+ toValue MappingKeyboard{} = 1+ toValue MappingPointer{} = 2+ fromValue 0 = MappingModifier+ fromValue 1 = MappingKeyboard+ fromValue 2 = MappingPointer+ +data MappingNotify = MkMappingNotify{request_MappingNotify :: BYTE,+ first_keycode_MappingNotify :: KEYCODE,+ count_MappingNotify :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event MappingNotify+ +instance Deserialize MappingNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ request <- deserialize+ first_keycode <- deserialize+ count <- deserialize+ skip 1+ return (MkMappingNotify request first_keycode count)+ +data Request = MkRequest{bad_value_Request :: CARD32,+ minor_opcode_Request :: CARD16, major_opcode_Request :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Request+ +instance Deserialize Request where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkRequest bad_value minor_opcode major_opcode)+ +data Value = MkValue{bad_value_Value :: CARD32,+ minor_opcode_Value :: CARD16, major_opcode_Value :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Value+ +instance Deserialize Value where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkValue bad_value minor_opcode major_opcode)+ +data Window = MkWindow{bad_value_Window :: CARD32,+ minor_opcode_Window :: CARD16, major_opcode_Window :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Window+ +instance Deserialize Window where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkWindow bad_value minor_opcode major_opcode)+ +data Pixmap = MkPixmap{bad_value_Pixmap :: CARD32,+ minor_opcode_Pixmap :: CARD16, major_opcode_Pixmap :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Pixmap+ +instance Deserialize Pixmap where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkPixmap bad_value minor_opcode major_opcode)+ +data Atom = MkAtom{bad_value_Atom :: CARD32,+ minor_opcode_Atom :: CARD16, major_opcode_Atom :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Atom+ +instance Deserialize Atom where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkAtom bad_value minor_opcode major_opcode)+ +data Cursor = MkCursor{bad_value_Cursor :: CARD32,+ minor_opcode_Cursor :: CARD16, major_opcode_Cursor :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Cursor+ +instance Deserialize Cursor where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkCursor bad_value minor_opcode major_opcode)+ +data Font = MkFont{bad_value_Font :: CARD32,+ minor_opcode_Font :: CARD16, major_opcode_Font :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Font+ +instance Deserialize Font where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkFont bad_value minor_opcode major_opcode)+ +data Match = MkMatch{bad_value_Match :: CARD32,+ minor_opcode_Match :: CARD16, major_opcode_Match :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Match+ +instance Deserialize Match where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkMatch bad_value minor_opcode major_opcode)+ +data Drawable = MkDrawable{bad_value_Drawable :: CARD32,+ minor_opcode_Drawable :: CARD16, major_opcode_Drawable :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Drawable+ +instance Deserialize Drawable where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkDrawable bad_value minor_opcode major_opcode)+ +data Access = MkAccess{bad_value_Access :: CARD32,+ minor_opcode_Access :: CARD16, major_opcode_Access :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Access+ +instance Deserialize Access where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkAccess bad_value minor_opcode major_opcode)+ +data Alloc = MkAlloc{bad_value_Alloc :: CARD32,+ minor_opcode_Alloc :: CARD16, major_opcode_Alloc :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Alloc+ +instance Deserialize Alloc where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkAlloc bad_value minor_opcode major_opcode)+ +data Colormap = MkColormap{bad_value_Colormap :: CARD32,+ minor_opcode_Colormap :: CARD16, major_opcode_Colormap :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Colormap+ +instance Deserialize Colormap where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkColormap bad_value minor_opcode major_opcode)+ +data GContext = MkGContext{bad_value_GContext :: CARD32,+ minor_opcode_GContext :: CARD16, major_opcode_GContext :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error GContext+ +instance Deserialize GContext where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkGContext bad_value minor_opcode major_opcode)+ +data IDChoice = MkIDChoice{bad_value_IDChoice :: CARD32,+ minor_opcode_IDChoice :: CARD16, major_opcode_IDChoice :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error IDChoice+ +instance Deserialize IDChoice where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkIDChoice bad_value minor_opcode major_opcode)+ +data Name = MkName{bad_value_Name :: CARD32,+ minor_opcode_Name :: CARD16, major_opcode_Name :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Name+ +instance Deserialize Name where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkName bad_value minor_opcode major_opcode)+ +data Length = MkLength{bad_value_Length :: CARD32,+ minor_opcode_Length :: CARD16, major_opcode_Length :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Length+ +instance Deserialize Length where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkLength bad_value minor_opcode major_opcode)+ +data Implementation = MkImplementation{bad_value_Implementation ::+ CARD32,+ minor_opcode_Implementation :: CARD16,+ major_opcode_Implementation :: CARD8}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Error Implementation+ +instance Deserialize Implementation where+ deserialize+ = do skip 4+ bad_value <- deserialize+ minor_opcode <- deserialize+ major_opcode <- deserialize+ skip 1+ return (MkImplementation bad_value minor_opcode major_opcode)+ +data WindowClass = WindowClassCopyFromParent+ | WindowClassInputOutput+ | WindowClassInputOnly+ +instance SimpleEnum WindowClass where+ toValue WindowClassCopyFromParent{} = 0+ toValue WindowClassInputOutput{} = 1+ toValue WindowClassInputOnly{} = 2+ fromValue 0 = WindowClassCopyFromParent+ fromValue 1 = WindowClassInputOutput+ fromValue 2 = WindowClassInputOnly+ +data CW = CWBackPixmap+ | CWBackPixel+ | CWBorderPixmap+ | CWBorderPixel+ | CWBitGravity+ | CWWinGravity+ | CWBackingStore+ | CWBackingPlanes+ | CWBackingPixel+ | CWOverrideRedirect+ | CWSaveUnder+ | CWEventMask+ | CWDontPropagate+ | CWColormap+ | CWCursor+ +instance BitEnum CW where+ toBit CWBackPixmap{} = 0+ toBit CWBackPixel{} = 1+ toBit CWBorderPixmap{} = 2+ toBit CWBorderPixel{} = 3+ toBit CWBitGravity{} = 4+ toBit CWWinGravity{} = 5+ toBit CWBackingStore{} = 6+ toBit CWBackingPlanes{} = 7+ toBit CWBackingPixel{} = 8+ toBit CWOverrideRedirect{} = 9+ toBit CWSaveUnder{} = 10+ toBit CWEventMask{} = 11+ toBit CWDontPropagate{} = 12+ toBit CWColormap{} = 13+ toBit CWCursor{} = 14+ fromBit 0 = CWBackPixmap+ fromBit 1 = CWBackPixel+ fromBit 2 = CWBorderPixmap+ fromBit 3 = CWBorderPixel+ fromBit 4 = CWBitGravity+ fromBit 5 = CWWinGravity+ fromBit 6 = CWBackingStore+ fromBit 7 = CWBackingPlanes+ fromBit 8 = CWBackingPixel+ fromBit 9 = CWOverrideRedirect+ fromBit 10 = CWSaveUnder+ fromBit 11 = CWEventMask+ fromBit 12 = CWDontPropagate+ fromBit 13 = CWColormap+ fromBit 14 = CWCursor+ +data BackPixmap = BackPixmapNone+ | BackPixmapParentRelative+ +instance SimpleEnum BackPixmap where+ toValue BackPixmapNone{} = 0+ toValue BackPixmapParentRelative{} = 1+ fromValue 0 = BackPixmapNone+ fromValue 1 = BackPixmapParentRelative+ +data Gravity = GravityBitForget+ | GravityWinUnmap+ | GravityNorthWest+ | GravityNorth+ | GravityNorthEast+ | GravityWest+ | GravityCenter+ | GravityEast+ | GravitySouthWest+ | GravitySouth+ | GravitySouthEast+ | GravityStatic+ +instance SimpleEnum Gravity where+ toValue GravityBitForget{} = 0+ toValue GravityWinUnmap{} = 0+ toValue GravityNorthWest{} = 1+ toValue GravityNorth{} = 2+ toValue GravityNorthEast{} = 3+ toValue GravityWest{} = 4+ toValue GravityCenter{} = 5+ toValue GravityEast{} = 6+ toValue GravitySouthWest{} = 7+ toValue GravitySouth{} = 8+ toValue GravitySouthEast{} = 9+ toValue GravityStatic{} = 10+ fromValue 0 = GravityBitForget+ fromValue 0 = GravityWinUnmap+ fromValue 1 = GravityNorthWest+ fromValue 2 = GravityNorth+ fromValue 3 = GravityNorthEast+ fromValue 4 = GravityWest+ fromValue 5 = GravityCenter+ fromValue 6 = GravityEast+ fromValue 7 = GravitySouthWest+ fromValue 8 = GravitySouth+ fromValue 9 = GravitySouthEast+ fromValue 10 = GravityStatic+ +data BackingStore = BackingStoreNotUseful+ | BackingStoreWhenMapped+ | BackingStoreAlways+ +instance SimpleEnum BackingStore where+ toValue BackingStoreNotUseful{} = 0+ toValue BackingStoreWhenMapped{} = 1+ toValue BackingStoreAlways{} = 2+ fromValue 0 = BackingStoreNotUseful+ fromValue 1 = BackingStoreWhenMapped+ fromValue 2 = BackingStoreAlways+ +data EventMask = EventMaskKeyPress+ | EventMaskKeyRelease+ | EventMaskButtonPress+ | EventMaskButtonRelease+ | EventMaskEnterWindow+ | EventMaskLeaveWindow+ | EventMaskPointerMotion+ | EventMaskPointerMotionHint+ | EventMaskButton1Motion+ | EventMaskButton2Motion+ | EventMaskButton3Motion+ | EventMaskButton4Motion+ | EventMaskButton5Motion+ | EventMaskButtonMotion+ | EventMaskKeymapState+ | EventMaskExposure+ | EventMaskVisibilityChange+ | EventMaskStructureNotify+ | EventMaskResizeRedirect+ | EventMaskSubstructureNotify+ | EventMaskSubstructureRedirect+ | EventMaskFocusChange+ | EventMaskPropertyChange+ | EventMaskColorMapChange+ | EventMaskOwnerGrabButton+ +instance BitEnum EventMask where+ toBit EventMaskKeyPress{} = 0+ toBit EventMaskKeyRelease{} = 1+ toBit EventMaskButtonPress{} = 2+ toBit EventMaskButtonRelease{} = 3+ toBit EventMaskEnterWindow{} = 4+ toBit EventMaskLeaveWindow{} = 5+ toBit EventMaskPointerMotion{} = 6+ toBit EventMaskPointerMotionHint{} = 7+ toBit EventMaskButton1Motion{} = 8+ toBit EventMaskButton2Motion{} = 9+ toBit EventMaskButton3Motion{} = 10+ toBit EventMaskButton4Motion{} = 11+ toBit EventMaskButton5Motion{} = 12+ toBit EventMaskButtonMotion{} = 13+ toBit EventMaskKeymapState{} = 14+ toBit EventMaskExposure{} = 15+ toBit EventMaskVisibilityChange{} = 16+ toBit EventMaskStructureNotify{} = 17+ toBit EventMaskResizeRedirect{} = 18+ toBit EventMaskSubstructureNotify{} = 19+ toBit EventMaskSubstructureRedirect{} = 20+ toBit EventMaskFocusChange{} = 21+ toBit EventMaskPropertyChange{} = 22+ toBit EventMaskColorMapChange{} = 23+ toBit EventMaskOwnerGrabButton{} = 24+ fromBit 0 = EventMaskKeyPress+ fromBit 1 = EventMaskKeyRelease+ fromBit 2 = EventMaskButtonPress+ fromBit 3 = EventMaskButtonRelease+ fromBit 4 = EventMaskEnterWindow+ fromBit 5 = EventMaskLeaveWindow+ fromBit 6 = EventMaskPointerMotion+ fromBit 7 = EventMaskPointerMotionHint+ fromBit 8 = EventMaskButton1Motion+ fromBit 9 = EventMaskButton2Motion+ fromBit 10 = EventMaskButton3Motion+ fromBit 11 = EventMaskButton4Motion+ fromBit 12 = EventMaskButton5Motion+ fromBit 13 = EventMaskButtonMotion+ fromBit 14 = EventMaskKeymapState+ fromBit 15 = EventMaskExposure+ fromBit 16 = EventMaskVisibilityChange+ fromBit 17 = EventMaskStructureNotify+ fromBit 18 = EventMaskResizeRedirect+ fromBit 19 = EventMaskSubstructureNotify+ fromBit 20 = EventMaskSubstructureRedirect+ fromBit 21 = EventMaskFocusChange+ fromBit 22 = EventMaskPropertyChange+ fromBit 23 = EventMaskColorMapChange+ fromBit 24 = EventMaskOwnerGrabButton+ +data CreateWindow = MkCreateWindow{depth_CreateWindow :: CARD8,+ wid_CreateWindow :: WINDOW, parent_CreateWindow :: WINDOW,+ x_CreateWindow :: INT16, y_CreateWindow :: INT16,+ width_CreateWindow :: CARD16, height_CreateWindow :: CARD16,+ border_width_CreateWindow :: CARD16,+ class_CreateWindow :: CARD16, visual_CreateWindow :: VISUALID,+ value_CreateWindow :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance Serialize CreateWindow where+ serialize x+ = do putWord8 1+ serialize (depth_CreateWindow x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (wid_CreateWindow x)+ serialize (parent_CreateWindow x)+ serialize (x_CreateWindow x)+ serialize (y_CreateWindow x)+ serialize (width_CreateWindow x)+ serialize (height_CreateWindow x)+ serialize (border_width_CreateWindow x)+ serialize (class_CreateWindow x)+ serialize (visual_CreateWindow x)+ serialize (value_CreateWindow x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (depth_CreateWindow x) + size (wid_CreateWindow x) ++ size (parent_CreateWindow x)+ + size (x_CreateWindow x)+ + size (y_CreateWindow x)+ + size (width_CreateWindow x)+ + size (height_CreateWindow x)+ + size (border_width_CreateWindow x)+ + size (class_CreateWindow x)+ + size (visual_CreateWindow x)+ + size (value_CreateWindow x)+ +data ChangeWindowAttributes = MkChangeWindowAttributes{window_ChangeWindowAttributes+ :: WINDOW,+ value_ChangeWindowAttributes ::+ ValueParam CARD32}+ deriving (Show, Typeable)+ +instance Serialize ChangeWindowAttributes where+ serialize x+ = do putWord8 2+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ChangeWindowAttributes x)+ serialize (value_ChangeWindowAttributes x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (window_ChangeWindowAttributes x) ++ size (value_ChangeWindowAttributes x)+ +data MapState = MapStateUnmapped+ | MapStateUnviewable+ | MapStateViewable+ +instance SimpleEnum MapState where+ toValue MapStateUnmapped{} = 0+ toValue MapStateUnviewable{} = 1+ toValue MapStateViewable{} = 2+ fromValue 0 = MapStateUnmapped+ fromValue 1 = MapStateUnviewable+ fromValue 2 = MapStateViewable+ +data GetWindowAttributes = MkGetWindowAttributes{window_GetWindowAttributes+ :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize GetWindowAttributes where+ serialize x+ = do putWord8 3+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_GetWindowAttributes x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_GetWindowAttributes x)+ +data GetWindowAttributesReply = MkGetWindowAttributesReply{backing_store_GetWindowAttributesReply+ :: CARD8,+ visual_GetWindowAttributesReply ::+ VISUALID,+ class_GetWindowAttributesReply :: CARD16,+ bit_gravity_GetWindowAttributesReply ::+ CARD8,+ win_gravity_GetWindowAttributesReply ::+ CARD8,+ backing_planes_GetWindowAttributesReply+ :: CARD32,+ backing_pixel_GetWindowAttributesReply ::+ CARD32,+ save_under_GetWindowAttributesReply ::+ BOOL,+ map_is_installed_GetWindowAttributesReply+ :: BOOL,+ map_state_GetWindowAttributesReply ::+ CARD8,+ override_redirect_GetWindowAttributesReply+ :: BOOL,+ colormap_GetWindowAttributesReply ::+ COLORMAP,+ all_event_masks_GetWindowAttributesReply+ :: CARD32,+ your_event_mask_GetWindowAttributesReply+ :: CARD32,+ do_not_propagate_mask_GetWindowAttributesReply+ :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetWindowAttributesReply where+ deserialize+ = do skip 1+ backing_store <- deserialize+ skip 2+ length <- deserialize+ visual <- deserialize+ class_ <- deserialize+ bit_gravity <- deserialize+ win_gravity <- deserialize+ backing_planes <- deserialize+ backing_pixel <- deserialize+ save_under <- deserialize+ map_is_installed <- deserialize+ map_state <- deserialize+ override_redirect <- deserialize+ colormap <- deserialize+ all_event_masks <- deserialize+ your_event_mask <- deserialize+ do_not_propagate_mask <- deserialize+ skip 2+ let _ = isCard32 length+ return+ (MkGetWindowAttributesReply backing_store visual class_ bit_gravity+ win_gravity+ backing_planes+ backing_pixel+ save_under+ map_is_installed+ map_state+ override_redirect+ colormap+ all_event_masks+ your_event_mask+ do_not_propagate_mask)+ +data DestroyWindow = MkDestroyWindow{window_DestroyWindow ::+ WINDOW}+ deriving (Show, Typeable)+ +instance Serialize DestroyWindow where+ serialize x+ = do putWord8 4+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_DestroyWindow x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_DestroyWindow x)+ +data DestroySubwindows = MkDestroySubwindows{window_DestroySubwindows+ :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize DestroySubwindows where+ serialize x+ = do putWord8 5+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_DestroySubwindows x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_DestroySubwindows x)+ +data SetMode = SetModeInsert+ | SetModeDelete+ +instance SimpleEnum SetMode where+ toValue SetModeInsert{} = 0+ toValue SetModeDelete{} = 1+ fromValue 0 = SetModeInsert+ fromValue 1 = SetModeDelete+ +data ChangeSaveSet = MkChangeSaveSet{mode_ChangeSaveSet :: BYTE,+ window_ChangeSaveSet :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize ChangeSaveSet where+ serialize x+ = do putWord8 6+ serialize (mode_ChangeSaveSet x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ChangeSaveSet x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (mode_ChangeSaveSet x) + size (window_ChangeSaveSet x)+ +data ReparentWindow = MkReparentWindow{window_ReparentWindow ::+ WINDOW,+ parent_ReparentWindow :: WINDOW, x_ReparentWindow :: INT16,+ y_ReparentWindow :: INT16}+ deriving (Show, Typeable)+ +instance Serialize ReparentWindow where+ serialize x+ = do putWord8 7+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ReparentWindow x)+ serialize (parent_ReparentWindow x)+ serialize (x_ReparentWindow x)+ serialize (y_ReparentWindow x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (window_ReparentWindow x) ++ size (parent_ReparentWindow x)+ + size (x_ReparentWindow x)+ + size (y_ReparentWindow x)+ +data MapWindow = MkMapWindow{window_MapWindow :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize MapWindow where+ serialize x+ = do putWord8 8+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_MapWindow x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_MapWindow x)+ +data MapSubwindows = MkMapSubwindows{window_MapSubwindows ::+ WINDOW}+ deriving (Show, Typeable)+ +instance Serialize MapSubwindows where+ serialize x+ = do putWord8 9+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_MapSubwindows x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_MapSubwindows x)+ +data UnmapWindow = MkUnmapWindow{window_UnmapWindow :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize UnmapWindow where+ serialize x+ = do putWord8 10+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_UnmapWindow x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_UnmapWindow x)+ +data UnmapSubwindows = MkUnmapSubwindows{window_UnmapSubwindows ::+ WINDOW}+ deriving (Show, Typeable)+ +instance Serialize UnmapSubwindows where+ serialize x+ = do putWord8 11+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_UnmapSubwindows x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_UnmapSubwindows x)+ +data ConfigWindow = ConfigWindowX+ | ConfigWindowY+ | ConfigWindowWidth+ | ConfigWindowHeight+ | ConfigWindowBorderWidth+ | ConfigWindowSibling+ | ConfigWindowStackMode+ +instance BitEnum ConfigWindow where+ toBit ConfigWindowX{} = 0+ toBit ConfigWindowY{} = 1+ toBit ConfigWindowWidth{} = 2+ toBit ConfigWindowHeight{} = 3+ toBit ConfigWindowBorderWidth{} = 4+ toBit ConfigWindowSibling{} = 5+ toBit ConfigWindowStackMode{} = 6+ fromBit 0 = ConfigWindowX+ fromBit 1 = ConfigWindowY+ fromBit 2 = ConfigWindowWidth+ fromBit 3 = ConfigWindowHeight+ fromBit 4 = ConfigWindowBorderWidth+ fromBit 5 = ConfigWindowSibling+ fromBit 6 = ConfigWindowStackMode+ +data StackMode = StackModeAbove+ | StackModeBelow+ | StackModeTopIf+ | StackModeBottomIf+ | StackModeOpposite+ +instance SimpleEnum StackMode where+ toValue StackModeAbove{} = 0+ toValue StackModeBelow{} = 1+ toValue StackModeTopIf{} = 2+ toValue StackModeBottomIf{} = 3+ toValue StackModeOpposite{} = 4+ fromValue 0 = StackModeAbove+ fromValue 1 = StackModeBelow+ fromValue 2 = StackModeTopIf+ fromValue 3 = StackModeBottomIf+ fromValue 4 = StackModeOpposite+ +data ConfigureWindow = MkConfigureWindow{window_ConfigureWindow ::+ WINDOW,+ value_ConfigureWindow :: ValueParam CARD16}+ deriving (Show, Typeable)+ +instance Serialize ConfigureWindow where+ serialize x+ = do putWord8 12+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ConfigureWindow x)+ serializeValueParam 2 (value_ConfigureWindow x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (window_ConfigureWindow x) ++ size (value_ConfigureWindow x)+ + 2+ +data Circulate = CirculateRaiseLowest+ | CirculateLowerHighest+ +instance SimpleEnum Circulate where+ toValue CirculateRaiseLowest{} = 0+ toValue CirculateLowerHighest{} = 1+ fromValue 0 = CirculateRaiseLowest+ fromValue 1 = CirculateLowerHighest+ +data CirculateWindow = MkCirculateWindow{direction_CirculateWindow+ :: CARD8,+ window_CirculateWindow :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize CirculateWindow where+ serialize x+ = do putWord8 13+ serialize (direction_CirculateWindow x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_CirculateWindow x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (direction_CirculateWindow x) ++ size (window_CirculateWindow x)+ +data GetGeometry = MkGetGeometry{drawable_GetGeometry :: DRAWABLE}+ deriving (Show, Typeable)+ +instance Serialize GetGeometry where+ serialize x+ = do putWord8 14+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_GetGeometry x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (drawable_GetGeometry x)+ +data GetGeometryReply = MkGetGeometryReply{depth_GetGeometryReply+ :: CARD8,+ root_GetGeometryReply :: WINDOW,+ x_GetGeometryReply :: INT16, y_GetGeometryReply :: INT16,+ width_GetGeometryReply :: CARD16,+ height_GetGeometryReply :: CARD16,+ border_width_GetGeometryReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetGeometryReply where+ deserialize+ = do skip 1+ depth <- deserialize+ skip 2+ length <- deserialize+ root <- deserialize+ x <- deserialize+ y <- deserialize+ width <- deserialize+ height <- deserialize+ border_width <- deserialize+ skip 2+ let _ = isCard32 length+ return+ (MkGetGeometryReply depth root x y width height border_width)+ +data QueryTree = MkQueryTree{window_QueryTree :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize QueryTree where+ serialize x+ = do putWord8 15+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_QueryTree x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_QueryTree x)+ +data QueryTreeReply = MkQueryTreeReply{root_QueryTreeReply ::+ WINDOW,+ parent_QueryTreeReply :: WINDOW,+ children_len_QueryTreeReply :: CARD16,+ children_QueryTreeReply :: [WINDOW]}+ deriving (Show, Typeable)+ +instance Deserialize QueryTreeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ root <- deserialize+ parent <- deserialize+ children_len <- deserialize+ skip 14+ children <- deserializeList (fromIntegral children_len)+ let _ = isCard32 length+ return (MkQueryTreeReply root parent children_len children)+ +data InternAtom = MkInternAtom{only_if_exists_InternAtom :: BOOL,+ name_len_InternAtom :: CARD16, name_InternAtom :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize InternAtom where+ serialize x+ = do putWord8 16+ serialize (only_if_exists_InternAtom x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (name_len_InternAtom x)+ putSkip 2+ serializeList (name_InternAtom x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (only_if_exists_InternAtom x) ++ size (name_len_InternAtom x)+ + 2+ + sum (map size (name_InternAtom x))+ +data InternAtomReply = MkInternAtomReply{atom_InternAtomReply ::+ ATOM}+ deriving (Show, Typeable)+ +instance Deserialize InternAtomReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ atom <- deserialize+ let _ = isCard32 length+ return (MkInternAtomReply atom)+ +data GetAtomName = MkGetAtomName{atom_GetAtomName :: ATOM}+ deriving (Show, Typeable)+ +instance Serialize GetAtomName where+ serialize x+ = do putWord8 17+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (atom_GetAtomName x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (atom_GetAtomName x)+ +data GetAtomNameReply = MkGetAtomNameReply{name_len_GetAtomNameReply+ :: CARD16,+ name_GetAtomNameReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize GetAtomNameReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ name_len <- deserialize+ skip 22+ name <- deserializeList (fromIntegral name_len)+ let _ = isCard32 length+ return (MkGetAtomNameReply name_len name)+ +data PropMode = PropModeReplace+ | PropModePrepend+ | PropModeAppend+ +instance SimpleEnum PropMode where+ toValue PropModeReplace{} = 0+ toValue PropModePrepend{} = 1+ toValue PropModeAppend{} = 2+ fromValue 0 = PropModeReplace+ fromValue 1 = PropModePrepend+ fromValue 2 = PropModeAppend+ +data ChangeProperty = MkChangeProperty{mode_ChangeProperty ::+ CARD8,+ window_ChangeProperty :: WINDOW,+ property_ChangeProperty :: ATOM, type_ChangeProperty :: ATOM,+ format_ChangeProperty :: CARD8,+ data_len_ChangeProperty :: CARD32,+ data_ChangeProperty :: [Word8]}+ deriving (Show, Typeable)+ +instance Serialize ChangeProperty where+ serialize x+ = do putWord8 18+ serialize (mode_ChangeProperty x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ChangeProperty x)+ serialize (property_ChangeProperty x)+ serialize (type_ChangeProperty x)+ serialize (format_ChangeProperty x)+ putSkip 3+ serialize (data_len_ChangeProperty x)+ serializeList (data_ChangeProperty x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (mode_ChangeProperty x) + size (window_ChangeProperty x)+ + size (property_ChangeProperty x)+ + size (type_ChangeProperty x)+ + size (format_ChangeProperty x)+ + 3+ + size (data_len_ChangeProperty x)+ + sum (map size (data_ChangeProperty x))+ +data DeleteProperty = MkDeleteProperty{window_DeleteProperty ::+ WINDOW,+ property_DeleteProperty :: ATOM}+ deriving (Show, Typeable)+ +instance Serialize DeleteProperty where+ serialize x+ = do putWord8 19+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_DeleteProperty x)+ serialize (property_DeleteProperty x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (window_DeleteProperty x) ++ size (property_DeleteProperty x)+ +data GetPropertyType = GetPropertyTypeAny+ +instance SimpleEnum GetPropertyType where+ toValue GetPropertyTypeAny{} = 0+ fromValue 0 = GetPropertyTypeAny+ +data GetProperty = MkGetProperty{delete_GetProperty :: BOOL,+ window_GetProperty :: WINDOW, property_GetProperty :: ATOM,+ type_GetProperty :: ATOM, long_offset_GetProperty :: CARD32,+ long_length_GetProperty :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize GetProperty where+ serialize x+ = do putWord8 20+ serialize (delete_GetProperty x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_GetProperty x)+ serialize (property_GetProperty x)+ serialize (type_GetProperty x)+ serialize (long_offset_GetProperty x)+ serialize (long_length_GetProperty x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (delete_GetProperty x) + size (window_GetProperty x) ++ size (property_GetProperty x)+ + size (type_GetProperty x)+ + size (long_offset_GetProperty x)+ + size (long_length_GetProperty x)+ +data GetPropertyReply = MkGetPropertyReply{format_GetPropertyReply+ :: CARD8,+ type_GetPropertyReply :: ATOM,+ bytes_after_GetPropertyReply :: CARD32,+ value_len_GetPropertyReply :: CARD32,+ value_GetPropertyReply :: [Word8]}+ deriving (Show, Typeable)+ +instance Deserialize GetPropertyReply where+ deserialize+ = do skip 1+ format <- deserialize+ skip 2+ length <- deserialize+ type_ <- deserialize+ bytes_after <- deserialize+ value_len <- deserialize+ skip 12+ value <- deserializeList (fromIntegral value_len)+ let _ = isCard32 length+ return+ (MkGetPropertyReply format type_ bytes_after value_len value)+ +data ListProperties = MkListProperties{window_ListProperties ::+ WINDOW}+ deriving (Show, Typeable)+ +instance Serialize ListProperties where+ serialize x+ = do putWord8 21+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ListProperties x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_ListProperties x)+ +data ListPropertiesReply = MkListPropertiesReply{atoms_len_ListPropertiesReply+ :: CARD16,+ atoms_ListPropertiesReply :: [ATOM]}+ deriving (Show, Typeable)+ +instance Deserialize ListPropertiesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ atoms_len <- deserialize+ skip 22+ atoms <- deserializeList (fromIntegral atoms_len)+ let _ = isCard32 length+ return (MkListPropertiesReply atoms_len atoms)+ +data SetSelectionOwner = MkSetSelectionOwner{owner_SetSelectionOwner+ :: WINDOW,+ selection_SetSelectionOwner :: ATOM,+ time_SetSelectionOwner :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize SetSelectionOwner where+ serialize x+ = do putWord8 22+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (owner_SetSelectionOwner x)+ serialize (selection_SetSelectionOwner x)+ serialize (time_SetSelectionOwner x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (owner_SetSelectionOwner x) ++ size (selection_SetSelectionOwner x)+ + size (time_SetSelectionOwner x)+ +data GetSelectionOwner = MkGetSelectionOwner{selection_GetSelectionOwner+ :: ATOM}+ deriving (Show, Typeable)+ +instance Serialize GetSelectionOwner where+ serialize x+ = do putWord8 23+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (selection_GetSelectionOwner x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (selection_GetSelectionOwner x)+ +data GetSelectionOwnerReply = MkGetSelectionOwnerReply{owner_GetSelectionOwnerReply+ :: WINDOW}+ deriving (Show, Typeable)+ +instance Deserialize GetSelectionOwnerReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ owner <- deserialize+ let _ = isCard32 length+ return (MkGetSelectionOwnerReply owner)+ +data ConvertSelection = MkConvertSelection{requestor_ConvertSelection+ :: WINDOW,+ selection_ConvertSelection :: ATOM,+ target_ConvertSelection :: ATOM,+ property_ConvertSelection :: ATOM,+ time_ConvertSelection :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize ConvertSelection where+ serialize x+ = do putWord8 24+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (requestor_ConvertSelection x)+ serialize (selection_ConvertSelection x)+ serialize (target_ConvertSelection x)+ serialize (property_ConvertSelection x)+ serialize (time_ConvertSelection x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (requestor_ConvertSelection x) ++ size (selection_ConvertSelection x)+ + size (target_ConvertSelection x)+ + size (property_ConvertSelection x)+ + size (time_ConvertSelection x)+ +data SendEventDest = SendEventDestPointerWindow+ | SendEventDestItemFocus+ +instance SimpleEnum SendEventDest where+ toValue SendEventDestPointerWindow{} = 0+ toValue SendEventDestItemFocus{} = 1+ fromValue 0 = SendEventDestPointerWindow+ fromValue 1 = SendEventDestItemFocus+ +data SendEvent = MkSendEvent{propagate_SendEvent :: BOOL,+ destination_SendEvent :: WINDOW, event_mask_SendEvent :: CARD32,+ event_SendEvent :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize SendEvent where+ serialize x+ = do putWord8 25+ serialize (propagate_SendEvent x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (destination_SendEvent x)+ serialize (event_mask_SendEvent x)+ serializeList (event_SendEvent x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (propagate_SendEvent x) + size (destination_SendEvent x)+ + size (event_mask_SendEvent x)+ + sum (map size (event_SendEvent x))+ +data GrabMode = GrabModeSync+ | GrabModeAsync+ +instance SimpleEnum GrabMode where+ toValue GrabModeSync{} = 0+ toValue GrabModeAsync{} = 1+ fromValue 0 = GrabModeSync+ fromValue 1 = GrabModeAsync+ +data GrabStatus = GrabStatusSuccess+ | GrabStatusAlreadyGrabbed+ | GrabStatusInvalidTime+ | GrabStatusNotViewable+ | GrabStatusFrozen+ +instance SimpleEnum GrabStatus where+ toValue GrabStatusSuccess{} = 0+ toValue GrabStatusAlreadyGrabbed{} = 1+ toValue GrabStatusInvalidTime{} = 2+ toValue GrabStatusNotViewable{} = 3+ toValue GrabStatusFrozen{} = 4+ fromValue 0 = GrabStatusSuccess+ fromValue 1 = GrabStatusAlreadyGrabbed+ fromValue 2 = GrabStatusInvalidTime+ fromValue 3 = GrabStatusNotViewable+ fromValue 4 = GrabStatusFrozen+ +data GrabPointer = MkGrabPointer{owner_events_GrabPointer :: BOOL,+ grab_window_GrabPointer :: WINDOW,+ event_mask_GrabPointer :: CARD16, pointer_mode_GrabPointer :: BYTE,+ keyboard_mode_GrabPointer :: BYTE,+ confine_to_GrabPointer :: WINDOW, cursor_GrabPointer :: CURSOR,+ time_GrabPointer :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize GrabPointer where+ serialize x+ = do putWord8 26+ serialize (owner_events_GrabPointer x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (grab_window_GrabPointer x)+ serialize (event_mask_GrabPointer x)+ serialize (pointer_mode_GrabPointer x)+ serialize (keyboard_mode_GrabPointer x)+ serialize (confine_to_GrabPointer x)+ serialize (cursor_GrabPointer x)+ serialize (time_GrabPointer x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (owner_events_GrabPointer x) ++ size (grab_window_GrabPointer x)+ + size (event_mask_GrabPointer x)+ + size (pointer_mode_GrabPointer x)+ + size (keyboard_mode_GrabPointer x)+ + size (confine_to_GrabPointer x)+ + size (cursor_GrabPointer x)+ + size (time_GrabPointer x)+ +data GrabPointerReply = MkGrabPointerReply{status_GrabPointerReply+ :: BYTE}+ deriving (Show, Typeable)+ +instance Deserialize GrabPointerReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkGrabPointerReply status)+ +data UngrabPointer = MkUngrabPointer{time_UngrabPointer ::+ TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize UngrabPointer where+ serialize x+ = do putWord8 27+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (time_UngrabPointer x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (time_UngrabPointer x)+ +data ButtonIndex = ButtonIndexAny+ | ButtonIndex1+ | ButtonIndex2+ | ButtonIndex3+ | ButtonIndex4+ | ButtonIndex5+ +instance SimpleEnum ButtonIndex where+ toValue ButtonIndexAny{} = 0+ toValue ButtonIndex1{} = 1+ toValue ButtonIndex2{} = 2+ toValue ButtonIndex3{} = 3+ toValue ButtonIndex4{} = 4+ toValue ButtonIndex5{} = 5+ fromValue 0 = ButtonIndexAny+ fromValue 1 = ButtonIndex1+ fromValue 2 = ButtonIndex2+ fromValue 3 = ButtonIndex3+ fromValue 4 = ButtonIndex4+ fromValue 5 = ButtonIndex5+ +data GrabButton = MkGrabButton{owner_events_GrabButton :: BOOL,+ grab_window_GrabButton :: WINDOW, event_mask_GrabButton :: CARD16,+ pointer_mode_GrabButton :: CARD8,+ keyboard_mode_GrabButton :: CARD8, confine_to_GrabButton :: WINDOW,+ cursor_GrabButton :: CURSOR, button_GrabButton :: CARD8,+ modifiers_GrabButton :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize GrabButton where+ serialize x+ = do putWord8 28+ serialize (owner_events_GrabButton x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (grab_window_GrabButton x)+ serialize (event_mask_GrabButton x)+ serialize (pointer_mode_GrabButton x)+ serialize (keyboard_mode_GrabButton x)+ serialize (confine_to_GrabButton x)+ serialize (cursor_GrabButton x)+ serialize (button_GrabButton x)+ putSkip 1+ serialize (modifiers_GrabButton x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (owner_events_GrabButton x) ++ size (grab_window_GrabButton x)+ + size (event_mask_GrabButton x)+ + size (pointer_mode_GrabButton x)+ + size (keyboard_mode_GrabButton x)+ + size (confine_to_GrabButton x)+ + size (cursor_GrabButton x)+ + size (button_GrabButton x)+ + 1+ + size (modifiers_GrabButton x)+ +data UngrabButton = MkUngrabButton{button_UngrabButton :: CARD8,+ grab_window_UngrabButton :: WINDOW,+ modifiers_UngrabButton :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize UngrabButton where+ serialize x+ = do putWord8 29+ serialize (button_UngrabButton x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (grab_window_UngrabButton x)+ serialize (modifiers_UngrabButton x)+ putSkip 2+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (button_UngrabButton x) ++ size (grab_window_UngrabButton x)+ + size (modifiers_UngrabButton x)+ + 2+ +data ChangeActivePointerGrab = MkChangeActivePointerGrab{cursor_ChangeActivePointerGrab+ :: CURSOR,+ time_ChangeActivePointerGrab :: TIMESTAMP,+ event_mask_ChangeActivePointerGrab ::+ CARD16}+ deriving (Show, Typeable)+ +instance Serialize ChangeActivePointerGrab where+ serialize x+ = do putWord8 30+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cursor_ChangeActivePointerGrab x)+ serialize (time_ChangeActivePointerGrab x)+ serialize (event_mask_ChangeActivePointerGrab x)+ putSkip 2+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cursor_ChangeActivePointerGrab x) ++ size (time_ChangeActivePointerGrab x)+ + size (event_mask_ChangeActivePointerGrab x)+ + 2+ +data GrabKeyboard = MkGrabKeyboard{owner_events_GrabKeyboard ::+ BOOL,+ grab_window_GrabKeyboard :: WINDOW,+ time_GrabKeyboard :: TIMESTAMP,+ pointer_mode_GrabKeyboard :: BYTE,+ keyboard_mode_GrabKeyboard :: BYTE}+ deriving (Show, Typeable)+ +instance Serialize GrabKeyboard where+ serialize x+ = do putWord8 31+ serialize (owner_events_GrabKeyboard x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (grab_window_GrabKeyboard x)+ serialize (time_GrabKeyboard x)+ serialize (pointer_mode_GrabKeyboard x)+ serialize (keyboard_mode_GrabKeyboard x)+ putSkip 2+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (owner_events_GrabKeyboard x) ++ size (grab_window_GrabKeyboard x)+ + size (time_GrabKeyboard x)+ + size (pointer_mode_GrabKeyboard x)+ + size (keyboard_mode_GrabKeyboard x)+ + 2+ +data GrabKeyboardReply = MkGrabKeyboardReply{status_GrabKeyboardReply+ :: BYTE}+ deriving (Show, Typeable)+ +instance Deserialize GrabKeyboardReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkGrabKeyboardReply status)+ +data UngrabKeyboard = MkUngrabKeyboard{time_UngrabKeyboard ::+ TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize UngrabKeyboard where+ serialize x+ = do putWord8 32+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (time_UngrabKeyboard x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (time_UngrabKeyboard x)+ +data Grab = GrabAny+ +instance SimpleEnum Grab where+ toValue GrabAny{} = 0+ fromValue 0 = GrabAny+ +data GrabKey = MkGrabKey{owner_events_GrabKey :: BOOL,+ grab_window_GrabKey :: WINDOW, modifiers_GrabKey :: CARD16,+ key_GrabKey :: KEYCODE, pointer_mode_GrabKey :: CARD8,+ keyboard_mode_GrabKey :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize GrabKey where+ serialize x+ = do putWord8 33+ serialize (owner_events_GrabKey x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (grab_window_GrabKey x)+ serialize (modifiers_GrabKey x)+ serialize (key_GrabKey x)+ serialize (pointer_mode_GrabKey x)+ serialize (keyboard_mode_GrabKey x)+ putSkip 3+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (owner_events_GrabKey x) + size (grab_window_GrabKey x)+ + size (modifiers_GrabKey x)+ + size (key_GrabKey x)+ + size (pointer_mode_GrabKey x)+ + size (keyboard_mode_GrabKey x)+ + 3+ +data UngrabKey = MkUngrabKey{key_UngrabKey :: KEYCODE,+ grab_window_UngrabKey :: WINDOW, modifiers_UngrabKey :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize UngrabKey where+ serialize x+ = do putWord8 34+ serialize (key_UngrabKey x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (grab_window_UngrabKey x)+ serialize (modifiers_UngrabKey x)+ putSkip 2+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (key_UngrabKey x) + size (grab_window_UngrabKey x) ++ size (modifiers_UngrabKey x)+ + 2+ +data Allow = AllowAsyncPointer+ | AllowSyncPointer+ | AllowReplayPointer+ | AllowAsyncKeyboard+ | AllowSyncKeyboard+ | AllowReplayKeyboard+ | AllowAsyncBoth+ | AllowSyncBoth+ +instance SimpleEnum Allow where+ toValue AllowAsyncPointer{} = 0+ toValue AllowSyncPointer{} = 1+ toValue AllowReplayPointer{} = 2+ toValue AllowAsyncKeyboard{} = 3+ toValue AllowSyncKeyboard{} = 4+ toValue AllowReplayKeyboard{} = 5+ toValue AllowAsyncBoth{} = 6+ toValue AllowSyncBoth{} = 7+ fromValue 0 = AllowAsyncPointer+ fromValue 1 = AllowSyncPointer+ fromValue 2 = AllowReplayPointer+ fromValue 3 = AllowAsyncKeyboard+ fromValue 4 = AllowSyncKeyboard+ fromValue 5 = AllowReplayKeyboard+ fromValue 6 = AllowAsyncBoth+ fromValue 7 = AllowSyncBoth+ +data AllowEvents = MkAllowEvents{mode_AllowEvents :: CARD8,+ time_AllowEvents :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize AllowEvents where+ serialize x+ = do putWord8 35+ serialize (mode_AllowEvents x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (time_AllowEvents x)+ putSkip (requiredPadding (size x))+ size x = 3 + size (mode_AllowEvents x) + size (time_AllowEvents x)+ +data QueryPointer = MkQueryPointer{window_QueryPointer :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize QueryPointer where+ serialize x+ = do putWord8 38+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_QueryPointer x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_QueryPointer x)+ +data QueryPointerReply = MkQueryPointerReply{same_screen_QueryPointerReply+ :: BOOL,+ root_QueryPointerReply :: WINDOW,+ child_QueryPointerReply :: WINDOW,+ root_x_QueryPointerReply :: INT16,+ root_y_QueryPointerReply :: INT16,+ win_x_QueryPointerReply :: INT16,+ win_y_QueryPointerReply :: INT16,+ mask_QueryPointerReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryPointerReply where+ deserialize+ = do skip 1+ same_screen <- deserialize+ skip 2+ length <- deserialize+ root <- deserialize+ child <- deserialize+ root_x <- deserialize+ root_y <- deserialize+ win_x <- deserialize+ win_y <- deserialize+ mask <- deserialize+ skip 2+ let _ = isCard32 length+ return+ (MkQueryPointerReply same_screen root child root_x root_y win_x+ win_y+ mask)+ +data TIMECOORD = MkTIMECOORD{time_TIMECOORD :: TIMESTAMP,+ x_TIMECOORD :: INT16, y_TIMECOORD :: INT16}+ deriving (Show, Typeable)+ +instance Serialize TIMECOORD where+ serialize x+ = do serialize (time_TIMECOORD x)+ serialize (x_TIMECOORD x)+ serialize (y_TIMECOORD x)+ size x+ = size (time_TIMECOORD x) + size (x_TIMECOORD x) ++ size (y_TIMECOORD x)+ +instance Deserialize TIMECOORD where+ deserialize+ = do time <- deserialize+ x <- deserialize+ y <- deserialize+ return (MkTIMECOORD time x y)+ +data GetMotionEvents = MkGetMotionEvents{window_GetMotionEvents ::+ WINDOW,+ start_GetMotionEvents :: TIMESTAMP,+ stop_GetMotionEvents :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize GetMotionEvents where+ serialize x+ = do putWord8 39+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_GetMotionEvents x)+ serialize (start_GetMotionEvents x)+ serialize (stop_GetMotionEvents x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (window_GetMotionEvents x) ++ size (start_GetMotionEvents x)+ + size (stop_GetMotionEvents x)+ +data GetMotionEventsReply = MkGetMotionEventsReply{events_len_GetMotionEventsReply+ :: CARD32,+ events_GetMotionEventsReply :: [TIMECOORD]}+ deriving (Show, Typeable)+ +instance Deserialize GetMotionEventsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ events_len <- deserialize+ skip 20+ events <- deserializeList (fromIntegral events_len)+ let _ = isCard32 length+ return (MkGetMotionEventsReply events_len events)+ +data TranslateCoordinates = MkTranslateCoordinates{src_window_TranslateCoordinates+ :: WINDOW,+ dst_window_TranslateCoordinates :: WINDOW,+ src_x_TranslateCoordinates :: INT16,+ src_y_TranslateCoordinates :: INT16}+ deriving (Show, Typeable)+ +instance Serialize TranslateCoordinates where+ serialize x+ = do putWord8 40+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (src_window_TranslateCoordinates x)+ serialize (dst_window_TranslateCoordinates x)+ serialize (src_x_TranslateCoordinates x)+ serialize (src_y_TranslateCoordinates x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (src_window_TranslateCoordinates x) ++ size (dst_window_TranslateCoordinates x)+ + size (src_x_TranslateCoordinates x)+ + size (src_y_TranslateCoordinates x)+ +data TranslateCoordinatesReply = MkTranslateCoordinatesReply{same_screen_TranslateCoordinatesReply+ :: BOOL,+ child_TranslateCoordinatesReply ::+ WINDOW,+ dst_x_TranslateCoordinatesReply ::+ CARD16,+ dst_y_TranslateCoordinatesReply ::+ CARD16}+ deriving (Show, Typeable)+ +instance Deserialize TranslateCoordinatesReply where+ deserialize+ = do skip 1+ same_screen <- deserialize+ skip 2+ length <- deserialize+ child <- deserialize+ dst_x <- deserialize+ dst_y <- deserialize+ let _ = isCard32 length+ return (MkTranslateCoordinatesReply same_screen child dst_x dst_y)+ +data WarpPointer = MkWarpPointer{src_window_WarpPointer :: WINDOW,+ dst_window_WarpPointer :: WINDOW, src_x_WarpPointer :: INT16,+ src_y_WarpPointer :: INT16, src_width_WarpPointer :: CARD16,+ src_height_WarpPointer :: CARD16, dst_x_WarpPointer :: INT16,+ dst_y_WarpPointer :: INT16}+ deriving (Show, Typeable)+ +instance Serialize WarpPointer where+ serialize x+ = do putWord8 41+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (src_window_WarpPointer x)+ serialize (dst_window_WarpPointer x)+ serialize (src_x_WarpPointer x)+ serialize (src_y_WarpPointer x)+ serialize (src_width_WarpPointer x)+ serialize (src_height_WarpPointer x)+ serialize (dst_x_WarpPointer x)+ serialize (dst_y_WarpPointer x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (src_window_WarpPointer x) ++ size (dst_window_WarpPointer x)+ + size (src_x_WarpPointer x)+ + size (src_y_WarpPointer x)+ + size (src_width_WarpPointer x)+ + size (src_height_WarpPointer x)+ + size (dst_x_WarpPointer x)+ + size (dst_y_WarpPointer x)+ +data InputFocus = InputFocusNone+ | InputFocusPointerRoot+ | InputFocusParent+ +instance SimpleEnum InputFocus where+ toValue InputFocusNone{} = 0+ toValue InputFocusPointerRoot{} = 1+ toValue InputFocusParent{} = 2+ fromValue 0 = InputFocusNone+ fromValue 1 = InputFocusPointerRoot+ fromValue 2 = InputFocusParent+ +data SetInputFocus = MkSetInputFocus{revert_to_SetInputFocus ::+ CARD8,+ focus_SetInputFocus :: WINDOW, time_SetInputFocus :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance Serialize SetInputFocus where+ serialize x+ = do putWord8 42+ serialize (revert_to_SetInputFocus x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (focus_SetInputFocus x)+ serialize (time_SetInputFocus x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (revert_to_SetInputFocus x) ++ size (focus_SetInputFocus x)+ + size (time_SetInputFocus x)+ +data GetInputFocus = MkGetInputFocus{}+ deriving (Show, Typeable)+ +instance Serialize GetInputFocus where+ serialize x+ = do putWord8 43+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data GetInputFocusReply = MkGetInputFocusReply{revert_to_GetInputFocusReply+ :: CARD8,+ focus_GetInputFocusReply :: WINDOW}+ deriving (Show, Typeable)+ +instance Deserialize GetInputFocusReply where+ deserialize+ = do skip 1+ revert_to <- deserialize+ skip 2+ length <- deserialize+ focus <- deserialize+ let _ = isCard32 length+ return (MkGetInputFocusReply revert_to focus)+ +data QueryKeymap = MkQueryKeymap{}+ deriving (Show, Typeable)+ +instance Serialize QueryKeymap where+ serialize x+ = do putWord8 44+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data QueryKeymapReply = MkQueryKeymapReply{keys_QueryKeymapReply ::+ [CARD8]}+ deriving (Show, Typeable)+ +instance Deserialize QueryKeymapReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ keys <- deserializeList (fromIntegral 32)+ let _ = isCard32 length+ return (MkQueryKeymapReply keys)+ +data OpenFont = MkOpenFont{fid_OpenFont :: FONT,+ name_len_OpenFont :: CARD16, name_OpenFont :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize OpenFont where+ serialize x+ = do putWord8 45+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (fid_OpenFont x)+ serialize (name_len_OpenFont x)+ putSkip 2+ serializeList (name_OpenFont x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (fid_OpenFont x) + size (name_len_OpenFont x) + 2 ++ sum (map size (name_OpenFont x))+ +data CloseFont = MkCloseFont{font_CloseFont :: FONT}+ deriving (Show, Typeable)+ +instance Serialize CloseFont where+ serialize x+ = do putWord8 46+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (font_CloseFont x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (font_CloseFont x)+ +data FontDraw = FontDrawLeftToRight+ | FontDrawRightToLeft+ +instance SimpleEnum FontDraw where+ toValue FontDrawLeftToRight{} = 0+ toValue FontDrawRightToLeft{} = 1+ fromValue 0 = FontDrawLeftToRight+ fromValue 1 = FontDrawRightToLeft+ +data FONTPROP = MkFONTPROP{name_FONTPROP :: ATOM,+ value_FONTPROP :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize FONTPROP where+ serialize x+ = do serialize (name_FONTPROP x)+ serialize (value_FONTPROP x)+ size x = size (name_FONTPROP x) + size (value_FONTPROP x)+ +instance Deserialize FONTPROP where+ deserialize+ = do name <- deserialize+ value <- deserialize+ return (MkFONTPROP name value)+ +data CHARINFO = MkCHARINFO{left_side_bearing_CHARINFO :: INT16,+ right_side_bearing_CHARINFO :: INT16,+ character_width_CHARINFO :: INT16, ascent_CHARINFO :: INT16,+ descent_CHARINFO :: INT16, attributes_CHARINFO :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize CHARINFO where+ serialize x+ = do serialize (left_side_bearing_CHARINFO x)+ serialize (right_side_bearing_CHARINFO x)+ serialize (character_width_CHARINFO x)+ serialize (ascent_CHARINFO x)+ serialize (descent_CHARINFO x)+ serialize (attributes_CHARINFO x)+ size x+ = size (left_side_bearing_CHARINFO x) ++ size (right_side_bearing_CHARINFO x)+ + size (character_width_CHARINFO x)+ + size (ascent_CHARINFO x)+ + size (descent_CHARINFO x)+ + size (attributes_CHARINFO x)+ +instance Deserialize CHARINFO where+ deserialize+ = do left_side_bearing <- deserialize+ right_side_bearing <- deserialize+ character_width <- deserialize+ ascent <- deserialize+ descent <- deserialize+ attributes <- deserialize+ return+ (MkCHARINFO left_side_bearing right_side_bearing character_width+ ascent+ descent+ attributes)+ +data QueryFont = MkQueryFont{font_QueryFont :: FONTABLE}+ deriving (Show, Typeable)+ +instance Serialize QueryFont where+ serialize x+ = do putWord8 47+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (font_QueryFont x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (font_QueryFont x)+ +data QueryFontReply = MkQueryFontReply{min_bounds_QueryFontReply ::+ CHARINFO,+ max_bounds_QueryFontReply :: CHARINFO,+ min_char_or_byte2_QueryFontReply :: CARD16,+ max_char_or_byte2_QueryFontReply :: CARD16,+ default_char_QueryFontReply :: CARD16,+ properties_len_QueryFontReply :: CARD16,+ draw_direction_QueryFontReply :: BYTE,+ min_byte1_QueryFontReply :: CARD8,+ max_byte1_QueryFontReply :: CARD8,+ all_chars_exist_QueryFontReply :: BOOL,+ font_ascent_QueryFontReply :: INT16,+ font_descent_QueryFontReply :: INT16,+ char_infos_len_QueryFontReply :: CARD32,+ properties_QueryFontReply :: [FONTPROP],+ char_infos_QueryFontReply :: [CHARINFO]}+ deriving (Show, Typeable)+ +instance Deserialize QueryFontReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ min_bounds <- deserialize+ skip 4+ max_bounds <- deserialize+ skip 4+ min_char_or_byte2 <- deserialize+ max_char_or_byte2 <- deserialize+ default_char <- deserialize+ properties_len <- deserialize+ draw_direction <- deserialize+ min_byte1 <- deserialize+ max_byte1 <- deserialize+ all_chars_exist <- deserialize+ font_ascent <- deserialize+ font_descent <- deserialize+ char_infos_len <- deserialize+ properties <- deserializeList (fromIntegral properties_len)+ char_infos <- deserializeList (fromIntegral char_infos_len)+ let _ = isCard32 length+ return+ (MkQueryFontReply min_bounds max_bounds min_char_or_byte2+ max_char_or_byte2+ default_char+ properties_len+ draw_direction+ min_byte1+ max_byte1+ all_chars_exist+ font_ascent+ font_descent+ char_infos_len+ properties+ char_infos)+ +data QueryTextExtents = MkQueryTextExtents{font_QueryTextExtents ::+ FONTABLE,+ string_QueryTextExtents :: [CHAR2B]}+ deriving (Show, Typeable)+ +odd_length_QueryTextExtents :: QueryTextExtents -> BOOL+odd_length_QueryTextExtents x+ = (fromIntegral (string_len_QueryTextExtents x .&. 1))++string_len_QueryTextExtents :: QueryTextExtents -> Word8+string_len_QueryTextExtents x = genericLength $ string_QueryTextExtents x+ +instance Serialize QueryTextExtents where+ serialize x+ = do putWord8 48+ serialize (odd_length_QueryTextExtents x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (font_QueryTextExtents x)+ serializeList (string_QueryTextExtents x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (odd_length_QueryTextExtents x) ++ size (font_QueryTextExtents x)+ + sum (map size (string_QueryTextExtents x))+ +data QueryTextExtentsReply = MkQueryTextExtentsReply{draw_direction_QueryTextExtentsReply+ :: BYTE,+ font_ascent_QueryTextExtentsReply :: INT16,+ font_descent_QueryTextExtentsReply :: INT16,+ overall_ascent_QueryTextExtentsReply :: INT16,+ overall_descent_QueryTextExtentsReply :: INT16,+ overall_width_QueryTextExtentsReply :: INT32,+ overall_left_QueryTextExtentsReply :: INT32,+ overall_right_QueryTextExtentsReply :: INT32}+ deriving (Show, Typeable)+ +instance Deserialize QueryTextExtentsReply where+ deserialize+ = do skip 1+ draw_direction <- deserialize+ skip 2+ length <- deserialize+ font_ascent <- deserialize+ font_descent <- deserialize+ overall_ascent <- deserialize+ overall_descent <- deserialize+ overall_width <- deserialize+ overall_left <- deserialize+ overall_right <- deserialize+ let _ = isCard32 length+ return+ (MkQueryTextExtentsReply draw_direction font_ascent font_descent+ overall_ascent+ overall_descent+ overall_width+ overall_left+ overall_right)+ +data STR = MkSTR{name_len_STR :: CARD8, name_STR :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize STR where+ serialize x+ = do serialize (name_len_STR x)+ serializeList (name_STR x)+ size x = size (name_len_STR x) + sum (map size (name_STR x))+ +instance Deserialize STR where+ deserialize+ = do name_len <- deserialize+ name <- deserializeList (fromIntegral name_len)+ return (MkSTR name_len name)+ +data ListFonts = MkListFonts{max_names_ListFonts :: CARD16,+ pattern_len_ListFonts :: CARD16, pattern_ListFonts :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize ListFonts where+ serialize x+ = do putWord8 49+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (max_names_ListFonts x)+ serialize (pattern_len_ListFonts x)+ serializeList (pattern_ListFonts x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (max_names_ListFonts x) ++ size (pattern_len_ListFonts x)+ + sum (map size (pattern_ListFonts x))+ +data ListFontsReply = MkListFontsReply{names_len_ListFontsReply ::+ CARD16,+ names_ListFontsReply :: [STR]}+ deriving (Show, Typeable)+ +instance Deserialize ListFontsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ names_len <- deserialize+ skip 22+ names <- deserializeList (fromIntegral names_len)+ let _ = isCard32 length+ return (MkListFontsReply names_len names)+ +data ListFontsWithInfo = MkListFontsWithInfo{max_names_ListFontsWithInfo+ :: CARD16,+ pattern_len_ListFontsWithInfo :: CARD16,+ pattern_ListFontsWithInfo :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize ListFontsWithInfo where+ serialize x+ = do putWord8 50+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (max_names_ListFontsWithInfo x)+ serialize (pattern_len_ListFontsWithInfo x)+ serializeList (pattern_ListFontsWithInfo x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (max_names_ListFontsWithInfo x) ++ size (pattern_len_ListFontsWithInfo x)+ + sum (map size (pattern_ListFontsWithInfo x))+ +data ListFontsWithInfoReply = MkListFontsWithInfoReply{name_len_ListFontsWithInfoReply+ :: CARD8,+ min_bounds_ListFontsWithInfoReply ::+ CHARINFO,+ max_bounds_ListFontsWithInfoReply ::+ CHARINFO,+ min_char_or_byte2_ListFontsWithInfoReply ::+ CARD16,+ max_char_or_byte2_ListFontsWithInfoReply ::+ CARD16,+ default_char_ListFontsWithInfoReply ::+ CARD16,+ properties_len_ListFontsWithInfoReply ::+ CARD16,+ draw_direction_ListFontsWithInfoReply ::+ BYTE,+ min_byte1_ListFontsWithInfoReply :: CARD8,+ max_byte1_ListFontsWithInfoReply :: CARD8,+ all_chars_exist_ListFontsWithInfoReply ::+ BOOL,+ font_ascent_ListFontsWithInfoReply :: INT16,+ font_descent_ListFontsWithInfoReply :: INT16,+ replies_hint_ListFontsWithInfoReply ::+ CARD32,+ properties_ListFontsWithInfoReply ::+ [FONTPROP],+ name_ListFontsWithInfoReply :: [CChar]}+ deriving (Show, Typeable)+ +instance Deserialize ListFontsWithInfoReply where+ deserialize+ = do skip 1+ name_len <- deserialize+ skip 2+ length <- deserialize+ min_bounds <- deserialize+ skip 4+ max_bounds <- deserialize+ skip 4+ min_char_or_byte2 <- deserialize+ max_char_or_byte2 <- deserialize+ default_char <- deserialize+ properties_len <- deserialize+ draw_direction <- deserialize+ min_byte1 <- deserialize+ max_byte1 <- deserialize+ all_chars_exist <- deserialize+ font_ascent <- deserialize+ font_descent <- deserialize+ replies_hint <- deserialize+ properties <- deserializeList (fromIntegral properties_len)+ name <- deserializeList (fromIntegral name_len)+ let _ = isCard32 length+ return+ (MkListFontsWithInfoReply name_len min_bounds max_bounds+ min_char_or_byte2+ max_char_or_byte2+ default_char+ properties_len+ draw_direction+ min_byte1+ max_byte1+ all_chars_exist+ font_ascent+ font_descent+ replies_hint+ properties+ name)+ +data SetFontPath = MkSetFontPath{font_qty_SetFontPath :: CARD16,+ path_SetFontPath :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize SetFontPath where+ serialize x+ = do putWord8 51+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (font_qty_SetFontPath x)+ serializeList (path_SetFontPath x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (font_qty_SetFontPath x) ++ sum (map size (path_SetFontPath x))+ +data GetFontPath = MkGetFontPath{}+ deriving (Show, Typeable)+ +instance Serialize GetFontPath where+ serialize x+ = do putWord8 52+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data GetFontPathReply = MkGetFontPathReply{path_len_GetFontPathReply+ :: CARD16,+ path_GetFontPathReply :: [STR]}+ deriving (Show, Typeable)+ +instance Deserialize GetFontPathReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ path_len <- deserialize+ skip 22+ path <- deserializeList (fromIntegral path_len)+ let _ = isCard32 length+ return (MkGetFontPathReply path_len path)+ +data CreatePixmap = MkCreatePixmap{depth_CreatePixmap :: CARD8,+ pid_CreatePixmap :: PIXMAP, drawable_CreatePixmap :: DRAWABLE,+ width_CreatePixmap :: CARD16, height_CreatePixmap :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize CreatePixmap where+ serialize x+ = do putWord8 53+ serialize (depth_CreatePixmap x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (pid_CreatePixmap x)+ serialize (drawable_CreatePixmap x)+ serialize (width_CreatePixmap x)+ serialize (height_CreatePixmap x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (depth_CreatePixmap x) + size (pid_CreatePixmap x) ++ size (drawable_CreatePixmap x)+ + size (width_CreatePixmap x)+ + size (height_CreatePixmap x)+ +data FreePixmap = MkFreePixmap{pixmap_FreePixmap :: PIXMAP}+ deriving (Show, Typeable)+ +instance Serialize FreePixmap where+ serialize x+ = do putWord8 54+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (pixmap_FreePixmap x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (pixmap_FreePixmap x)+ +data GC = GCFunction+ | GCPlaneMask+ | GCForeground+ | GCBackground+ | GCLineWidth+ | GCLineStyle+ | GCCapStyle+ | GCJoinStyle+ | GCFillStyle+ | GCFillRule+ | GCTile+ | GCStipple+ | GCTileStippleOriginX+ | GCTileStippleOriginY+ | GCFont+ | GCSubwindowMode+ | GCGraphicsExposures+ | GCClipOriginX+ | GCClipOriginY+ | GCClipMask+ | GCDashOffset+ | GCDashList+ | GCArcMode+ +instance BitEnum GC where+ toBit GCFunction{} = 0+ toBit GCPlaneMask{} = 1+ toBit GCForeground{} = 2+ toBit GCBackground{} = 3+ toBit GCLineWidth{} = 4+ toBit GCLineStyle{} = 5+ toBit GCCapStyle{} = 6+ toBit GCJoinStyle{} = 7+ toBit GCFillStyle{} = 8+ toBit GCFillRule{} = 9+ toBit GCTile{} = 10+ toBit GCStipple{} = 11+ toBit GCTileStippleOriginX{} = 12+ toBit GCTileStippleOriginY{} = 13+ toBit GCFont{} = 14+ toBit GCSubwindowMode{} = 15+ toBit GCGraphicsExposures{} = 16+ toBit GCClipOriginX{} = 17+ toBit GCClipOriginY{} = 18+ toBit GCClipMask{} = 19+ toBit GCDashOffset{} = 20+ toBit GCDashList{} = 21+ toBit GCArcMode{} = 22+ fromBit 0 = GCFunction+ fromBit 1 = GCPlaneMask+ fromBit 2 = GCForeground+ fromBit 3 = GCBackground+ fromBit 4 = GCLineWidth+ fromBit 5 = GCLineStyle+ fromBit 6 = GCCapStyle+ fromBit 7 = GCJoinStyle+ fromBit 8 = GCFillStyle+ fromBit 9 = GCFillRule+ fromBit 10 = GCTile+ fromBit 11 = GCStipple+ fromBit 12 = GCTileStippleOriginX+ fromBit 13 = GCTileStippleOriginY+ fromBit 14 = GCFont+ fromBit 15 = GCSubwindowMode+ fromBit 16 = GCGraphicsExposures+ fromBit 17 = GCClipOriginX+ fromBit 18 = GCClipOriginY+ fromBit 19 = GCClipMask+ fromBit 20 = GCDashOffset+ fromBit 21 = GCDashList+ fromBit 22 = GCArcMode+ +data GX = GXclear+ | GXand+ | GXandReverse+ | GXcopy+ | GXandInverted+ | GXnoop+ | GXxor+ | GXor+ | GXnor+ | GXequiv+ | GXinvert+ | GXorReverse+ | GXcopyInverted+ | GXorInverted+ | GXnand+ | GXset+ +instance SimpleEnum GX where+ toValue GXclear{} = 0+ toValue GXand{} = 1+ toValue GXandReverse{} = 2+ toValue GXcopy{} = 3+ toValue GXandInverted{} = 4+ toValue GXnoop{} = 5+ toValue GXxor{} = 6+ toValue GXor{} = 7+ toValue GXnor{} = 8+ toValue GXequiv{} = 9+ toValue GXinvert{} = 10+ toValue GXorReverse{} = 11+ toValue GXcopyInverted{} = 12+ toValue GXorInverted{} = 13+ toValue GXnand{} = 14+ toValue GXset{} = 15+ fromValue 0 = GXclear+ fromValue 1 = GXand+ fromValue 2 = GXandReverse+ fromValue 3 = GXcopy+ fromValue 4 = GXandInverted+ fromValue 5 = GXnoop+ fromValue 6 = GXxor+ fromValue 7 = GXor+ fromValue 8 = GXnor+ fromValue 9 = GXequiv+ fromValue 10 = GXinvert+ fromValue 11 = GXorReverse+ fromValue 12 = GXcopyInverted+ fromValue 13 = GXorInverted+ fromValue 14 = GXnand+ fromValue 15 = GXset+ +data LineStyle = LineStyleSolid+ | LineStyleOnOffDash+ | LineStyleDoubleDash+ +instance SimpleEnum LineStyle where+ toValue LineStyleSolid{} = 0+ toValue LineStyleOnOffDash{} = 1+ toValue LineStyleDoubleDash{} = 2+ fromValue 0 = LineStyleSolid+ fromValue 1 = LineStyleOnOffDash+ fromValue 2 = LineStyleDoubleDash+ +data CapStyle = CapStyleNotLast+ | CapStyleButt+ | CapStyleRound+ | CapStyleProjecting+ +instance SimpleEnum CapStyle where+ toValue CapStyleNotLast{} = 0+ toValue CapStyleButt{} = 1+ toValue CapStyleRound{} = 2+ toValue CapStyleProjecting{} = 3+ fromValue 0 = CapStyleNotLast+ fromValue 1 = CapStyleButt+ fromValue 2 = CapStyleRound+ fromValue 3 = CapStyleProjecting+ +data JoinStyle = JoinStyleMitre+ | JoinStyleRound+ | JoinStyleBevel+ +instance SimpleEnum JoinStyle where+ toValue JoinStyleMitre{} = 0+ toValue JoinStyleRound{} = 1+ toValue JoinStyleBevel{} = 2+ fromValue 0 = JoinStyleMitre+ fromValue 1 = JoinStyleRound+ fromValue 2 = JoinStyleBevel+ +data FillStyle = FillStyleSolid+ | FillStyleTiled+ | FillStyleStippled+ | FillStyleOpaqueStippled+ +instance SimpleEnum FillStyle where+ toValue FillStyleSolid{} = 0+ toValue FillStyleTiled{} = 1+ toValue FillStyleStippled{} = 2+ toValue FillStyleOpaqueStippled{} = 3+ fromValue 0 = FillStyleSolid+ fromValue 1 = FillStyleTiled+ fromValue 2 = FillStyleStippled+ fromValue 3 = FillStyleOpaqueStippled+ +data FillRule = FillRuleEvenOdd+ | FillRuleWinding+ +instance SimpleEnum FillRule where+ toValue FillRuleEvenOdd{} = 0+ toValue FillRuleWinding{} = 1+ fromValue 0 = FillRuleEvenOdd+ fromValue 1 = FillRuleWinding+ +data SubwindowMode = SubwindowModeClipByChildren+ | SubwindowModeIncludeInferiors+ +instance SimpleEnum SubwindowMode where+ toValue SubwindowModeClipByChildren{} = 0+ toValue SubwindowModeIncludeInferiors{} = 1+ fromValue 0 = SubwindowModeClipByChildren+ fromValue 1 = SubwindowModeIncludeInferiors+ +data ArcMode = ArcModeChord+ | ArcModePieSlice+ +instance SimpleEnum ArcMode where+ toValue ArcModeChord{} = 0+ toValue ArcModePieSlice{} = 1+ fromValue 0 = ArcModeChord+ fromValue 1 = ArcModePieSlice+ +data CreateGC = MkCreateGC{cid_CreateGC :: GCONTEXT,+ drawable_CreateGC :: DRAWABLE, value_CreateGC :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance Serialize CreateGC where+ serialize x+ = do putWord8 55+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cid_CreateGC x)+ serialize (drawable_CreateGC x)+ serialize (value_CreateGC x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cid_CreateGC x) + size (drawable_CreateGC x) ++ size (value_CreateGC x)+ +data ChangeGC = MkChangeGC{gc_ChangeGC :: GCONTEXT,+ value_ChangeGC :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance Serialize ChangeGC where+ serialize x+ = do putWord8 56+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (gc_ChangeGC x)+ serialize (value_ChangeGC x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (gc_ChangeGC x) + size (value_ChangeGC x)+ +data CopyGC = MkCopyGC{src_gc_CopyGC :: GCONTEXT,+ dst_gc_CopyGC :: GCONTEXT, value_mask_CopyGC :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize CopyGC where+ serialize x+ = do putWord8 57+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (src_gc_CopyGC x)+ serialize (dst_gc_CopyGC x)+ serialize (value_mask_CopyGC x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (src_gc_CopyGC x) + size (dst_gc_CopyGC x) ++ size (value_mask_CopyGC x)+ +data SetDashes = MkSetDashes{gc_SetDashes :: GCONTEXT,+ dash_offset_SetDashes :: CARD16, dashes_len_SetDashes :: CARD16,+ dashes_SetDashes :: [CARD8]}+ deriving (Show, Typeable)+ +instance Serialize SetDashes where+ serialize x+ = do putWord8 58+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (gc_SetDashes x)+ serialize (dash_offset_SetDashes x)+ serialize (dashes_len_SetDashes x)+ serializeList (dashes_SetDashes x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (gc_SetDashes x) + size (dash_offset_SetDashes x) ++ size (dashes_len_SetDashes x)+ + sum (map size (dashes_SetDashes x))+ +data ClipOrdering = ClipOrderingUnsorted+ | ClipOrderingYSorted+ | ClipOrderingYXSorted+ | ClipOrderingYXBanded+ +instance SimpleEnum ClipOrdering where+ toValue ClipOrderingUnsorted{} = 0+ toValue ClipOrderingYSorted{} = 1+ toValue ClipOrderingYXSorted{} = 2+ toValue ClipOrderingYXBanded{} = 3+ fromValue 0 = ClipOrderingUnsorted+ fromValue 1 = ClipOrderingYSorted+ fromValue 2 = ClipOrderingYXSorted+ fromValue 3 = ClipOrderingYXBanded+ +data SetClipRectangles = MkSetClipRectangles{ordering_SetClipRectangles+ :: BYTE,+ gc_SetClipRectangles :: GCONTEXT,+ clip_x_origin_SetClipRectangles :: INT16,+ clip_y_origin_SetClipRectangles :: INT16,+ rectangles_SetClipRectangles :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance Serialize SetClipRectangles where+ serialize x+ = do putWord8 59+ serialize (ordering_SetClipRectangles x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (gc_SetClipRectangles x)+ serialize (clip_x_origin_SetClipRectangles x)+ serialize (clip_y_origin_SetClipRectangles x)+ serializeList (rectangles_SetClipRectangles x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (ordering_SetClipRectangles x) ++ size (gc_SetClipRectangles x)+ + size (clip_x_origin_SetClipRectangles x)+ + size (clip_y_origin_SetClipRectangles x)+ + sum (map size (rectangles_SetClipRectangles x))+ +data FreeGC = MkFreeGC{gc_FreeGC :: GCONTEXT}+ deriving (Show, Typeable)+ +instance Serialize FreeGC where+ serialize x+ = do putWord8 60+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (gc_FreeGC x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (gc_FreeGC x)+ +data ClearArea = MkClearArea{exposures_ClearArea :: BOOL,+ window_ClearArea :: WINDOW, x_ClearArea :: INT16,+ y_ClearArea :: INT16, width_ClearArea :: CARD16,+ height_ClearArea :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize ClearArea where+ serialize x+ = do putWord8 61+ serialize (exposures_ClearArea x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ClearArea x)+ serialize (x_ClearArea x)+ serialize (y_ClearArea x)+ serialize (width_ClearArea x)+ serialize (height_ClearArea x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (exposures_ClearArea x) + size (window_ClearArea x) ++ size (x_ClearArea x)+ + size (y_ClearArea x)+ + size (width_ClearArea x)+ + size (height_ClearArea x)+ +data CopyArea = MkCopyArea{src_drawable_CopyArea :: DRAWABLE,+ dst_drawable_CopyArea :: DRAWABLE, gc_CopyArea :: GCONTEXT,+ src_x_CopyArea :: INT16, src_y_CopyArea :: INT16,+ dst_x_CopyArea :: INT16, dst_y_CopyArea :: INT16,+ width_CopyArea :: CARD16, height_CopyArea :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize CopyArea where+ serialize x+ = do putWord8 62+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (src_drawable_CopyArea x)+ serialize (dst_drawable_CopyArea x)+ serialize (gc_CopyArea x)+ serialize (src_x_CopyArea x)+ serialize (src_y_CopyArea x)+ serialize (dst_x_CopyArea x)+ serialize (dst_y_CopyArea x)+ serialize (width_CopyArea x)+ serialize (height_CopyArea x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (src_drawable_CopyArea x) ++ size (dst_drawable_CopyArea x)+ + size (gc_CopyArea x)+ + size (src_x_CopyArea x)+ + size (src_y_CopyArea x)+ + size (dst_x_CopyArea x)+ + size (dst_y_CopyArea x)+ + size (width_CopyArea x)+ + size (height_CopyArea x)+ +data CopyPlane = MkCopyPlane{src_drawable_CopyPlane :: DRAWABLE,+ dst_drawable_CopyPlane :: DRAWABLE, gc_CopyPlane :: GCONTEXT,+ src_x_CopyPlane :: INT16, src_y_CopyPlane :: INT16,+ dst_x_CopyPlane :: INT16, dst_y_CopyPlane :: INT16,+ width_CopyPlane :: CARD16, height_CopyPlane :: CARD16,+ bit_plane_CopyPlane :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize CopyPlane where+ serialize x+ = do putWord8 63+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (src_drawable_CopyPlane x)+ serialize (dst_drawable_CopyPlane x)+ serialize (gc_CopyPlane x)+ serialize (src_x_CopyPlane x)+ serialize (src_y_CopyPlane x)+ serialize (dst_x_CopyPlane x)+ serialize (dst_y_CopyPlane x)+ serialize (width_CopyPlane x)+ serialize (height_CopyPlane x)+ serialize (bit_plane_CopyPlane x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (src_drawable_CopyPlane x) ++ size (dst_drawable_CopyPlane x)+ + size (gc_CopyPlane x)+ + size (src_x_CopyPlane x)+ + size (src_y_CopyPlane x)+ + size (dst_x_CopyPlane x)+ + size (dst_y_CopyPlane x)+ + size (width_CopyPlane x)+ + size (height_CopyPlane x)+ + size (bit_plane_CopyPlane x)+ +data CoordMode = CoordModeOrigin+ | CoordModePrevious+ +instance SimpleEnum CoordMode where+ toValue CoordModeOrigin{} = 0+ toValue CoordModePrevious{} = 1+ fromValue 0 = CoordModeOrigin+ fromValue 1 = CoordModePrevious+ +data PolyPoint = MkPolyPoint{coordinate_mode_PolyPoint :: BYTE,+ drawable_PolyPoint :: DRAWABLE, gc_PolyPoint :: GCONTEXT,+ points_PolyPoint :: [POINT]}+ deriving (Show, Typeable)+ +instance Serialize PolyPoint where+ serialize x+ = do putWord8 64+ serialize (coordinate_mode_PolyPoint x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyPoint x)+ serialize (gc_PolyPoint x)+ serializeList (points_PolyPoint x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (coordinate_mode_PolyPoint x) ++ size (drawable_PolyPoint x)+ + size (gc_PolyPoint x)+ + sum (map size (points_PolyPoint x))+ +data PolyLine = MkPolyLine{coordinate_mode_PolyLine :: BYTE,+ drawable_PolyLine :: DRAWABLE, gc_PolyLine :: GCONTEXT,+ points_PolyLine :: [POINT]}+ deriving (Show, Typeable)+ +instance Serialize PolyLine where+ serialize x+ = do putWord8 65+ serialize (coordinate_mode_PolyLine x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyLine x)+ serialize (gc_PolyLine x)+ serializeList (points_PolyLine x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (coordinate_mode_PolyLine x) ++ size (drawable_PolyLine x)+ + size (gc_PolyLine x)+ + sum (map size (points_PolyLine x))+ +data SEGMENT = MkSEGMENT{x1_SEGMENT :: INT16, y1_SEGMENT :: INT16,+ x2_SEGMENT :: INT16, y2_SEGMENT :: INT16}+ deriving (Show, Typeable)+ +instance Serialize SEGMENT where+ serialize x+ = do serialize (x1_SEGMENT x)+ serialize (y1_SEGMENT x)+ serialize (x2_SEGMENT x)+ serialize (y2_SEGMENT x)+ size x+ = size (x1_SEGMENT x) + size (y1_SEGMENT x) + size (x2_SEGMENT x) ++ size (y2_SEGMENT x)+ +instance Deserialize SEGMENT where+ deserialize+ = do x1 <- deserialize+ y1 <- deserialize+ x2 <- deserialize+ y2 <- deserialize+ return (MkSEGMENT x1 y1 x2 y2)+ +data PolySegment = MkPolySegment{drawable_PolySegment :: DRAWABLE,+ gc_PolySegment :: GCONTEXT, segments_PolySegment :: [SEGMENT]}+ deriving (Show, Typeable)+ +instance Serialize PolySegment where+ serialize x+ = do putWord8 66+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolySegment x)+ serialize (gc_PolySegment x)+ serializeList (segments_PolySegment x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_PolySegment x) + size (gc_PolySegment x) ++ sum (map size (segments_PolySegment x))+ +data PolyRectangle = MkPolyRectangle{drawable_PolyRectangle ::+ DRAWABLE,+ gc_PolyRectangle :: GCONTEXT,+ rectangles_PolyRectangle :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance Serialize PolyRectangle where+ serialize x+ = do putWord8 67+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyRectangle x)+ serialize (gc_PolyRectangle x)+ serializeList (rectangles_PolyRectangle x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_PolyRectangle x) ++ size (gc_PolyRectangle x)+ + sum (map size (rectangles_PolyRectangle x))+ +data PolyArc = MkPolyArc{drawable_PolyArc :: DRAWABLE,+ gc_PolyArc :: GCONTEXT, arcs_PolyArc :: [ARC]}+ deriving (Show, Typeable)+ +instance Serialize PolyArc where+ serialize x+ = do putWord8 68+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyArc x)+ serialize (gc_PolyArc x)+ serializeList (arcs_PolyArc x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_PolyArc x) + size (gc_PolyArc x) ++ sum (map size (arcs_PolyArc x))+ +data PolyShape = PolyShapeComplex+ | PolyShapeNonconvex+ | PolyShapeConvex+ +instance SimpleEnum PolyShape where+ toValue PolyShapeComplex{} = 0+ toValue PolyShapeNonconvex{} = 1+ toValue PolyShapeConvex{} = 2+ fromValue 0 = PolyShapeComplex+ fromValue 1 = PolyShapeNonconvex+ fromValue 2 = PolyShapeConvex+ +data FillPoly = MkFillPoly{drawable_FillPoly :: DRAWABLE,+ gc_FillPoly :: GCONTEXT, shape_FillPoly :: CARD8,+ coordinate_mode_FillPoly :: CARD8, points_FillPoly :: [POINT]}+ deriving (Show, Typeable)+ +instance Serialize FillPoly where+ serialize x+ = do putWord8 69+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_FillPoly x)+ serialize (gc_FillPoly x)+ serialize (shape_FillPoly x)+ serialize (coordinate_mode_FillPoly x)+ putSkip 2+ serializeList (points_FillPoly x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_FillPoly x) + size (gc_FillPoly x) ++ size (shape_FillPoly x)+ + size (coordinate_mode_FillPoly x)+ + 2+ + sum (map size (points_FillPoly x))+ +data PolyFillRectangle = MkPolyFillRectangle{drawable_PolyFillRectangle+ :: DRAWABLE,+ gc_PolyFillRectangle :: GCONTEXT,+ rectangles_PolyFillRectangle :: [RECTANGLE]}+ deriving (Show, Typeable)+ +instance Serialize PolyFillRectangle where+ serialize x+ = do putWord8 70+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyFillRectangle x)+ serialize (gc_PolyFillRectangle x)+ serializeList (rectangles_PolyFillRectangle x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_PolyFillRectangle x) ++ size (gc_PolyFillRectangle x)+ + sum (map size (rectangles_PolyFillRectangle x))+ +data PolyFillArc = MkPolyFillArc{drawable_PolyFillArc :: DRAWABLE,+ gc_PolyFillArc :: GCONTEXT, arcs_PolyFillArc :: [ARC]}+ deriving (Show, Typeable)+ +instance Serialize PolyFillArc where+ serialize x+ = do putWord8 71+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyFillArc x)+ serialize (gc_PolyFillArc x)+ serializeList (arcs_PolyFillArc x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_PolyFillArc x) + size (gc_PolyFillArc x) ++ sum (map size (arcs_PolyFillArc x))+ +data ImageFormat = ImageFormatXYBitmap+ | ImageFormatXYPixmap+ | ImageFormatZPixmap+ +instance SimpleEnum ImageFormat where+ toValue ImageFormatXYBitmap{} = 0+ toValue ImageFormatXYPixmap{} = 1+ toValue ImageFormatZPixmap{} = 2+ fromValue 0 = ImageFormatXYBitmap+ fromValue 1 = ImageFormatXYPixmap+ fromValue 2 = ImageFormatZPixmap+ +data PutImage = MkPutImage{format_PutImage :: CARD8,+ drawable_PutImage :: DRAWABLE, gc_PutImage :: GCONTEXT,+ width_PutImage :: CARD16, height_PutImage :: CARD16,+ dst_x_PutImage :: INT16, dst_y_PutImage :: INT16,+ left_pad_PutImage :: CARD8, depth_PutImage :: CARD8,+ data_PutImage :: [BYTE]}+ deriving (Show, Typeable)+ +instance Serialize PutImage where+ serialize x+ = do putWord8 72+ serialize (format_PutImage x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PutImage x)+ serialize (gc_PutImage x)+ serialize (width_PutImage x)+ serialize (height_PutImage x)+ serialize (dst_x_PutImage x)+ serialize (dst_y_PutImage x)+ serialize (left_pad_PutImage x)+ serialize (depth_PutImage x)+ putSkip 2+ serializeList (data_PutImage x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (format_PutImage x) + size (drawable_PutImage x) ++ size (gc_PutImage x)+ + size (width_PutImage x)+ + size (height_PutImage x)+ + size (dst_x_PutImage x)+ + size (dst_y_PutImage x)+ + size (left_pad_PutImage x)+ + size (depth_PutImage x)+ + 2+ + sum (map size (data_PutImage x))+ +data GetImage = MkGetImage{format_GetImage :: CARD8,+ drawable_GetImage :: DRAWABLE, x_GetImage :: INT16,+ y_GetImage :: INT16, width_GetImage :: CARD16,+ height_GetImage :: CARD16, plane_mask_GetImage :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize GetImage where+ serialize x+ = do putWord8 73+ serialize (format_GetImage x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_GetImage x)+ serialize (x_GetImage x)+ serialize (y_GetImage x)+ serialize (width_GetImage x)+ serialize (height_GetImage x)+ serialize (plane_mask_GetImage x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (format_GetImage x) + size (drawable_GetImage x) ++ size (x_GetImage x)+ + size (y_GetImage x)+ + size (width_GetImage x)+ + size (height_GetImage x)+ + size (plane_mask_GetImage x)+ +data GetImageReply = MkGetImageReply{depth_GetImageReply :: CARD8,+ visual_GetImageReply :: VISUALID, data_GetImageReply :: [BYTE]}+ deriving (Show, Typeable)+ +instance Deserialize GetImageReply where+ deserialize+ = do skip 1+ depth <- deserialize+ skip 2+ length <- deserialize+ visual <- deserialize+ skip 20+ data_ <- deserializeList (fromIntegral (fromIntegral (length * 4)))+ let _ = isCard32 length+ return (MkGetImageReply depth visual data_)+ +data PolyText8 = MkPolyText8{drawable_PolyText8 :: DRAWABLE,+ gc_PolyText8 :: GCONTEXT, x_PolyText8 :: INT16,+ y_PolyText8 :: INT16, items_PolyText8 :: [BYTE]}+ deriving (Show, Typeable)+ +instance Serialize PolyText8 where+ serialize x+ = do putWord8 74+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyText8 x)+ serialize (gc_PolyText8 x)+ serialize (x_PolyText8 x)+ serialize (y_PolyText8 x)+ serializeList (items_PolyText8 x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_PolyText8 x) + size (gc_PolyText8 x) ++ size (x_PolyText8 x)+ + size (y_PolyText8 x)+ + sum (map size (items_PolyText8 x))+ +data PolyText16 = MkPolyText16{drawable_PolyText16 :: DRAWABLE,+ gc_PolyText16 :: GCONTEXT, x_PolyText16 :: INT16,+ y_PolyText16 :: INT16, items_PolyText16 :: [BYTE]}+ deriving (Show, Typeable)+ +instance Serialize PolyText16 where+ serialize x+ = do putWord8 75+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_PolyText16 x)+ serialize (gc_PolyText16 x)+ serialize (x_PolyText16 x)+ serialize (y_PolyText16 x)+ serializeList (items_PolyText16 x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (drawable_PolyText16 x) + size (gc_PolyText16 x) ++ size (x_PolyText16 x)+ + size (y_PolyText16 x)+ + sum (map size (items_PolyText16 x))+ +data ImageText8 = MkImageText8{string_len_ImageText8 :: BYTE,+ drawable_ImageText8 :: DRAWABLE, gc_ImageText8 :: GCONTEXT,+ x_ImageText8 :: INT16, y_ImageText8 :: INT16,+ string_ImageText8 :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize ImageText8 where+ serialize x+ = do putWord8 76+ serialize (string_len_ImageText8 x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_ImageText8 x)+ serialize (gc_ImageText8 x)+ serialize (x_ImageText8 x)+ serialize (y_ImageText8 x)+ serializeList (string_ImageText8 x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (string_len_ImageText8 x) + size (drawable_ImageText8 x)+ + size (gc_ImageText8 x)+ + size (x_ImageText8 x)+ + size (y_ImageText8 x)+ + sum (map size (string_ImageText8 x))+ +data ImageText16 = MkImageText16{string_len_ImageText16 :: BYTE,+ drawable_ImageText16 :: DRAWABLE, gc_ImageText16 :: GCONTEXT,+ x_ImageText16 :: INT16, y_ImageText16 :: INT16,+ string_ImageText16 :: [CHAR2B]}+ deriving (Show, Typeable)+ +instance Serialize ImageText16 where+ serialize x+ = do putWord8 77+ serialize (string_len_ImageText16 x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_ImageText16 x)+ serialize (gc_ImageText16 x)+ serialize (x_ImageText16 x)+ serialize (y_ImageText16 x)+ serializeList (string_ImageText16 x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (string_len_ImageText16 x) ++ size (drawable_ImageText16 x)+ + size (gc_ImageText16 x)+ + size (x_ImageText16 x)+ + size (y_ImageText16 x)+ + sum (map size (string_ImageText16 x))+ +data ColormapAlloc = ColormapAllocNone+ | ColormapAllocAll+ +instance SimpleEnum ColormapAlloc where+ toValue ColormapAllocNone{} = 0+ toValue ColormapAllocAll{} = 1+ fromValue 0 = ColormapAllocNone+ fromValue 1 = ColormapAllocAll+ +data CreateColormap = MkCreateColormap{alloc_CreateColormap ::+ BYTE,+ mid_CreateColormap :: COLORMAP,+ window_CreateColormap :: WINDOW,+ visual_CreateColormap :: VISUALID}+ deriving (Show, Typeable)+ +instance Serialize CreateColormap where+ serialize x+ = do putWord8 78+ serialize (alloc_CreateColormap x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (mid_CreateColormap x)+ serialize (window_CreateColormap x)+ serialize (visual_CreateColormap x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (alloc_CreateColormap x) + size (mid_CreateColormap x) ++ size (window_CreateColormap x)+ + size (visual_CreateColormap x)+ +data FreeColormap = MkFreeColormap{cmap_FreeColormap :: COLORMAP}+ deriving (Show, Typeable)+ +instance Serialize FreeColormap where+ serialize x+ = do putWord8 79+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_FreeColormap x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (cmap_FreeColormap x)+ +data CopyColormapAndFree = MkCopyColormapAndFree{mid_CopyColormapAndFree+ :: COLORMAP,+ src_cmap_CopyColormapAndFree :: COLORMAP}+ deriving (Show, Typeable)+ +instance Serialize CopyColormapAndFree where+ serialize x+ = do putWord8 80+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (mid_CopyColormapAndFree x)+ serialize (src_cmap_CopyColormapAndFree x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (mid_CopyColormapAndFree x) ++ size (src_cmap_CopyColormapAndFree x)+ +data InstallColormap = MkInstallColormap{cmap_InstallColormap ::+ COLORMAP}+ deriving (Show, Typeable)+ +instance Serialize InstallColormap where+ serialize x+ = do putWord8 81+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_InstallColormap x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (cmap_InstallColormap x)+ +data UninstallColormap = MkUninstallColormap{cmap_UninstallColormap+ :: COLORMAP}+ deriving (Show, Typeable)+ +instance Serialize UninstallColormap where+ serialize x+ = do putWord8 82+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_UninstallColormap x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (cmap_UninstallColormap x)+ +data ListInstalledColormaps = MkListInstalledColormaps{window_ListInstalledColormaps+ :: WINDOW}+ deriving (Show, Typeable)+ +instance Serialize ListInstalledColormaps where+ serialize x+ = do putWord8 83+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_ListInstalledColormaps x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (window_ListInstalledColormaps x)+ +data ListInstalledColormapsReply = MkListInstalledColormapsReply{cmaps_len_ListInstalledColormapsReply+ :: CARD16,+ cmaps_ListInstalledColormapsReply+ :: [COLORMAP]}+ deriving (Show, Typeable)+ +instance Deserialize ListInstalledColormapsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ cmaps_len <- deserialize+ skip 22+ cmaps <- deserializeList (fromIntegral cmaps_len)+ let _ = isCard32 length+ return (MkListInstalledColormapsReply cmaps_len cmaps)+ +data AllocColor = MkAllocColor{cmap_AllocColor :: COLORMAP,+ red_AllocColor :: CARD16, green_AllocColor :: CARD16,+ blue_AllocColor :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize AllocColor where+ serialize x+ = do putWord8 84+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_AllocColor x)+ serialize (red_AllocColor x)+ serialize (green_AllocColor x)+ serialize (blue_AllocColor x)+ putSkip 2+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cmap_AllocColor x) + size (red_AllocColor x) ++ size (green_AllocColor x)+ + size (blue_AllocColor x)+ + 2+ +data AllocColorReply = MkAllocColorReply{red_AllocColorReply ::+ CARD16,+ green_AllocColorReply :: CARD16,+ blue_AllocColorReply :: CARD16,+ pixel_AllocColorReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize AllocColorReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ red <- deserialize+ green <- deserialize+ blue <- deserialize+ skip 2+ pixel <- deserialize+ let _ = isCard32 length+ return (MkAllocColorReply red green blue pixel)+ +data AllocNamedColor = MkAllocNamedColor{cmap_AllocNamedColor ::+ COLORMAP,+ name_len_AllocNamedColor :: CARD16,+ name_AllocNamedColor :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize AllocNamedColor where+ serialize x+ = do putWord8 85+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_AllocNamedColor x)+ serialize (name_len_AllocNamedColor x)+ putSkip 2+ serializeList (name_AllocNamedColor x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cmap_AllocNamedColor x) ++ size (name_len_AllocNamedColor x)+ + 2+ + sum (map size (name_AllocNamedColor x))+ +data AllocNamedColorReply = MkAllocNamedColorReply{pixel_AllocNamedColorReply+ :: CARD32,+ exact_red_AllocNamedColorReply :: CARD16,+ exact_green_AllocNamedColorReply :: CARD16,+ exact_blue_AllocNamedColorReply :: CARD16,+ visual_red_AllocNamedColorReply :: CARD16,+ visual_green_AllocNamedColorReply :: CARD16,+ visual_blue_AllocNamedColorReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize AllocNamedColorReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ pixel <- deserialize+ exact_red <- deserialize+ exact_green <- deserialize+ exact_blue <- deserialize+ visual_red <- deserialize+ visual_green <- deserialize+ visual_blue <- deserialize+ let _ = isCard32 length+ return+ (MkAllocNamedColorReply pixel exact_red exact_green exact_blue+ visual_red+ visual_green+ visual_blue)+ +data AllocColorCells = MkAllocColorCells{contiguous_AllocColorCells+ :: BOOL,+ cmap_AllocColorCells :: COLORMAP,+ colors_AllocColorCells :: CARD16,+ planes_AllocColorCells :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize AllocColorCells where+ serialize x+ = do putWord8 86+ serialize (contiguous_AllocColorCells x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_AllocColorCells x)+ serialize (colors_AllocColorCells x)+ serialize (planes_AllocColorCells x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (contiguous_AllocColorCells x) ++ size (cmap_AllocColorCells x)+ + size (colors_AllocColorCells x)+ + size (planes_AllocColorCells x)+ +data AllocColorCellsReply = MkAllocColorCellsReply{pixels_len_AllocColorCellsReply+ :: CARD16,+ masks_len_AllocColorCellsReply :: CARD16,+ pixels_AllocColorCellsReply :: [CARD32],+ masks_AllocColorCellsReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize AllocColorCellsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ pixels_len <- deserialize+ masks_len <- deserialize+ skip 20+ pixels <- deserializeList (fromIntegral pixels_len)+ masks <- deserializeList (fromIntegral masks_len)+ let _ = isCard32 length+ return (MkAllocColorCellsReply pixels_len masks_len pixels masks)+ +data AllocColorPlanes = MkAllocColorPlanes{contiguous_AllocColorPlanes+ :: BOOL,+ cmap_AllocColorPlanes :: COLORMAP,+ colors_AllocColorPlanes :: CARD16,+ reds_AllocColorPlanes :: CARD16,+ greens_AllocColorPlanes :: CARD16,+ blues_AllocColorPlanes :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize AllocColorPlanes where+ serialize x+ = do putWord8 87+ serialize (contiguous_AllocColorPlanes x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_AllocColorPlanes x)+ serialize (colors_AllocColorPlanes x)+ serialize (reds_AllocColorPlanes x)+ serialize (greens_AllocColorPlanes x)+ serialize (blues_AllocColorPlanes x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (contiguous_AllocColorPlanes x) ++ size (cmap_AllocColorPlanes x)+ + size (colors_AllocColorPlanes x)+ + size (reds_AllocColorPlanes x)+ + size (greens_AllocColorPlanes x)+ + size (blues_AllocColorPlanes x)+ +data AllocColorPlanesReply = MkAllocColorPlanesReply{pixels_len_AllocColorPlanesReply+ :: CARD16,+ red_mask_AllocColorPlanesReply :: CARD32,+ green_mask_AllocColorPlanesReply :: CARD32,+ blue_mask_AllocColorPlanesReply :: CARD32,+ pixels_AllocColorPlanesReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize AllocColorPlanesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ pixels_len <- deserialize+ skip 2+ red_mask <- deserialize+ green_mask <- deserialize+ blue_mask <- deserialize+ skip 8+ pixels <- deserializeList (fromIntegral pixels_len)+ let _ = isCard32 length+ return+ (MkAllocColorPlanesReply pixels_len red_mask green_mask blue_mask+ pixels)+ +data FreeColors = MkFreeColors{cmap_FreeColors :: COLORMAP,+ plane_mask_FreeColors :: CARD32, pixels_FreeColors :: [CARD32]}+ deriving (Show, Typeable)+ +instance Serialize FreeColors where+ serialize x+ = do putWord8 88+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_FreeColors x)+ serialize (plane_mask_FreeColors x)+ serializeList (pixels_FreeColors x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cmap_FreeColors x) + size (plane_mask_FreeColors x)+ + sum (map size (pixels_FreeColors x))+ +data ColorFlag = ColorFlagRed+ | ColorFlagGreen+ | ColorFlagBlue+ +instance BitEnum ColorFlag where+ toBit ColorFlagRed{} = 0+ toBit ColorFlagGreen{} = 1+ toBit ColorFlagBlue{} = 2+ fromBit 0 = ColorFlagRed+ fromBit 1 = ColorFlagGreen+ fromBit 2 = ColorFlagBlue+ +data COLORITEM = MkCOLORITEM{pixel_COLORITEM :: CARD32,+ red_COLORITEM :: CARD16, green_COLORITEM :: CARD16,+ blue_COLORITEM :: CARD16, flags_COLORITEM :: BYTE}+ deriving (Show, Typeable)+ +instance Serialize COLORITEM where+ serialize x+ = do serialize (pixel_COLORITEM x)+ serialize (red_COLORITEM x)+ serialize (green_COLORITEM x)+ serialize (blue_COLORITEM x)+ serialize (flags_COLORITEM x)+ putSkip 1+ size x+ = size (pixel_COLORITEM x) + size (red_COLORITEM x) ++ size (green_COLORITEM x)+ + size (blue_COLORITEM x)+ + size (flags_COLORITEM x)+ + 1+ +instance Deserialize COLORITEM where+ deserialize+ = do pixel <- deserialize+ red <- deserialize+ green <- deserialize+ blue <- deserialize+ flags <- deserialize+ skip 1+ return (MkCOLORITEM pixel red green blue flags)+ +data StoreColors = MkStoreColors{cmap_StoreColors :: COLORMAP,+ items_StoreColors :: [COLORITEM]}+ deriving (Show, Typeable)+ +instance Serialize StoreColors where+ serialize x+ = do putWord8 89+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_StoreColors x)+ serializeList (items_StoreColors x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cmap_StoreColors x) ++ sum (map size (items_StoreColors x))+ +data StoreNamedColor = MkStoreNamedColor{flags_StoreNamedColor ::+ CARD8,+ cmap_StoreNamedColor :: COLORMAP,+ pixel_StoreNamedColor :: CARD32,+ name_len_StoreNamedColor :: CARD16,+ name_StoreNamedColor :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize StoreNamedColor where+ serialize x+ = do putWord8 90+ serialize (flags_StoreNamedColor x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_StoreNamedColor x)+ serialize (pixel_StoreNamedColor x)+ serialize (name_len_StoreNamedColor x)+ putSkip 2+ serializeList (name_StoreNamedColor x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (flags_StoreNamedColor x) ++ size (cmap_StoreNamedColor x)+ + size (pixel_StoreNamedColor x)+ + size (name_len_StoreNamedColor x)+ + 2+ + sum (map size (name_StoreNamedColor x))+ +data RGB = MkRGB{red_RGB :: CARD16, green_RGB :: CARD16,+ blue_RGB :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize RGB where+ serialize x+ = do serialize (red_RGB x)+ serialize (green_RGB x)+ serialize (blue_RGB x)+ putSkip 2+ size x+ = size (red_RGB x) + size (green_RGB x) + size (blue_RGB x) + 2+ +instance Deserialize RGB where+ deserialize+ = do red <- deserialize+ green <- deserialize+ blue <- deserialize+ skip 2+ return (MkRGB red green blue)+ +data QueryColors = MkQueryColors{cmap_QueryColors :: COLORMAP,+ pixels_QueryColors :: [CARD32]}+ deriving (Show, Typeable)+ +instance Serialize QueryColors where+ serialize x+ = do putWord8 91+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_QueryColors x)+ serializeList (pixels_QueryColors x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cmap_QueryColors x) ++ sum (map size (pixels_QueryColors x))+ +data QueryColorsReply = MkQueryColorsReply{colors_len_QueryColorsReply+ :: CARD16,+ colors_QueryColorsReply :: [RGB]}+ deriving (Show, Typeable)+ +instance Deserialize QueryColorsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ colors_len <- deserialize+ skip 22+ colors <- deserializeList (fromIntegral colors_len)+ let _ = isCard32 length+ return (MkQueryColorsReply colors_len colors)+ +data LookupColor = MkLookupColor{cmap_LookupColor :: COLORMAP,+ name_len_LookupColor :: CARD16, name_LookupColor :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize LookupColor where+ serialize x+ = do putWord8 92+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cmap_LookupColor x)+ serialize (name_len_LookupColor x)+ putSkip 2+ serializeList (name_LookupColor x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cmap_LookupColor x) + size (name_len_LookupColor x)+ + 2+ + sum (map size (name_LookupColor x))+ +data LookupColorReply = MkLookupColorReply{exact_red_LookupColorReply+ :: CARD16,+ exact_green_LookupColorReply :: CARD16,+ exact_blue_LookupColorReply :: CARD16,+ visual_red_LookupColorReply :: CARD16,+ visual_green_LookupColorReply :: CARD16,+ visual_blue_LookupColorReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize LookupColorReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ exact_red <- deserialize+ exact_green <- deserialize+ exact_blue <- deserialize+ visual_red <- deserialize+ visual_green <- deserialize+ visual_blue <- deserialize+ let _ = isCard32 length+ return+ (MkLookupColorReply exact_red exact_green exact_blue visual_red+ visual_green+ visual_blue)+ +data CreateCursor = MkCreateCursor{cid_CreateCursor :: CURSOR,+ source_CreateCursor :: PIXMAP, mask_CreateCursor :: PIXMAP,+ fore_red_CreateCursor :: CARD16,+ fore_green_CreateCursor :: CARD16,+ fore_blue_CreateCursor :: CARD16,+ back_red_CreateCursor :: CARD16,+ back_green_CreateCursor :: CARD16,+ back_blue_CreateCursor :: CARD16, x_CreateCursor :: CARD16,+ y_CreateCursor :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize CreateCursor where+ serialize x+ = do putWord8 93+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cid_CreateCursor x)+ serialize (source_CreateCursor x)+ serialize (mask_CreateCursor x)+ serialize (fore_red_CreateCursor x)+ serialize (fore_green_CreateCursor x)+ serialize (fore_blue_CreateCursor x)+ serialize (back_red_CreateCursor x)+ serialize (back_green_CreateCursor x)+ serialize (back_blue_CreateCursor x)+ serialize (x_CreateCursor x)+ serialize (y_CreateCursor x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cid_CreateCursor x) + size (source_CreateCursor x)+ + size (mask_CreateCursor x)+ + size (fore_red_CreateCursor x)+ + size (fore_green_CreateCursor x)+ + size (fore_blue_CreateCursor x)+ + size (back_red_CreateCursor x)+ + size (back_green_CreateCursor x)+ + size (back_blue_CreateCursor x)+ + size (x_CreateCursor x)+ + size (y_CreateCursor x)+ +data CreateGlyphCursor = MkCreateGlyphCursor{cid_CreateGlyphCursor+ :: CURSOR,+ source_font_CreateGlyphCursor :: FONT,+ mask_font_CreateGlyphCursor :: FONT,+ source_char_CreateGlyphCursor :: CARD16,+ mask_char_CreateGlyphCursor :: CARD16,+ fore_red_CreateGlyphCursor :: CARD16,+ fore_green_CreateGlyphCursor :: CARD16,+ fore_blue_CreateGlyphCursor :: CARD16,+ back_red_CreateGlyphCursor :: CARD16,+ back_green_CreateGlyphCursor :: CARD16,+ back_blue_CreateGlyphCursor :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize CreateGlyphCursor where+ serialize x+ = do putWord8 94+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cid_CreateGlyphCursor x)+ serialize (source_font_CreateGlyphCursor x)+ serialize (mask_font_CreateGlyphCursor x)+ serialize (source_char_CreateGlyphCursor x)+ serialize (mask_char_CreateGlyphCursor x)+ serialize (fore_red_CreateGlyphCursor x)+ serialize (fore_green_CreateGlyphCursor x)+ serialize (fore_blue_CreateGlyphCursor x)+ serialize (back_red_CreateGlyphCursor x)+ serialize (back_green_CreateGlyphCursor x)+ serialize (back_blue_CreateGlyphCursor x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cid_CreateGlyphCursor x) ++ size (source_font_CreateGlyphCursor x)+ + size (mask_font_CreateGlyphCursor x)+ + size (source_char_CreateGlyphCursor x)+ + size (mask_char_CreateGlyphCursor x)+ + size (fore_red_CreateGlyphCursor x)+ + size (fore_green_CreateGlyphCursor x)+ + size (fore_blue_CreateGlyphCursor x)+ + size (back_red_CreateGlyphCursor x)+ + size (back_green_CreateGlyphCursor x)+ + size (back_blue_CreateGlyphCursor x)+ +data FreeCursor = MkFreeCursor{cursor_FreeCursor :: CURSOR}+ deriving (Show, Typeable)+ +instance Serialize FreeCursor where+ serialize x+ = do putWord8 95+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cursor_FreeCursor x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (cursor_FreeCursor x)+ +data RecolorCursor = MkRecolorCursor{cursor_RecolorCursor ::+ CURSOR,+ fore_red_RecolorCursor :: CARD16,+ fore_green_RecolorCursor :: CARD16,+ fore_blue_RecolorCursor :: CARD16,+ back_red_RecolorCursor :: CARD16,+ back_green_RecolorCursor :: CARD16,+ back_blue_RecolorCursor :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize RecolorCursor where+ serialize x+ = do putWord8 96+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (cursor_RecolorCursor x)+ serialize (fore_red_RecolorCursor x)+ serialize (fore_green_RecolorCursor x)+ serialize (fore_blue_RecolorCursor x)+ serialize (back_red_RecolorCursor x)+ serialize (back_green_RecolorCursor x)+ serialize (back_blue_RecolorCursor x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (cursor_RecolorCursor x) ++ size (fore_red_RecolorCursor x)+ + size (fore_green_RecolorCursor x)+ + size (fore_blue_RecolorCursor x)+ + size (back_red_RecolorCursor x)+ + size (back_green_RecolorCursor x)+ + size (back_blue_RecolorCursor x)+ +data QueryShapeOf = QueryShapeOfLargestCursor+ | QueryShapeOfFastestTile+ | QueryShapeOfFastestStipple+ +instance SimpleEnum QueryShapeOf where+ toValue QueryShapeOfLargestCursor{} = 0+ toValue QueryShapeOfFastestTile{} = 1+ toValue QueryShapeOfFastestStipple{} = 2+ fromValue 0 = QueryShapeOfLargestCursor+ fromValue 1 = QueryShapeOfFastestTile+ fromValue 2 = QueryShapeOfFastestStipple+ +data QueryBestSize = MkQueryBestSize{class_QueryBestSize :: CARD8,+ drawable_QueryBestSize :: DRAWABLE,+ width_QueryBestSize :: CARD16, height_QueryBestSize :: CARD16}+ deriving (Show, Typeable)+ +instance Serialize QueryBestSize where+ serialize x+ = do putWord8 97+ serialize (class_QueryBestSize x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (drawable_QueryBestSize x)+ serialize (width_QueryBestSize x)+ serialize (height_QueryBestSize x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (class_QueryBestSize x) ++ size (drawable_QueryBestSize x)+ + size (width_QueryBestSize x)+ + size (height_QueryBestSize x)+ +data QueryBestSizeReply = MkQueryBestSizeReply{width_QueryBestSizeReply+ :: CARD16,+ height_QueryBestSizeReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryBestSizeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ width <- deserialize+ height <- deserialize+ let _ = isCard32 length+ return (MkQueryBestSizeReply width height)+ +data QueryExtension = MkQueryExtension{name_len_QueryExtension ::+ CARD16,+ name_QueryExtension :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize QueryExtension where+ serialize x+ = do putWord8 98+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (name_len_QueryExtension x)+ putSkip 2+ serializeList (name_QueryExtension x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (name_len_QueryExtension x) + 2 ++ sum (map size (name_QueryExtension x))+ +data QueryExtensionReply = MkQueryExtensionReply{present_QueryExtensionReply+ :: BOOL,+ major_opcode_QueryExtensionReply :: CARD8,+ first_event_QueryExtensionReply :: CARD8,+ first_error_QueryExtensionReply :: CARD8}+ deriving (Show, Typeable)+ +instance Deserialize QueryExtensionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ present <- deserialize+ major_opcode <- deserialize+ first_event <- deserialize+ first_error <- deserialize+ let _ = isCard32 length+ return+ (MkQueryExtensionReply present major_opcode first_event+ first_error)+ +data ListExtensions = MkListExtensions{}+ deriving (Show, Typeable)+ +instance Serialize ListExtensions where+ serialize x+ = do putWord8 99+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data ListExtensionsReply = MkListExtensionsReply{names_len_ListExtensionsReply+ :: CARD8,+ names_ListExtensionsReply :: [STR]}+ deriving (Show, Typeable)+ +instance Deserialize ListExtensionsReply where+ deserialize+ = do skip 1+ names_len <- deserialize+ skip 2+ length <- deserialize+ skip 24+ names <- deserializeList (fromIntegral names_len)+ let _ = isCard32 length+ return (MkListExtensionsReply names_len names)+ +data ChangeKeyboardMapping = MkChangeKeyboardMapping{keycode_count_ChangeKeyboardMapping+ :: CARD8,+ first_keycode_ChangeKeyboardMapping :: KEYCODE,+ keysyms_per_keycode_ChangeKeyboardMapping ::+ CARD8,+ keysyms_ChangeKeyboardMapping :: [KEYSYM]}+ deriving (Show, Typeable)+ +instance Serialize ChangeKeyboardMapping where+ serialize x+ = do putWord8 100+ serialize (keycode_count_ChangeKeyboardMapping x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (first_keycode_ChangeKeyboardMapping x)+ serialize (keysyms_per_keycode_ChangeKeyboardMapping x)+ serializeList (keysyms_ChangeKeyboardMapping x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (keycode_count_ChangeKeyboardMapping x) ++ size (first_keycode_ChangeKeyboardMapping x)+ + size (keysyms_per_keycode_ChangeKeyboardMapping x)+ + sum (map size (keysyms_ChangeKeyboardMapping x))+ +data GetKeyboardMapping = MkGetKeyboardMapping{first_keycode_GetKeyboardMapping+ :: KEYCODE,+ count_GetKeyboardMapping :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize GetKeyboardMapping where+ serialize x+ = do putWord8 101+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (first_keycode_GetKeyboardMapping x)+ serialize (count_GetKeyboardMapping x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (first_keycode_GetKeyboardMapping x) ++ size (count_GetKeyboardMapping x)+ +data GetKeyboardMappingReply = MkGetKeyboardMappingReply{keysyms_per_keycode_GetKeyboardMappingReply+ :: BYTE,+ keysyms_GetKeyboardMappingReply ::+ [KEYSYM]}+ deriving (Show, Typeable)+ +instance Deserialize GetKeyboardMappingReply where+ deserialize+ = do skip 1+ keysyms_per_keycode <- deserialize+ skip 2+ length <- deserialize+ skip 24+ keysyms <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return (MkGetKeyboardMappingReply keysyms_per_keycode keysyms)+ +data KB = KBKeyClickPercent+ | KBBellPercent+ | KBBellPitch+ | KBBellDuration+ | KBLed+ | KBLedMode+ | KBKey+ | KBAutoRepeatMode+ +instance BitEnum KB where+ toBit KBKeyClickPercent{} = 0+ toBit KBBellPercent{} = 1+ toBit KBBellPitch{} = 2+ toBit KBBellDuration{} = 3+ toBit KBLed{} = 4+ toBit KBLedMode{} = 5+ toBit KBKey{} = 6+ toBit KBAutoRepeatMode{} = 7+ fromBit 0 = KBKeyClickPercent+ fromBit 1 = KBBellPercent+ fromBit 2 = KBBellPitch+ fromBit 3 = KBBellDuration+ fromBit 4 = KBLed+ fromBit 5 = KBLedMode+ fromBit 6 = KBKey+ fromBit 7 = KBAutoRepeatMode+ +data LedMode = LedModeOff+ | LedModeOn+ +instance SimpleEnum LedMode where+ toValue LedModeOff{} = 0+ toValue LedModeOn{} = 1+ fromValue 0 = LedModeOff+ fromValue 1 = LedModeOn+ +data AutoRepeatMode = AutoRepeatModeOff+ | AutoRepeatModeOn+ | AutoRepeatModeDefault+ +instance SimpleEnum AutoRepeatMode where+ toValue AutoRepeatModeOff{} = 0+ toValue AutoRepeatModeOn{} = 1+ toValue AutoRepeatModeDefault{} = 2+ fromValue 0 = AutoRepeatModeOff+ fromValue 1 = AutoRepeatModeOn+ fromValue 2 = AutoRepeatModeDefault+ +data ChangeKeyboardControl = MkChangeKeyboardControl{value_ChangeKeyboardControl+ :: ValueParam CARD32}+ deriving (Show, Typeable)+ +instance Serialize ChangeKeyboardControl where+ serialize x+ = do putWord8 102+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (value_ChangeKeyboardControl x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (value_ChangeKeyboardControl x)+ +data GetKeyboardControl = MkGetKeyboardControl{}+ deriving (Show, Typeable)+ +instance Serialize GetKeyboardControl where+ serialize x+ = do putWord8 103+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data GetKeyboardControlReply = MkGetKeyboardControlReply{global_auto_repeat_GetKeyboardControlReply+ :: BYTE,+ led_mask_GetKeyboardControlReply :: CARD32,+ key_click_percent_GetKeyboardControlReply+ :: CARD8,+ bell_percent_GetKeyboardControlReply ::+ CARD8,+ bell_pitch_GetKeyboardControlReply ::+ CARD16,+ bell_duration_GetKeyboardControlReply ::+ CARD16,+ auto_repeats_GetKeyboardControlReply ::+ [CARD8]}+ deriving (Show, Typeable)+ +instance Deserialize GetKeyboardControlReply where+ deserialize+ = do skip 1+ global_auto_repeat <- deserialize+ skip 2+ length <- deserialize+ led_mask <- deserialize+ key_click_percent <- deserialize+ bell_percent <- deserialize+ bell_pitch <- deserialize+ bell_duration <- deserialize+ skip 2+ auto_repeats <- deserializeList (fromIntegral 32)+ let _ = isCard32 length+ return+ (MkGetKeyboardControlReply global_auto_repeat led_mask+ key_click_percent+ bell_percent+ bell_pitch+ bell_duration+ auto_repeats)+ +data Bell = MkBell{percent_Bell :: INT8}+ deriving (Show, Typeable)+ +instance Serialize Bell where+ serialize x+ = do putWord8 104+ serialize (percent_Bell x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 3 + size (percent_Bell x)+ +data ChangePointerControl = MkChangePointerControl{acceleration_numerator_ChangePointerControl+ :: INT16,+ acceleration_denominator_ChangePointerControl ::+ INT16,+ threshold_ChangePointerControl :: INT16,+ do_acceleration_ChangePointerControl :: BOOL,+ do_threshold_ChangePointerControl :: BOOL}+ deriving (Show, Typeable)+ +instance Serialize ChangePointerControl where+ serialize x+ = do putWord8 105+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (acceleration_numerator_ChangePointerControl x)+ serialize (acceleration_denominator_ChangePointerControl x)+ serialize (threshold_ChangePointerControl x)+ serialize (do_acceleration_ChangePointerControl x)+ serialize (do_threshold_ChangePointerControl x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (acceleration_numerator_ChangePointerControl x) ++ size (acceleration_denominator_ChangePointerControl x)+ + size (threshold_ChangePointerControl x)+ + size (do_acceleration_ChangePointerControl x)+ + size (do_threshold_ChangePointerControl x)+ +data GetPointerControl = MkGetPointerControl{}+ deriving (Show, Typeable)+ +instance Serialize GetPointerControl where+ serialize x+ = do putWord8 106+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data GetPointerControlReply = MkGetPointerControlReply{acceleration_numerator_GetPointerControlReply+ :: CARD16,+ acceleration_denominator_GetPointerControlReply+ :: CARD16,+ threshold_GetPointerControlReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize GetPointerControlReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ acceleration_numerator <- deserialize+ acceleration_denominator <- deserialize+ threshold <- deserialize+ skip 18+ let _ = isCard32 length+ return+ (MkGetPointerControlReply acceleration_numerator+ acceleration_denominator+ threshold)+ +data Blanking = BlankingNotPreferred+ | BlankingPreferred+ | BlankingDefault+ +instance SimpleEnum Blanking where+ toValue BlankingNotPreferred{} = 0+ toValue BlankingPreferred{} = 1+ toValue BlankingDefault{} = 2+ fromValue 0 = BlankingNotPreferred+ fromValue 1 = BlankingPreferred+ fromValue 2 = BlankingDefault+ +data Exposures = ExposuresNotAllowed+ | ExposuresAllowed+ | ExposuresDefault+ +instance SimpleEnum Exposures where+ toValue ExposuresNotAllowed{} = 0+ toValue ExposuresAllowed{} = 1+ toValue ExposuresDefault{} = 2+ fromValue 0 = ExposuresNotAllowed+ fromValue 1 = ExposuresAllowed+ fromValue 2 = ExposuresDefault+ +data SetScreenSaver = MkSetScreenSaver{timeout_SetScreenSaver ::+ INT16,+ interval_SetScreenSaver :: INT16,+ prefer_blanking_SetScreenSaver :: CARD8,+ allow_exposures_SetScreenSaver :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize SetScreenSaver where+ serialize x+ = do putWord8 107+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (timeout_SetScreenSaver x)+ serialize (interval_SetScreenSaver x)+ serialize (prefer_blanking_SetScreenSaver x)+ serialize (allow_exposures_SetScreenSaver x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (timeout_SetScreenSaver x) ++ size (interval_SetScreenSaver x)+ + size (prefer_blanking_SetScreenSaver x)+ + size (allow_exposures_SetScreenSaver x)+ +data GetScreenSaver = MkGetScreenSaver{}+ deriving (Show, Typeable)+ +instance Serialize GetScreenSaver where+ serialize x+ = do putWord8 108+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data GetScreenSaverReply = MkGetScreenSaverReply{timeout_GetScreenSaverReply+ :: CARD16,+ interval_GetScreenSaverReply :: CARD16,+ prefer_blanking_GetScreenSaverReply :: BYTE,+ allow_exposures_GetScreenSaverReply :: BYTE}+ deriving (Show, Typeable)+ +instance Deserialize GetScreenSaverReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ timeout <- deserialize+ interval <- deserialize+ prefer_blanking <- deserialize+ allow_exposures <- deserialize+ skip 18+ let _ = isCard32 length+ return+ (MkGetScreenSaverReply timeout interval prefer_blanking+ allow_exposures)+ +data HostMode = HostModeInsert+ | HostModeDelete+ +instance SimpleEnum HostMode where+ toValue HostModeInsert{} = 0+ toValue HostModeDelete{} = 1+ fromValue 0 = HostModeInsert+ fromValue 1 = HostModeDelete+ +data Family = FamilyInternet+ | FamilyDECnet+ | FamilyChaos+ | FamilyServerInterpreted+ | FamilyInternet6+ +instance SimpleEnum Family where+ toValue FamilyInternet{} = 0+ toValue FamilyDECnet{} = 1+ toValue FamilyChaos{} = 2+ toValue FamilyServerInterpreted{} = 5+ toValue FamilyInternet6{} = 6+ fromValue 0 = FamilyInternet+ fromValue 1 = FamilyDECnet+ fromValue 2 = FamilyChaos+ fromValue 5 = FamilyServerInterpreted+ fromValue 6 = FamilyInternet6+ +data ChangeHosts = MkChangeHosts{mode_ChangeHosts :: CARD8,+ family_ChangeHosts :: CARD8, address_len_ChangeHosts :: CARD16,+ address_ChangeHosts :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize ChangeHosts where+ serialize x+ = do putWord8 109+ serialize (mode_ChangeHosts x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (family_ChangeHosts x)+ putSkip 1+ serialize (address_len_ChangeHosts x)+ serializeList (address_ChangeHosts x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (mode_ChangeHosts x) + size (family_ChangeHosts x) + 1 ++ size (address_len_ChangeHosts x)+ + sum (map size (address_ChangeHosts x))+ +data HOST = MkHOST{family_HOST :: CARD8,+ address_len_HOST :: CARD16, address_HOST :: [BYTE]}+ deriving (Show, Typeable)+ +instance Serialize HOST where+ serialize x+ = do serialize (family_HOST x)+ putSkip 1+ serialize (address_len_HOST x)+ serializeList (address_HOST x)+ size x+ = size (family_HOST x) + 1 + size (address_len_HOST x) ++ sum (map size (address_HOST x))+ +instance Deserialize HOST where+ deserialize+ = do family <- deserialize+ skip 1+ address_len <- deserialize+ address <- deserializeList (fromIntegral address_len)+ return (MkHOST family address_len address)+ +data ListHosts = MkListHosts{}+ deriving (Show, Typeable)+ +instance Serialize ListHosts where+ serialize x+ = do putWord8 110+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data ListHostsReply = MkListHostsReply{mode_ListHostsReply :: BYTE,+ hosts_len_ListHostsReply :: CARD16,+ hosts_ListHostsReply :: [HOST]}+ deriving (Show, Typeable)+ +instance Deserialize ListHostsReply where+ deserialize+ = do skip 1+ mode <- deserialize+ skip 2+ length <- deserialize+ hosts_len <- deserialize+ skip 22+ hosts <- deserializeList (fromIntegral hosts_len)+ let _ = isCard32 length+ return (MkListHostsReply mode hosts_len hosts)+ +data AccessControl = AccessControlDisable+ | AccessControlEnable+ +instance SimpleEnum AccessControl where+ toValue AccessControlDisable{} = 0+ toValue AccessControlEnable{} = 1+ fromValue 0 = AccessControlDisable+ fromValue 1 = AccessControlEnable+ +data SetAccessControl = MkSetAccessControl{mode_SetAccessControl ::+ CARD8}+ deriving (Show, Typeable)+ +instance Serialize SetAccessControl where+ serialize x+ = do putWord8 111+ serialize (mode_SetAccessControl x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 3 + size (mode_SetAccessControl x)+ +data CloseDown = CloseDownDestroyAll+ | CloseDownRetainPermanent+ | CloseDownRetainTemporary+ +instance SimpleEnum CloseDown where+ toValue CloseDownDestroyAll{} = 0+ toValue CloseDownRetainPermanent{} = 1+ toValue CloseDownRetainTemporary{} = 2+ fromValue 0 = CloseDownDestroyAll+ fromValue 1 = CloseDownRetainPermanent+ fromValue 2 = CloseDownRetainTemporary+ +data SetCloseDownMode = MkSetCloseDownMode{mode_SetCloseDownMode ::+ CARD8}+ deriving (Show, Typeable)+ +instance Serialize SetCloseDownMode where+ serialize x+ = do putWord8 112+ serialize (mode_SetCloseDownMode x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 3 + size (mode_SetCloseDownMode x)+ +data Kill = KillAllTemporary+ +instance SimpleEnum Kill where+ toValue KillAllTemporary{} = 0+ fromValue 0 = KillAllTemporary+ +data KillClient = MkKillClient{resource_KillClient :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize KillClient where+ serialize x+ = do putWord8 113+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (resource_KillClient x)+ putSkip (requiredPadding (size x))+ size x = 3 + 1 + size (resource_KillClient x)+ +data RotateProperties = MkRotateProperties{window_RotateProperties+ :: WINDOW,+ atoms_len_RotateProperties :: CARD16,+ delta_RotateProperties :: INT16,+ atoms_RotateProperties :: [ATOM]}+ deriving (Show, Typeable)+ +instance Serialize RotateProperties where+ serialize x+ = do putWord8 114+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serialize (window_RotateProperties x)+ serialize (atoms_len_RotateProperties x)+ serialize (delta_RotateProperties x)+ serializeList (atoms_RotateProperties x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + 1 + size (window_RotateProperties x) ++ size (atoms_len_RotateProperties x)+ + size (delta_RotateProperties x)+ + sum (map size (atoms_RotateProperties x))+ +data ScreenSaver = ScreenSaverReset+ | ScreenSaverActive+ +instance SimpleEnum ScreenSaver where+ toValue ScreenSaverReset{} = 0+ toValue ScreenSaverActive{} = 1+ fromValue 0 = ScreenSaverReset+ fromValue 1 = ScreenSaverActive+ +data ForceScreenSaver = MkForceScreenSaver{mode_ForceScreenSaver ::+ CARD8}+ deriving (Show, Typeable)+ +instance Serialize ForceScreenSaver where+ serialize x+ = do putWord8 115+ serialize (mode_ForceScreenSaver x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 3 + size (mode_ForceScreenSaver x)+ +data MappingStatus = MappingStatusSuccess+ | MappingStatusBusy+ | MappingStatusFailure+ +instance SimpleEnum MappingStatus where+ toValue MappingStatusSuccess{} = 0+ toValue MappingStatusBusy{} = 1+ toValue MappingStatusFailure{} = 2+ fromValue 0 = MappingStatusSuccess+ fromValue 1 = MappingStatusBusy+ fromValue 2 = MappingStatusFailure+ +data SetPointerMapping = MkSetPointerMapping{map_len_SetPointerMapping+ :: CARD8,+ map_SetPointerMapping :: [CARD8]}+ deriving (Show, Typeable)+ +instance Serialize SetPointerMapping where+ serialize x+ = do putWord8 116+ serialize (map_len_SetPointerMapping x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serializeList (map_SetPointerMapping x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (map_len_SetPointerMapping x) ++ sum (map size (map_SetPointerMapping x))+ +data SetPointerMappingReply = MkSetPointerMappingReply{status_SetPointerMappingReply+ :: BYTE}+ deriving (Show, Typeable)+ +instance Deserialize SetPointerMappingReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkSetPointerMappingReply status)+ +data GetPointerMapping = MkGetPointerMapping{}+ deriving (Show, Typeable)+ +instance Serialize GetPointerMapping where+ serialize x+ = do putWord8 117+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data GetPointerMappingReply = MkGetPointerMappingReply{map_len_GetPointerMappingReply+ :: CARD8,+ map_GetPointerMappingReply :: [CARD8]}+ deriving (Show, Typeable)+ +instance Deserialize GetPointerMappingReply where+ deserialize+ = do skip 1+ map_len <- deserialize+ skip 2+ length <- deserialize+ skip 24+ map <- deserializeList (fromIntegral map_len)+ let _ = isCard32 length+ return (MkGetPointerMappingReply map_len map)+ +data MapIndex = MapIndexShift+ | MapIndexLock+ | MapIndexControl+ | MapIndex1+ | MapIndex2+ | MapIndex3+ | MapIndex4+ | MapIndex5+ +instance SimpleEnum MapIndex where+ toValue MapIndexShift{} = 0+ toValue MapIndexLock{} = 1+ toValue MapIndexControl{} = 2+ toValue MapIndex1{} = 3+ toValue MapIndex2{} = 4+ toValue MapIndex3{} = 5+ toValue MapIndex4{} = 6+ toValue MapIndex5{} = 7+ fromValue 0 = MapIndexShift+ fromValue 1 = MapIndexLock+ fromValue 2 = MapIndexControl+ fromValue 3 = MapIndex1+ fromValue 4 = MapIndex2+ fromValue 5 = MapIndex3+ fromValue 6 = MapIndex4+ fromValue 7 = MapIndex5+ +data SetModifierMapping = MkSetModifierMapping{keycodes_per_modifier_SetModifierMapping+ :: CARD8,+ keycodes_SetModifierMapping :: [KEYCODE]}+ deriving (Show, Typeable)+ +instance Serialize SetModifierMapping where+ serialize x+ = do putWord8 118+ serialize (keycodes_per_modifier_SetModifierMapping x)+ serialize (convertBytesToRequestSize (size x) :: INT16)+ serializeList (keycodes_SetModifierMapping x)+ putSkip (requiredPadding (size x))+ size x+ = 3 + size (keycodes_per_modifier_SetModifierMapping x) ++ sum (map size (keycodes_SetModifierMapping x))+ +data SetModifierMappingReply = MkSetModifierMappingReply{status_SetModifierMappingReply+ :: BYTE}+ deriving (Show, Typeable)+ +instance Deserialize SetModifierMappingReply where+ deserialize+ = do skip 1+ status <- deserialize+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkSetModifierMappingReply status)+ +data GetModifierMapping = MkGetModifierMapping{}+ deriving (Show, Typeable)+ +instance Serialize GetModifierMapping where+ serialize x+ = do putWord8 119+ putSkip 1+ serialize (convertBytesToRequestSize (size x) :: INT16)+ putSkip (requiredPadding (size x))+ size x = 4+ +data GetModifierMappingReply = MkGetModifierMappingReply{keycodes_per_modifier_GetModifierMappingReply+ :: CARD8,+ keycodes_GetModifierMappingReply ::+ [KEYCODE]}+ deriving (Show, Typeable)+ +instance Deserialize GetModifierMappingReply where+ deserialize+ = do skip 1+ keycodes_per_modifier <- deserialize+ skip 2+ length <- deserialize+ skip 24+ keycodes <- deserializeList+ (fromIntegral (fromIntegral (keycodes_per_modifier * 8)))+ let _ = isCard32 length+ return (MkGetModifierMappingReply keycodes_per_modifier keycodes)
+ patched/Graphics/XHB/Gen/Xv.hs view
@@ -0,0 +1,209 @@+module Graphics.XHB.Gen.Xv+ (extension, queryExtension, queryAdaptors, queryEncodings,+ grabPort, ungrabPort, putVideo, putStill, getVideo, getStill,+ stopVideo, selectVideoNotify, selectPortNotify, queryBestSize,+ setPortAttribute, getPortAttribute, queryPortAttributes,+ listImageFormats, queryImageAttributes, putImage, shmPutImage,+ module Graphics.XHB.Gen.Xv.Types)+ where+import Graphics.XHB.Gen.Xv.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 (QueryExtension(..), QueryExtensionReply(..),+ QueryBestSize(..), QueryBestSizeReply(..), PutImage(..),+ deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.Shm.Types+ hiding (PutImage(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Shm.Types+ +extension :: ExtensionId+extension = "XVideo"+ +queryExtension ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryExtensionReply)+queryExtension c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryExtension+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryAdaptors ::+ Graphics.XHB.Connection.Types.Connection ->+ WINDOW -> IO (Receipt QueryAdaptorsReply)+queryAdaptors c window+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryAdaptors window+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryEncodings ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> IO (Receipt QueryEncodingsReply)+queryEncodings c port+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryEncodings port+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +grabPort ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> TIMESTAMP -> IO (Receipt GrabPortReply)+grabPort c port time+ = do receipt <- newEmptyReceiptIO+ let req = MkGrabPort port time+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +ungrabPort ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> TIMESTAMP -> IO ()+ungrabPort c port time+ = do let req = MkUngrabPort port time+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +putVideo ::+ Graphics.XHB.Connection.Types.Connection -> PutVideo -> IO ()+putVideo c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +putStill ::+ Graphics.XHB.Connection.Types.Connection -> PutStill -> IO ()+putStill c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getVideo ::+ Graphics.XHB.Connection.Types.Connection -> GetVideo -> IO ()+getVideo c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getStill ::+ Graphics.XHB.Connection.Types.Connection -> GetStill -> IO ()+getStill c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +stopVideo ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> DRAWABLE -> IO ()+stopVideo c port drawable+ = do let req = MkStopVideo port drawable+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +selectVideoNotify ::+ Graphics.XHB.Connection.Types.Connection ->+ DRAWABLE -> BOOL -> IO ()+selectVideoNotify c drawable onoff+ = do let req = MkSelectVideoNotify drawable onoff+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +selectPortNotify ::+ Graphics.XHB.Connection.Types.Connection -> PORT -> BOOL -> IO ()+selectPortNotify c port onoff+ = do let req = MkSelectPortNotify port onoff+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +queryBestSize ::+ Graphics.XHB.Connection.Types.Connection ->+ QueryBestSize -> IO (Receipt QueryBestSizeReply)+queryBestSize c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +setPortAttribute ::+ Graphics.XHB.Connection.Types.Connection ->+ SetPortAttribute -> IO ()+setPortAttribute c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +getPortAttribute ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> ATOM -> IO (Receipt GetPortAttributeReply)+getPortAttribute c port attribute+ = do receipt <- newEmptyReceiptIO+ let req = MkGetPortAttribute port attribute+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryPortAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> IO (Receipt QueryPortAttributesReply)+queryPortAttributes c port+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryPortAttributes port+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +listImageFormats ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> IO (Receipt ListImageFormatsReply)+listImageFormats c port+ = do receipt <- newEmptyReceiptIO+ let req = MkListImageFormats port+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +queryImageAttributes ::+ Graphics.XHB.Connection.Types.Connection ->+ QueryImageAttributes -> IO (Receipt QueryImageAttributesReply)+queryImageAttributes c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +putImage ::+ Graphics.XHB.Connection.Types.Connection -> PutImage -> IO ()+putImage c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +shmPutImage ::+ Graphics.XHB.Connection.Types.Connection -> ShmPutImage -> IO ()+shmPutImage c req+ = do putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk
+ patched/Graphics/XHB/Gen/Xv/Types.hs view
@@ -0,0 +1,1102 @@+module Graphics.XHB.Gen.Xv.Types+ (deserializeError, deserializeEvent, PORT, ENCODING, Type(..),+ ImageFormatInfoType(..), ImageFormatInfoFormat(..),+ AttributeFlag(..), Rational(..), Format(..), AdaptorInfo(..),+ EncodingInfo(..), Image(..), AttributeInfo(..),+ ImageFormatInfo(..), VideoNotify(..), PortNotify(..),+ QueryExtension(..), QueryExtensionReply(..), QueryAdaptors(..),+ QueryAdaptorsReply(..), QueryEncodings(..),+ QueryEncodingsReply(..), GrabPort(..), GrabPortReply(..),+ UngrabPort(..), PutVideo(..), PutStill(..), GetVideo(..),+ GetStill(..), StopVideo(..), SelectVideoNotify(..),+ SelectPortNotify(..), QueryBestSize(..), QueryBestSizeReply(..),+ SetPortAttribute(..), GetPortAttribute(..),+ GetPortAttributeReply(..), QueryPortAttributes(..),+ QueryPortAttributesReply(..), ListImageFormats(..),+ ListImageFormatsReply(..), QueryImageAttributes(..),+ QueryImageAttributesReply(..), PutImage(..), ShmPutImage(..))+ where+import Prelude hiding (Rational)+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xproto.Types+ hiding (QueryExtension(..), QueryExtensionReply(..),+ QueryBestSize(..), QueryBestSizeReply(..), PutImage(..),+ deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xproto.Types+import Graphics.XHB.Gen.Shm.Types+ hiding (PutImage(..), deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Shm.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent 0+ = return (liftM toEvent (deserialize :: Get VideoNotify))+deserializeEvent 1+ = return (liftM toEvent (deserialize :: Get PortNotify))+deserializeEvent _ = Nothing+ +newtype PORT = MkPORT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype ENCODING = MkENCODING Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data Type = TypeInputMask+ | TypeOutputMask+ | TypeVideoMask+ | TypeStillMask+ | TypeImageMask+ +instance BitEnum Type where+ toBit TypeInputMask{} = 0+ toBit TypeOutputMask{} = 1+ toBit TypeVideoMask{} = 2+ toBit TypeStillMask{} = 3+ toBit TypeImageMask{} = 4+ fromBit 0 = TypeInputMask+ fromBit 1 = TypeOutputMask+ fromBit 2 = TypeVideoMask+ fromBit 3 = TypeStillMask+ fromBit 4 = TypeImageMask+ +data ImageFormatInfoType = ImageFormatInfoTypeRGB+ | ImageFormatInfoTypeYUV+ +instance SimpleEnum ImageFormatInfoType where+ toValue ImageFormatInfoTypeRGB{} = 0+ toValue ImageFormatInfoTypeYUV{} = 1+ fromValue 0 = ImageFormatInfoTypeRGB+ fromValue 1 = ImageFormatInfoTypeYUV+ +data ImageFormatInfoFormat = ImageFormatInfoFormatPacked+ | ImageFormatInfoFormatPlanar+ +instance SimpleEnum ImageFormatInfoFormat where+ toValue ImageFormatInfoFormatPacked{} = 0+ toValue ImageFormatInfoFormatPlanar{} = 1+ fromValue 0 = ImageFormatInfoFormatPacked+ fromValue 1 = ImageFormatInfoFormatPlanar+ +data AttributeFlag = AttributeFlagGettable+ | AttributeFlagSettable+ +instance BitEnum AttributeFlag where+ toBit AttributeFlagGettable{} = 0+ toBit AttributeFlagSettable{} = 1+ fromBit 0 = AttributeFlagGettable+ fromBit 1 = AttributeFlagSettable+ +data Rational = MkRational{numerator_Rational :: INT32,+ denominator_Rational :: INT32}+ deriving (Show, Typeable)+ +instance Serialize Rational where+ serialize x+ = do serialize (numerator_Rational x)+ serialize (denominator_Rational x)+ size x+ = size (numerator_Rational x) + size (denominator_Rational x)+ +instance Deserialize Rational where+ deserialize+ = do numerator <- deserialize+ denominator <- deserialize+ return (MkRational numerator denominator)+ +data Format = MkFormat{visual_Format :: VISUALID,+ depth_Format :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize Format where+ serialize x+ = do serialize (visual_Format x)+ serialize (depth_Format x)+ putSkip 3+ size x = size (visual_Format x) + size (depth_Format x) + 3+ +instance Deserialize Format where+ deserialize+ = do visual <- deserialize+ depth <- deserialize+ skip 3+ return (MkFormat visual depth)+ +data AdaptorInfo = MkAdaptorInfo{base_id_AdaptorInfo :: PORT,+ name_size_AdaptorInfo :: CARD16, num_ports_AdaptorInfo :: CARD16,+ num_formats_AdaptorInfo :: CARD16, type_AdaptorInfo :: CARD8,+ name_AdaptorInfo :: [CChar], formats_AdaptorInfo :: [Format]}+ deriving (Show, Typeable)+ +instance Serialize AdaptorInfo where+ serialize x+ = do serialize (base_id_AdaptorInfo x)+ serialize (name_size_AdaptorInfo x)+ serialize (num_ports_AdaptorInfo x)+ serialize (num_formats_AdaptorInfo x)+ serialize (type_AdaptorInfo x)+ putSkip 1+ serializeList (name_AdaptorInfo x)+ serializeList (formats_AdaptorInfo x)+ size x+ = size (base_id_AdaptorInfo x) + size (name_size_AdaptorInfo x) ++ size (num_ports_AdaptorInfo x)+ + size (num_formats_AdaptorInfo x)+ + size (type_AdaptorInfo x)+ + 1+ + sum (map size (name_AdaptorInfo x))+ + sum (map size (formats_AdaptorInfo x))+ +instance Deserialize AdaptorInfo where+ deserialize+ = do base_id <- deserialize+ name_size <- deserialize+ num_ports <- deserialize+ num_formats <- deserialize+ type_ <- deserialize+ skip 1+ name <- deserializeList (fromIntegral name_size)+ formats <- deserializeList (fromIntegral num_formats)+ return+ (MkAdaptorInfo base_id name_size num_ports num_formats type_ name+ formats)+ +data EncodingInfo = MkEncodingInfo{encoding_EncodingInfo ::+ ENCODING,+ name_size_EncodingInfo :: CARD16, width_EncodingInfo :: CARD16,+ height_EncodingInfo :: CARD16, rate_EncodingInfo :: Rational,+ name_EncodingInfo :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize EncodingInfo where+ serialize x+ = do serialize (encoding_EncodingInfo x)+ serialize (name_size_EncodingInfo x)+ serialize (width_EncodingInfo x)+ serialize (height_EncodingInfo x)+ putSkip 2+ serialize (rate_EncodingInfo x)+ serializeList (name_EncodingInfo x)+ size x+ = size (encoding_EncodingInfo x) + size (name_size_EncodingInfo x)+ + size (width_EncodingInfo x)+ + size (height_EncodingInfo x)+ + 2+ + size (rate_EncodingInfo x)+ + sum (map size (name_EncodingInfo x))+ +instance Deserialize EncodingInfo where+ deserialize+ = do encoding <- deserialize+ name_size <- deserialize+ width <- deserialize+ height <- deserialize+ skip 2+ rate <- deserialize+ name <- deserializeList (fromIntegral name_size)+ return (MkEncodingInfo encoding name_size width height rate name)+ +data Image = MkImage{id_Image :: CARD32, width_Image :: CARD16,+ height_Image :: CARD16, data_size_Image :: CARD32,+ num_planes_Image :: CARD32, pitches_Image :: [CARD32],+ offsets_Image :: [CARD32], data_Image :: [CARD8]}+ deriving (Show, Typeable)+ +instance Serialize Image where+ serialize x+ = do serialize (id_Image x)+ serialize (width_Image x)+ serialize (height_Image x)+ serialize (data_size_Image x)+ serialize (num_planes_Image x)+ serializeList (pitches_Image x)+ serializeList (offsets_Image x)+ serializeList (data_Image x)+ size x+ = size (id_Image x) + size (width_Image x) + size (height_Image x)+ + size (data_size_Image x)+ + size (num_planes_Image x)+ + sum (map size (pitches_Image x))+ + sum (map size (offsets_Image x))+ + sum (map size (data_Image x))+ +instance Deserialize Image where+ deserialize+ = do id <- deserialize+ width <- deserialize+ height <- deserialize+ data_size <- deserialize+ num_planes <- deserialize+ pitches <- deserializeList (fromIntegral num_planes)+ offsets <- deserializeList (fromIntegral num_planes)+ data_ <- deserializeList (fromIntegral data_size)+ return+ (MkImage id width height data_size num_planes pitches offsets+ data_)+ +data AttributeInfo = MkAttributeInfo{flags_AttributeInfo :: CARD32,+ min_AttributeInfo :: INT32, max_AttributeInfo :: INT32,+ size_AttributeInfo :: CARD32, name_AttributeInfo :: [CChar]}+ deriving (Show, Typeable)+ +instance Serialize AttributeInfo where+ serialize x+ = do serialize (flags_AttributeInfo x)+ serialize (min_AttributeInfo x)+ serialize (max_AttributeInfo x)+ serialize (size_AttributeInfo x)+ serializeList (name_AttributeInfo x)+ size x+ = size (flags_AttributeInfo x) + size (min_AttributeInfo x) ++ size (max_AttributeInfo x)+ + size (size_AttributeInfo x)+ + sum (map size (name_AttributeInfo x))+ +instance Deserialize AttributeInfo where+ deserialize+ = do flags <- deserialize+ min <- deserialize+ max <- deserialize+ size <- deserialize+ name <- deserializeList (fromIntegral size)+ return (MkAttributeInfo flags min max size name)+ +data ImageFormatInfo = MkImageFormatInfo{id_ImageFormatInfo ::+ CARD32,+ type_ImageFormatInfo :: CARD8,+ byte_order_ImageFormatInfo :: CARD8,+ guid_ImageFormatInfo :: [CARD8],+ bpp_ImageFormatInfo :: CARD8,+ num_planes_ImageFormatInfo :: CARD8,+ depth_ImageFormatInfo :: CARD8,+ red_mask_ImageFormatInfo :: CARD32,+ green_mask_ImageFormatInfo :: CARD32,+ blue_mask_ImageFormatInfo :: CARD32,+ format_ImageFormatInfo :: CARD8,+ y_sample_bits_ImageFormatInfo :: CARD32,+ u_sample_bits_ImageFormatInfo :: CARD32,+ v_sample_bits_ImageFormatInfo :: CARD32,+ vhorz_y_period_ImageFormatInfo :: CARD32,+ vhorz_u_period_ImageFormatInfo :: CARD32,+ vhorz_v_period_ImageFormatInfo :: CARD32,+ vvert_y_period_ImageFormatInfo :: CARD32,+ vvert_u_period_ImageFormatInfo :: CARD32,+ vvert_v_period_ImageFormatInfo :: CARD32,+ vcomp_order_ImageFormatInfo :: [CARD8],+ vscanline_order_ImageFormatInfo :: CARD8}+ deriving (Show, Typeable)+ +instance Serialize ImageFormatInfo where+ serialize x+ = do serialize (id_ImageFormatInfo x)+ serialize (type_ImageFormatInfo x)+ serialize (byte_order_ImageFormatInfo x)+ putSkip 2+ serializeList (guid_ImageFormatInfo x)+ serialize (bpp_ImageFormatInfo x)+ serialize (num_planes_ImageFormatInfo x)+ putSkip 2+ serialize (depth_ImageFormatInfo x)+ putSkip 3+ serialize (red_mask_ImageFormatInfo x)+ serialize (green_mask_ImageFormatInfo x)+ serialize (blue_mask_ImageFormatInfo x)+ serialize (format_ImageFormatInfo x)+ putSkip 3+ serialize (y_sample_bits_ImageFormatInfo x)+ serialize (u_sample_bits_ImageFormatInfo x)+ serialize (v_sample_bits_ImageFormatInfo x)+ serialize (vhorz_y_period_ImageFormatInfo x)+ serialize (vhorz_u_period_ImageFormatInfo x)+ serialize (vhorz_v_period_ImageFormatInfo x)+ serialize (vvert_y_period_ImageFormatInfo x)+ serialize (vvert_u_period_ImageFormatInfo x)+ serialize (vvert_v_period_ImageFormatInfo x)+ serializeList (vcomp_order_ImageFormatInfo x)+ serialize (vscanline_order_ImageFormatInfo x)+ putSkip 11+ size x+ = size (id_ImageFormatInfo x) + size (type_ImageFormatInfo x) ++ size (byte_order_ImageFormatInfo x)+ + 2+ + sum (map size (guid_ImageFormatInfo x))+ + size (bpp_ImageFormatInfo x)+ + size (num_planes_ImageFormatInfo x)+ + 2+ + size (depth_ImageFormatInfo x)+ + 3+ + size (red_mask_ImageFormatInfo x)+ + size (green_mask_ImageFormatInfo x)+ + size (blue_mask_ImageFormatInfo x)+ + size (format_ImageFormatInfo x)+ + 3+ + size (y_sample_bits_ImageFormatInfo x)+ + size (u_sample_bits_ImageFormatInfo x)+ + size (v_sample_bits_ImageFormatInfo x)+ + size (vhorz_y_period_ImageFormatInfo x)+ + size (vhorz_u_period_ImageFormatInfo x)+ + size (vhorz_v_period_ImageFormatInfo x)+ + size (vvert_y_period_ImageFormatInfo x)+ + size (vvert_u_period_ImageFormatInfo x)+ + size (vvert_v_period_ImageFormatInfo x)+ + sum (map size (vcomp_order_ImageFormatInfo x))+ + size (vscanline_order_ImageFormatInfo x)+ + 11+ +instance Deserialize ImageFormatInfo where+ deserialize+ = do id <- deserialize+ type_ <- deserialize+ byte_order <- deserialize+ skip 2+ guid <- deserializeList (fromIntegral 16)+ bpp <- deserialize+ num_planes <- deserialize+ skip 2+ depth <- deserialize+ skip 3+ red_mask <- deserialize+ green_mask <- deserialize+ blue_mask <- deserialize+ format <- deserialize+ skip 3+ y_sample_bits <- deserialize+ u_sample_bits <- deserialize+ v_sample_bits <- deserialize+ vhorz_y_period <- deserialize+ vhorz_u_period <- deserialize+ vhorz_v_period <- deserialize+ vvert_y_period <- deserialize+ vvert_u_period <- deserialize+ vvert_v_period <- deserialize+ vcomp_order <- deserializeList (fromIntegral 32)+ vscanline_order <- deserialize+ skip 11+ return+ (MkImageFormatInfo id type_ byte_order guid bpp num_planes depth+ red_mask+ green_mask+ blue_mask+ format+ y_sample_bits+ u_sample_bits+ v_sample_bits+ vhorz_y_period+ vhorz_u_period+ vhorz_v_period+ vvert_y_period+ vvert_u_period+ vvert_v_period+ vcomp_order+ vscanline_order)+ +data VideoNotify = MkVideoNotify{reason_VideoNotify :: BYTE,+ time_VideoNotify :: TIMESTAMP, drawable_VideoNotify :: DRAWABLE,+ port_VideoNotify :: PORT}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event VideoNotify+ +instance Deserialize VideoNotify where+ deserialize+ = do skip 1+ reason <- deserialize+ skip 2+ time <- deserialize+ drawable <- deserialize+ port <- deserialize+ return (MkVideoNotify reason time drawable port)+ +data PortNotify = MkPortNotify{time_PortNotify :: TIMESTAMP,+ port_PortNotify :: PORT, attribute_PortNotify :: ATOM,+ value_PortNotify :: INT32}+ deriving (Show, Typeable)+ +instance Graphics.XHB.Shared.Event PortNotify+ +instance Deserialize PortNotify where+ deserialize+ = do skip 1+ skip 1+ skip 2+ time <- deserialize+ port <- deserialize+ attribute <- deserialize+ value <- deserialize+ return (MkPortNotify time port attribute value)+ +data QueryExtension = MkQueryExtension{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryExtension where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryExtensionReply = MkQueryExtensionReply{major_QueryExtensionReply+ :: CARD16,+ minor_QueryExtensionReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryExtensionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major <- deserialize+ minor <- deserialize+ let _ = isCard32 length+ return (MkQueryExtensionReply major minor)+ +data QueryAdaptors = MkQueryAdaptors{window_QueryAdaptors ::+ WINDOW}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryAdaptors where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4 + size (window_QueryAdaptors x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (window_QueryAdaptors x)+ putSkip (requiredPadding size__)+ +data QueryAdaptorsReply = MkQueryAdaptorsReply{num_adaptors_QueryAdaptorsReply+ :: CARD16,+ info_QueryAdaptorsReply :: [AdaptorInfo]}+ deriving (Show, Typeable)+ +instance Deserialize QueryAdaptorsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_adaptors <- deserialize+ skip 22+ info <- deserializeList (fromIntegral num_adaptors)+ let _ = isCard32 length+ return (MkQueryAdaptorsReply num_adaptors info)+ +data QueryEncodings = MkQueryEncodings{port_QueryEncodings :: PORT}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryEncodings where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__ = 4 + size (port_QueryEncodings x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_QueryEncodings x)+ putSkip (requiredPadding size__)+ +data QueryEncodingsReply = MkQueryEncodingsReply{num_encodings_QueryEncodingsReply+ :: CARD16,+ info_QueryEncodingsReply :: [EncodingInfo]}+ deriving (Show, Typeable)+ +instance Deserialize QueryEncodingsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_encodings <- deserialize+ skip 22+ info <- deserializeList (fromIntegral num_encodings)+ let _ = isCard32 length+ return (MkQueryEncodingsReply num_encodings info)+ +data GrabPort = MkGrabPort{port_GrabPort :: PORT,+ time_GrabPort :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance ExtensionRequest GrabPort where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (port_GrabPort x) + size (time_GrabPort x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_GrabPort x)+ serialize (time_GrabPort x)+ putSkip (requiredPadding size__)+ +data GrabPortReply = MkGrabPortReply{result_GrabPortReply :: BYTE}+ deriving (Show, Typeable)+ +instance Deserialize GrabPortReply where+ deserialize+ = do skip 1+ result <- deserialize+ skip 2+ length <- deserialize+ let _ = isCard32 length+ return (MkGrabPortReply result)+ +data UngrabPort = MkUngrabPort{port_UngrabPort :: PORT,+ time_UngrabPort :: TIMESTAMP}+ deriving (Show, Typeable)+ +instance ExtensionRequest UngrabPort where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (port_UngrabPort x) + size (time_UngrabPort x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_UngrabPort x)+ serialize (time_UngrabPort x)+ putSkip (requiredPadding size__)+ +data PutVideo = MkPutVideo{port_PutVideo :: PORT,+ drawable_PutVideo :: DRAWABLE, gc_PutVideo :: GCONTEXT,+ vid_x_PutVideo :: INT16, vid_y_PutVideo :: INT16,+ vid_w_PutVideo :: CARD16, vid_h_PutVideo :: CARD16,+ drw_x_PutVideo :: INT16, drw_y_PutVideo :: INT16,+ drw_w_PutVideo :: CARD16, drw_h_PutVideo :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest PutVideo where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__+ = 4 + size (port_PutVideo x) + size (drawable_PutVideo x) ++ size (gc_PutVideo x)+ + size (vid_x_PutVideo x)+ + size (vid_y_PutVideo x)+ + size (vid_w_PutVideo x)+ + size (vid_h_PutVideo x)+ + size (drw_x_PutVideo x)+ + size (drw_y_PutVideo x)+ + size (drw_w_PutVideo x)+ + size (drw_h_PutVideo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_PutVideo x)+ serialize (drawable_PutVideo x)+ serialize (gc_PutVideo x)+ serialize (vid_x_PutVideo x)+ serialize (vid_y_PutVideo x)+ serialize (vid_w_PutVideo x)+ serialize (vid_h_PutVideo x)+ serialize (drw_x_PutVideo x)+ serialize (drw_y_PutVideo x)+ serialize (drw_w_PutVideo x)+ serialize (drw_h_PutVideo x)+ putSkip (requiredPadding size__)+ +data PutStill = MkPutStill{port_PutStill :: PORT,+ drawable_PutStill :: DRAWABLE, gc_PutStill :: GCONTEXT,+ vid_x_PutStill :: INT16, vid_y_PutStill :: INT16,+ vid_w_PutStill :: CARD16, vid_h_PutStill :: CARD16,+ drw_x_PutStill :: INT16, drw_y_PutStill :: INT16,+ drw_w_PutStill :: CARD16, drw_h_PutStill :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest PutStill where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (port_PutStill x) + size (drawable_PutStill x) ++ size (gc_PutStill x)+ + size (vid_x_PutStill x)+ + size (vid_y_PutStill x)+ + size (vid_w_PutStill x)+ + size (vid_h_PutStill x)+ + size (drw_x_PutStill x)+ + size (drw_y_PutStill x)+ + size (drw_w_PutStill x)+ + size (drw_h_PutStill x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_PutStill x)+ serialize (drawable_PutStill x)+ serialize (gc_PutStill x)+ serialize (vid_x_PutStill x)+ serialize (vid_y_PutStill x)+ serialize (vid_w_PutStill x)+ serialize (vid_h_PutStill x)+ serialize (drw_x_PutStill x)+ serialize (drw_y_PutStill x)+ serialize (drw_w_PutStill x)+ serialize (drw_h_PutStill x)+ putSkip (requiredPadding size__)+ +data GetVideo = MkGetVideo{port_GetVideo :: PORT,+ drawable_GetVideo :: DRAWABLE, gc_GetVideo :: GCONTEXT,+ vid_x_GetVideo :: INT16, vid_y_GetVideo :: INT16,+ vid_w_GetVideo :: CARD16, vid_h_GetVideo :: CARD16,+ drw_x_GetVideo :: INT16, drw_y_GetVideo :: INT16,+ drw_w_GetVideo :: CARD16, drw_h_GetVideo :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetVideo where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__+ = 4 + size (port_GetVideo x) + size (drawable_GetVideo x) ++ size (gc_GetVideo x)+ + size (vid_x_GetVideo x)+ + size (vid_y_GetVideo x)+ + size (vid_w_GetVideo x)+ + size (vid_h_GetVideo x)+ + size (drw_x_GetVideo x)+ + size (drw_y_GetVideo x)+ + size (drw_w_GetVideo x)+ + size (drw_h_GetVideo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_GetVideo x)+ serialize (drawable_GetVideo x)+ serialize (gc_GetVideo x)+ serialize (vid_x_GetVideo x)+ serialize (vid_y_GetVideo x)+ serialize (vid_w_GetVideo x)+ serialize (vid_h_GetVideo x)+ serialize (drw_x_GetVideo x)+ serialize (drw_y_GetVideo x)+ serialize (drw_w_GetVideo x)+ serialize (drw_h_GetVideo x)+ putSkip (requiredPadding size__)+ +data GetStill = MkGetStill{port_GetStill :: PORT,+ drawable_GetStill :: DRAWABLE, gc_GetStill :: GCONTEXT,+ vid_x_GetStill :: INT16, vid_y_GetStill :: INT16,+ vid_w_GetStill :: CARD16, vid_h_GetStill :: CARD16,+ drw_x_GetStill :: INT16, drw_y_GetStill :: INT16,+ drw_w_GetStill :: CARD16, drw_h_GetStill :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetStill where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (port_GetStill x) + size (drawable_GetStill x) ++ size (gc_GetStill x)+ + size (vid_x_GetStill x)+ + size (vid_y_GetStill x)+ + size (vid_w_GetStill x)+ + size (vid_h_GetStill x)+ + size (drw_x_GetStill x)+ + size (drw_y_GetStill x)+ + size (drw_w_GetStill x)+ + size (drw_h_GetStill x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_GetStill x)+ serialize (drawable_GetStill x)+ serialize (gc_GetStill x)+ serialize (vid_x_GetStill x)+ serialize (vid_y_GetStill x)+ serialize (vid_w_GetStill x)+ serialize (vid_h_GetStill x)+ serialize (drw_x_GetStill x)+ serialize (drw_y_GetStill x)+ serialize (drw_w_GetStill x)+ serialize (drw_h_GetStill x)+ putSkip (requiredPadding size__)+ +data StopVideo = MkStopVideo{port_StopVideo :: PORT,+ drawable_StopVideo :: DRAWABLE}+ deriving (Show, Typeable)+ +instance ExtensionRequest StopVideo where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 9+ let size__+ = 4 + size (port_StopVideo x) + size (drawable_StopVideo x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_StopVideo x)+ serialize (drawable_StopVideo x)+ putSkip (requiredPadding size__)+ +data SelectVideoNotify = MkSelectVideoNotify{drawable_SelectVideoNotify+ :: DRAWABLE,+ onoff_SelectVideoNotify :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectVideoNotify where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 10+ let size__+ = 4 + size (drawable_SelectVideoNotify x) ++ size (onoff_SelectVideoNotify x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (drawable_SelectVideoNotify x)+ serialize (onoff_SelectVideoNotify x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data SelectPortNotify = MkSelectPortNotify{port_SelectPortNotify ::+ PORT,+ onoff_SelectPortNotify :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest SelectPortNotify where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 11+ let size__+ = 4 + size (port_SelectPortNotify x) ++ size (onoff_SelectPortNotify x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_SelectPortNotify x)+ serialize (onoff_SelectPortNotify x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data QueryBestSize = MkQueryBestSize{port_QueryBestSize :: PORT,+ vid_w_QueryBestSize :: CARD16, vid_h_QueryBestSize :: CARD16,+ drw_w_QueryBestSize :: CARD16, drw_h_QueryBestSize :: CARD16,+ motion_QueryBestSize :: BOOL}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryBestSize where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 12+ let size__+ = 4 + size (port_QueryBestSize x) + size (vid_w_QueryBestSize x) ++ size (vid_h_QueryBestSize x)+ + size (drw_w_QueryBestSize x)+ + size (drw_h_QueryBestSize x)+ + size (motion_QueryBestSize x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_QueryBestSize x)+ serialize (vid_w_QueryBestSize x)+ serialize (vid_h_QueryBestSize x)+ serialize (drw_w_QueryBestSize x)+ serialize (drw_h_QueryBestSize x)+ serialize (motion_QueryBestSize x)+ putSkip 3+ putSkip (requiredPadding size__)+ +data QueryBestSizeReply = MkQueryBestSizeReply{actual_width_QueryBestSizeReply+ :: CARD16,+ actual_height_QueryBestSizeReply :: CARD16}+ deriving (Show, Typeable)+ +instance Deserialize QueryBestSizeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ actual_width <- deserialize+ actual_height <- deserialize+ let _ = isCard32 length+ return (MkQueryBestSizeReply actual_width actual_height)+ +data SetPortAttribute = MkSetPortAttribute{port_SetPortAttribute ::+ PORT,+ attribute_SetPortAttribute :: ATOM,+ value_SetPortAttribute :: INT32}+ deriving (Show, Typeable)+ +instance ExtensionRequest SetPortAttribute where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 13+ let size__+ = 4 + size (port_SetPortAttribute x) ++ size (attribute_SetPortAttribute x)+ + size (value_SetPortAttribute x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_SetPortAttribute x)+ serialize (attribute_SetPortAttribute x)+ serialize (value_SetPortAttribute x)+ putSkip (requiredPadding size__)+ +data GetPortAttribute = MkGetPortAttribute{port_GetPortAttribute ::+ PORT,+ attribute_GetPortAttribute :: ATOM}+ deriving (Show, Typeable)+ +instance ExtensionRequest GetPortAttribute where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 14+ let size__+ = 4 + size (port_GetPortAttribute x) ++ size (attribute_GetPortAttribute x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_GetPortAttribute x)+ serialize (attribute_GetPortAttribute x)+ putSkip (requiredPadding size__)+ +data GetPortAttributeReply = MkGetPortAttributeReply{value_GetPortAttributeReply+ :: INT32}+ deriving (Show, Typeable)+ +instance Deserialize GetPortAttributeReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ value <- deserialize+ let _ = isCard32 length+ return (MkGetPortAttributeReply value)+ +data QueryPortAttributes = MkQueryPortAttributes{port_QueryPortAttributes+ :: PORT}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryPortAttributes where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 15+ let size__ = 4 + size (port_QueryPortAttributes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_QueryPortAttributes x)+ putSkip (requiredPadding size__)+ +data QueryPortAttributesReply = MkQueryPortAttributesReply{num_attributes_QueryPortAttributesReply+ :: CARD32,+ text_size_QueryPortAttributesReply ::+ CARD32,+ attributes_QueryPortAttributesReply ::+ [AttributeInfo]}+ deriving (Show, Typeable)+ +instance Deserialize QueryPortAttributesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_attributes <- deserialize+ text_size <- deserialize+ skip 16+ attributes <- deserializeList (fromIntegral num_attributes)+ let _ = isCard32 length+ return+ (MkQueryPortAttributesReply num_attributes text_size attributes)+ +data ListImageFormats = MkListImageFormats{port_ListImageFormats ::+ PORT}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListImageFormats where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 16+ let size__ = 4 + size (port_ListImageFormats x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_ListImageFormats x)+ putSkip (requiredPadding size__)+ +data ListImageFormatsReply = MkListImageFormatsReply{num_formats_ListImageFormatsReply+ :: CARD32,+ format_ListImageFormatsReply ::+ [ImageFormatInfo]}+ deriving (Show, Typeable)+ +instance Deserialize ListImageFormatsReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_formats <- deserialize+ skip 20+ format <- deserializeList (fromIntegral num_formats)+ let _ = isCard32 length+ return (MkListImageFormatsReply num_formats format)+ +data QueryImageAttributes = MkQueryImageAttributes{port_QueryImageAttributes+ :: PORT,+ id_QueryImageAttributes :: CARD32,+ width_QueryImageAttributes :: CARD16,+ height_QueryImageAttributes :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryImageAttributes where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 17+ let size__+ = 4 + size (port_QueryImageAttributes x) ++ size (id_QueryImageAttributes x)+ + size (width_QueryImageAttributes x)+ + size (height_QueryImageAttributes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_QueryImageAttributes x)+ serialize (id_QueryImageAttributes x)+ serialize (width_QueryImageAttributes x)+ serialize (height_QueryImageAttributes x)+ putSkip (requiredPadding size__)+ +data QueryImageAttributesReply = MkQueryImageAttributesReply{num_planes_QueryImageAttributesReply+ :: CARD32,+ data_size_QueryImageAttributesReply ::+ CARD32,+ width_QueryImageAttributesReply ::+ CARD16,+ height_QueryImageAttributesReply ::+ CARD16,+ pitches_QueryImageAttributesReply ::+ [CARD32],+ offsets_QueryImageAttributesReply ::+ [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize QueryImageAttributesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num_planes <- deserialize+ data_size <- deserialize+ width <- deserialize+ height <- deserialize+ skip 12+ pitches <- deserializeList (fromIntegral num_planes)+ offsets <- deserializeList (fromIntegral num_planes)+ let _ = isCard32 length+ return+ (MkQueryImageAttributesReply num_planes data_size width height+ pitches+ offsets)+ +data PutImage = MkPutImage{port_PutImage :: PORT,+ drawable_PutImage :: DRAWABLE, gc_PutImage :: GCONTEXT,+ id_PutImage :: CARD32, src_x_PutImage :: INT16,+ src_y_PutImage :: INT16, src_w_PutImage :: CARD16,+ src_h_PutImage :: CARD16, drw_x_PutImage :: INT16,+ drw_y_PutImage :: INT16, drw_w_PutImage :: CARD16,+ drw_h_PutImage :: CARD16, width_PutImage :: CARD16,+ height_PutImage :: CARD16, data_PutImage :: [CARD8]}+ deriving (Show, Typeable)+ +instance ExtensionRequest PutImage where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 18+ let size__+ = 4 + size (port_PutImage x) + size (drawable_PutImage x) ++ size (gc_PutImage x)+ + size (id_PutImage x)+ + size (src_x_PutImage x)+ + size (src_y_PutImage x)+ + size (src_w_PutImage x)+ + size (src_h_PutImage x)+ + size (drw_x_PutImage x)+ + size (drw_y_PutImage x)+ + size (drw_w_PutImage x)+ + size (drw_h_PutImage x)+ + size (width_PutImage x)+ + size (height_PutImage x)+ + sum (map size (data_PutImage x))+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_PutImage x)+ serialize (drawable_PutImage x)+ serialize (gc_PutImage x)+ serialize (id_PutImage x)+ serialize (src_x_PutImage x)+ serialize (src_y_PutImage x)+ serialize (src_w_PutImage x)+ serialize (src_h_PutImage x)+ serialize (drw_x_PutImage x)+ serialize (drw_y_PutImage x)+ serialize (drw_w_PutImage x)+ serialize (drw_h_PutImage x)+ serialize (width_PutImage x)+ serialize (height_PutImage x)+ serializeList (data_PutImage x)+ putSkip (requiredPadding size__)+ +data ShmPutImage = MkShmPutImage{port_ShmPutImage :: PORT,+ drawable_ShmPutImage :: DRAWABLE, gc_ShmPutImage :: GCONTEXT,+ shmseg_ShmPutImage :: SEG, id_ShmPutImage :: CARD32,+ offset_ShmPutImage :: CARD32, src_x_ShmPutImage :: INT16,+ src_y_ShmPutImage :: INT16, src_w_ShmPutImage :: CARD16,+ src_h_ShmPutImage :: CARD16, drw_x_ShmPutImage :: INT16,+ drw_y_ShmPutImage :: INT16, drw_w_ShmPutImage :: CARD16,+ drw_h_ShmPutImage :: CARD16, width_ShmPutImage :: CARD16,+ height_ShmPutImage :: CARD16, send_event_ShmPutImage :: CARD8}+ deriving (Show, Typeable)+ +instance ExtensionRequest ShmPutImage where+ extensionId _ = "XVideo"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 19+ let size__+ = 4 + size (port_ShmPutImage x) + size (drawable_ShmPutImage x) ++ size (gc_ShmPutImage x)+ + size (shmseg_ShmPutImage x)+ + size (id_ShmPutImage x)+ + size (offset_ShmPutImage x)+ + size (src_x_ShmPutImage x)+ + size (src_y_ShmPutImage x)+ + size (src_w_ShmPutImage x)+ + size (src_h_ShmPutImage x)+ + size (drw_x_ShmPutImage x)+ + size (drw_y_ShmPutImage x)+ + size (drw_w_ShmPutImage x)+ + size (drw_h_ShmPutImage x)+ + size (width_ShmPutImage x)+ + size (height_ShmPutImage x)+ + size (send_event_ShmPutImage x)+ + 3+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_ShmPutImage x)+ serialize (drawable_ShmPutImage x)+ serialize (gc_ShmPutImage x)+ serialize (shmseg_ShmPutImage x)+ serialize (id_ShmPutImage x)+ serialize (offset_ShmPutImage x)+ serialize (src_x_ShmPutImage x)+ serialize (src_y_ShmPutImage x)+ serialize (src_w_ShmPutImage x)+ serialize (src_h_ShmPutImage x)+ serialize (drw_x_ShmPutImage x)+ serialize (drw_y_ShmPutImage x)+ serialize (drw_w_ShmPutImage x)+ serialize (drw_h_ShmPutImage x)+ serialize (width_ShmPutImage x)+ serialize (height_ShmPutImage x)+ serialize (send_event_ShmPutImage x)+ putSkip 3+ putSkip (requiredPadding size__)
+ patched/Graphics/XHB/Gen/XvMC.hs view
@@ -0,0 +1,108 @@+module Graphics.XHB.Gen.XvMC+ (extension, queryVersion, listSurfaceTypes, createContext,+ destroyContext, createSurface, destroySurface, createSubpicture,+ destroySubpicture, listSubpictureTypes,+ module Graphics.XHB.Gen.XvMC.Types)+ where+import Graphics.XHB.Gen.XvMC.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.Xv.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xv.Types+ +extension :: ExtensionId+extension = "XVideo-MotionCompensation"+ +queryVersion ::+ Graphics.XHB.Connection.Types.Connection ->+ IO (Receipt QueryVersionReply)+queryVersion c+ = do receipt <- newEmptyReceiptIO+ let req = MkQueryVersion+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +listSurfaceTypes ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> IO (Receipt ListSurfaceTypesReply)+listSurfaceTypes c port_id+ = do receipt <- newEmptyReceiptIO+ let req = MkListSurfaceTypes port_id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +createContext ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateContext -> IO (Receipt CreateContextReply)+createContext c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +destroyContext ::+ Graphics.XHB.Connection.Types.Connection -> CONTEXT -> IO ()+destroyContext c context_id+ = do let req = MkDestroyContext context_id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createSurface ::+ Graphics.XHB.Connection.Types.Connection ->+ SURFACE -> CONTEXT -> IO (Receipt CreateSurfaceReply)+createSurface c surface_id context_id+ = do receipt <- newEmptyReceiptIO+ let req = MkCreateSurface surface_id context_id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +destroySurface ::+ Graphics.XHB.Connection.Types.Connection -> SURFACE -> IO ()+destroySurface c surface_id+ = do let req = MkDestroySurface surface_id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +createSubpicture ::+ Graphics.XHB.Connection.Types.Connection ->+ CreateSubpicture -> IO (Receipt CreateSubpictureReply)+createSubpicture c req+ = do receipt <- newEmptyReceiptIO+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt+ +destroySubpicture ::+ Graphics.XHB.Connection.Types.Connection -> SUBPICTURE -> IO ()+destroySubpicture c subpicture_id+ = do let req = MkDestroySubpicture subpicture_id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequest c chunk+ +listSubpictureTypes ::+ Graphics.XHB.Connection.Types.Connection ->+ PORT -> SURFACE -> IO (Receipt ListSubpictureTypesReply)+listSubpictureTypes c port_id surface_id+ = do receipt <- newEmptyReceiptIO+ let req = MkListSubpictureTypes port_id surface_id+ putAction <- serializeExtensionRequest c req+ let chunk = runPut putAction+ sendRequestWithReply c chunk receipt+ return receipt
+ patched/Graphics/XHB/Gen/XvMC/Types.hs view
@@ -0,0 +1,367 @@+module Graphics.XHB.Gen.XvMC.Types+ (deserializeError, deserializeEvent, CONTEXT, SURFACE, SUBPICTURE,+ SurfaceInfo(..), QueryVersion(..), QueryVersionReply(..),+ ListSurfaceTypes(..), ListSurfaceTypesReply(..), CreateContext(..),+ CreateContextReply(..), DestroyContext(..), CreateSurface(..),+ CreateSurfaceReply(..), DestroySurface(..), CreateSubpicture(..),+ CreateSubpictureReply(..), DestroySubpicture(..),+ ListSubpictureTypes(..), ListSubpictureTypesReply(..))+ where+import Data.Word+import Foreign.C.Types+import Data.Bits+import Data.Binary.Put+import Data.Binary.Get+import Data.Typeable+import Control.Monad+import Control.Exception+import Data.List+import Graphics.XHB.Shared hiding (Event, Error)+import qualified Graphics.XHB.Shared+import Graphics.XHB.Gen.Xv.Types+ hiding (deserializeError, deserializeEvent)+import qualified Graphics.XHB.Gen.Xv.Types+ +deserializeError :: Word8 -> Maybe (Get SomeError)+deserializeError _ = Nothing+ +deserializeEvent :: Word8 -> Maybe (Get SomeEvent)+deserializeEvent _ = Nothing+ +newtype CONTEXT = MkCONTEXT Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype SURFACE = MkSURFACE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +newtype SUBPICTURE = MkSUBPICTURE Xid+ deriving (Eq, Ord, Show, Serialize, Deserialize, XidLike)+ +data SurfaceInfo = MkSurfaceInfo{id_SurfaceInfo :: SURFACE,+ chroma_format_SurfaceInfo :: CARD16, pad0_SurfaceInfo :: CARD16,+ max_width_SurfaceInfo :: CARD16, max_height_SurfaceInfo :: CARD16,+ subpicture_max_width_SurfaceInfo :: CARD16,+ subpicture_max_height_SurfaceInfo :: CARD16,+ mc_type_SurfaceInfo :: CARD32, flags_SurfaceInfo :: CARD32}+ deriving (Show, Typeable)+ +instance Serialize SurfaceInfo where+ serialize x+ = do serialize (id_SurfaceInfo x)+ serialize (chroma_format_SurfaceInfo x)+ serialize (pad0_SurfaceInfo x)+ serialize (max_width_SurfaceInfo x)+ serialize (max_height_SurfaceInfo x)+ serialize (subpicture_max_width_SurfaceInfo x)+ serialize (subpicture_max_height_SurfaceInfo x)+ serialize (mc_type_SurfaceInfo x)+ serialize (flags_SurfaceInfo x)+ size x+ = size (id_SurfaceInfo x) + size (chroma_format_SurfaceInfo x) ++ size (pad0_SurfaceInfo x)+ + size (max_width_SurfaceInfo x)+ + size (max_height_SurfaceInfo x)+ + size (subpicture_max_width_SurfaceInfo x)+ + size (subpicture_max_height_SurfaceInfo x)+ + size (mc_type_SurfaceInfo x)+ + size (flags_SurfaceInfo x)+ +instance Deserialize SurfaceInfo where+ deserialize+ = do id <- deserialize+ chroma_format <- deserialize+ pad0 <- deserialize+ max_width <- deserialize+ max_height <- deserialize+ subpicture_max_width <- deserialize+ subpicture_max_height <- deserialize+ mc_type <- deserialize+ flags <- deserialize+ return+ (MkSurfaceInfo id chroma_format pad0 max_width max_height+ subpicture_max_width+ subpicture_max_height+ mc_type+ flags)+ +data QueryVersion = MkQueryVersion{}+ deriving (Show, Typeable)+ +instance ExtensionRequest QueryVersion where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 0+ let size__ = 4+ serialize (convertBytesToRequestSize size__ :: INT16)+ putSkip (requiredPadding size__)+ +data QueryVersionReply = MkQueryVersionReply{major_QueryVersionReply+ :: CARD32,+ minor_QueryVersionReply :: CARD32}+ deriving (Show, Typeable)+ +instance Deserialize QueryVersionReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ major <- deserialize+ minor <- deserialize+ let _ = isCard32 length+ return (MkQueryVersionReply major minor)+ +data ListSurfaceTypes = MkListSurfaceTypes{port_id_ListSurfaceTypes+ :: PORT}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListSurfaceTypes where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 1+ let size__ = 4 + size (port_id_ListSurfaceTypes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_id_ListSurfaceTypes x)+ putSkip (requiredPadding size__)+ +data ListSurfaceTypesReply = MkListSurfaceTypesReply{num_ListSurfaceTypesReply+ :: CARD32,+ surfaces_ListSurfaceTypesReply ::+ [SurfaceInfo]}+ deriving (Show, Typeable)+ +instance Deserialize ListSurfaceTypesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num <- deserialize+ skip 20+ surfaces <- deserializeList (fromIntegral num)+ let _ = isCard32 length+ return (MkListSurfaceTypesReply num surfaces)+ +data CreateContext = MkCreateContext{context_id_CreateContext ::+ CONTEXT,+ port_id_CreateContext :: PORT,+ surface_id_CreateContext :: SURFACE,+ width_CreateContext :: CARD16, height_CreateContext :: CARD16,+ flags_CreateContext :: CARD32}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateContext where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 2+ let size__+ = 4 + size (context_id_CreateContext x) ++ size (port_id_CreateContext x)+ + size (surface_id_CreateContext x)+ + size (width_CreateContext x)+ + size (height_CreateContext x)+ + size (flags_CreateContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_id_CreateContext x)+ serialize (port_id_CreateContext x)+ serialize (surface_id_CreateContext x)+ serialize (width_CreateContext x)+ serialize (height_CreateContext x)+ serialize (flags_CreateContext x)+ putSkip (requiredPadding size__)+ +data CreateContextReply = MkCreateContextReply{width_actual_CreateContextReply+ :: CARD16,+ height_actual_CreateContextReply :: CARD16,+ flags_return_CreateContextReply :: CARD32,+ priv_data_CreateContextReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize CreateContextReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ width_actual <- deserialize+ height_actual <- deserialize+ flags_return <- deserialize+ skip 20+ priv_data <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return+ (MkCreateContextReply width_actual height_actual flags_return+ priv_data)+ +data DestroyContext = MkDestroyContext{context_id_DestroyContext ::+ CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroyContext where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 3+ let size__ = 4 + size (context_id_DestroyContext x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (context_id_DestroyContext x)+ putSkip (requiredPadding size__)+ +data CreateSurface = MkCreateSurface{surface_id_CreateSurface ::+ SURFACE,+ context_id_CreateSurface :: CONTEXT}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateSurface where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 4+ let size__+ = 4 + size (surface_id_CreateSurface x) ++ size (context_id_CreateSurface x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (surface_id_CreateSurface x)+ serialize (context_id_CreateSurface x)+ putSkip (requiredPadding size__)+ +data CreateSurfaceReply = MkCreateSurfaceReply{priv_data_CreateSurfaceReply+ :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize CreateSurfaceReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ skip 24+ priv_data <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return (MkCreateSurfaceReply priv_data)+ +data DestroySurface = MkDestroySurface{surface_id_DestroySurface ::+ SURFACE}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroySurface where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 5+ let size__ = 4 + size (surface_id_DestroySurface x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (surface_id_DestroySurface x)+ putSkip (requiredPadding size__)+ +data CreateSubpicture = MkCreateSubpicture{subpicture_id_CreateSubpicture+ :: SUBPICTURE,+ context_CreateSubpicture :: CONTEXT,+ xvimage_id_CreateSubpicture :: CARD32,+ width_CreateSubpicture :: CARD16,+ height_CreateSubpicture :: CARD16}+ deriving (Show, Typeable)+ +instance ExtensionRequest CreateSubpicture where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 6+ let size__+ = 4 + size (subpicture_id_CreateSubpicture x) ++ size (context_CreateSubpicture x)+ + size (xvimage_id_CreateSubpicture x)+ + size (width_CreateSubpicture x)+ + size (height_CreateSubpicture x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (subpicture_id_CreateSubpicture x)+ serialize (context_CreateSubpicture x)+ serialize (xvimage_id_CreateSubpicture x)+ serialize (width_CreateSubpicture x)+ serialize (height_CreateSubpicture x)+ putSkip (requiredPadding size__)+ +data CreateSubpictureReply = MkCreateSubpictureReply{width_actual_CreateSubpictureReply+ :: CARD16,+ height_actual_CreateSubpictureReply :: CARD16,+ num_palette_entries_CreateSubpictureReply ::+ CARD16,+ entry_bytes_CreateSubpictureReply :: CARD16,+ component_order_CreateSubpictureReply ::+ [CARD8],+ priv_data_CreateSubpictureReply :: [CARD32]}+ deriving (Show, Typeable)+ +instance Deserialize CreateSubpictureReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ width_actual <- deserialize+ height_actual <- deserialize+ num_palette_entries <- deserialize+ entry_bytes <- deserialize+ component_order <- deserializeList (fromIntegral 4)+ skip 12+ priv_data <- deserializeList (fromIntegral length)+ let _ = isCard32 length+ return+ (MkCreateSubpictureReply width_actual height_actual+ num_palette_entries+ entry_bytes+ component_order+ priv_data)+ +data DestroySubpicture = MkDestroySubpicture{subpicture_id_DestroySubpicture+ :: SUBPICTURE}+ deriving (Show, Typeable)+ +instance ExtensionRequest DestroySubpicture where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 7+ let size__ = 4 + size (subpicture_id_DestroySubpicture x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (subpicture_id_DestroySubpicture x)+ putSkip (requiredPadding size__)+ +data ListSubpictureTypes = MkListSubpictureTypes{port_id_ListSubpictureTypes+ :: PORT,+ surface_id_ListSubpictureTypes :: SURFACE}+ deriving (Show, Typeable)+ +instance ExtensionRequest ListSubpictureTypes where+ extensionId _ = "XVideo-MotionCompensation"+ serializeRequest x extOpCode+ = do putWord8 extOpCode+ putWord8 8+ let size__+ = 4 + size (port_id_ListSubpictureTypes x) ++ size (surface_id_ListSubpictureTypes x)+ serialize (convertBytesToRequestSize size__ :: INT16)+ serialize (port_id_ListSubpictureTypes x)+ serialize (surface_id_ListSubpictureTypes x)+ putSkip (requiredPadding size__)+ +data ListSubpictureTypesReply = MkListSubpictureTypesReply{num_ListSubpictureTypesReply+ :: CARD32,+ types_ListSubpictureTypesReply ::+ [ImageFormatInfo]}+ deriving (Show, Typeable)+ +instance Deserialize ListSubpictureTypesReply where+ deserialize+ = do skip 1+ skip 1+ skip 2+ length <- deserialize+ num <- deserialize+ skip 20+ types <- deserializeList (fromIntegral num)+ let _ = isCard32 length+ return (MkListSubpictureTypesReply num types)
+ xhb.cabal view
@@ -0,0 +1,99 @@+Name: xhb+Version: 0.0.2009.1.6+Cabal-Version: >= 1.2.3+Synopsis: X Haskell Bindings+Description:+ Provides low-level bindings to the X11 protocol.+ .+ Similar to XCB - the X C Bindings.+ .+ This library is based on version 1.3 of the xcb-proto+ package. See http:\/\/xcb.freedesktop.org\/XmlXcb\/ and+ http:\/\/xcb.freedesktop.org\/dist\/ .++License: BSD3+License-file: LICENSE+Author: See CONTRIBUTORS file+Maintainer: Antoine Latter <aslatter@gmail.com>+Homepage: http://community.haskell.org/~aslatter/code/xhb+Build-type: Simple++Category: Graphics++Extra-source-files: CONTRIBUTORS++Library++ Build-depends: base, stm, Xauth, binary, bytestring, containers,+ parsec, network, byteorder++ Extensions: ExistentialQuantification,+ DeriveDataTypeable,+ GeneralizedNewtypeDeriving++ Exposed-modules:+ Graphics.XHB,+ Graphics.XHB.Connection,+ Graphics.XHB.Connection.Extension,+ Graphics.XHB.Connection.Open,+ Graphics.XHB.Gen.BigRequests,+ Graphics.XHB.Gen.Composite,+ Graphics.XHB.Gen.Damage,+ Graphics.XHB.Gen.DPMS,+ Graphics.XHB.Gen.Glx,+ Graphics.XHB.Gen.RandR,+ Graphics.XHB.Gen.Record,+ Graphics.XHB.Gen.Render,+ Graphics.XHB.Gen.Res,+ Graphics.XHB.Gen.ScreenSaver,+ Graphics.XHB.Gen.Shape,+ Graphics.XHB.Gen.Shm,+ Graphics.XHB.Gen.Sync,+ Graphics.XHB.Gen.XCMisc,+ Graphics.XHB.Gen.Xevie,+ Graphics.XHB.Gen.XF86Dri,+ Graphics.XHB.Gen.XFixes,+ Graphics.XHB.Gen.Xinerama,+ Graphics.XHB.Gen.Input,+ Graphics.XHB.Gen.XPrint,+ Graphics.XHB.Gen.Xproto,+ Graphics.XHB.Gen.SELinux,+ Graphics.XHB.Gen.Test,+ Graphics.XHB.Gen.Xv,+ Graphics.XHB.Gen.XvMC++ Other-modules:+ Graphics.XHB.Shared,+ Graphics.XHB.Connection.Auth,+ Graphics.XHB.Connection.Internal,+ Graphics.XHB.Connection.Types,+ Graphics.XHB.Gen.BigRequests.Types,+ Graphics.XHB.Gen.Composite.Types,+ Graphics.XHB.Gen.Damage.Types,+ Graphics.XHB.Gen.DPMS.Types,+ Graphics.XHB.Gen.Glx.Types,+ Graphics.XHB.Gen.RandR.Types,+ Graphics.XHB.Gen.Record.Types,+ Graphics.XHB.Gen.Render.Types,+ Graphics.XHB.Gen.Res.Types,+ Graphics.XHB.Gen.ScreenSaver.Types,+ Graphics.XHB.Gen.Shape.Types,+ Graphics.XHB.Gen.Shm.Types,+ Graphics.XHB.Gen.Sync.Types,+ Graphics.XHB.Gen.XCMisc.Types,+ Graphics.XHB.Gen.Xevie.Types,+ Graphics.XHB.Gen.XF86Dri.Types,+ Graphics.XHB.Gen.XFixes.Types,+ Graphics.XHB.Gen.Xinerama.Types,+ Graphics.XHB.Gen.Input.Types,+ Graphics.XHB.Gen.XPrint.Types,+ Graphics.XHB.Gen.Xproto.Types,+ Graphics.XHB.Gen.SELinux.Types,+ Graphics.XHB.Gen.Test.Types,+ Graphics.XHB.Gen.Xv.Types,+ Graphics.XHB.Gen.XvMC.Types,+ Graphics.XHB.Gen.Extension++ hs-source-dirs: . patched++