definition module osprint // Clean Standard Object I/O library, version 1.2 import StdFile, StdPicture, iostate :: PrintSetup :: JobInfo = { range :: !(!Int,!Int) // First and last page as typed in by the // user. If the user chooses "ALL", then the // first page will be one, and the last page // will be a "huge" number. , copies :: !Int // Number of copies. This will not // necessarily be equal to the number of // copies, as specified in the print dialog. // Some printer drivers take themselves care // of producing the appropriate number of // copies => printInfo.copies==1. } :: PrintInfo = { printSetup :: PrintSetup // PC: the print setup, which was chosen by // the user via the print dialog // Mac: the value will be identical to the // actual PrintSetup argument, that was // passed to one of the printing // functions , jobInfo :: JobInfo } :: Alternative x y = Cancelled x | StartedPrinting y os_getpagedimensions :: !PrintSetup !Bool -> (!(!Int,!Int),!(!(!Int,!Int),!(!Int,!Int)),!(!Int,!Int)) os_defaultprintsetup :: !*env -> (!PrintSetup, !*env) os_printsetupvalid :: !PrintSetup !*env -> (!Bool, !*env) class PrintEnvironments printEnv where os_printpageperpage :: !Bool !Bool !.x .(.x -> .(PrintInfo -> .(*Picture -> *((.Bool,Point2),*(.state,*Picture))))) (*(.state,*Picture) -> *((.Bool,Point2),*(.state,*Picture))) !PrintSetup !*printEnv -> (Alternative .x .state,!*printEnv) os_printsetupdialog :: !PrintSetup !*printEnv -> (!PrintSetup,!*printEnv) instance PrintEnvironments Files instance PrintEnvironments (PSt .l) os_printsetuptostring :: !PrintSetup -> String os_stringtoprintsetup :: !String -> PrintSetup