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