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