/******************************************** * * Print Manager * * Copyright Apple Computer, Inc.1986-90 * All Rights Reserved * * Copyright 1992, Byte Works, Inc. * ********************************************/ #ifndef __TYPES__ #include #endif #ifndef __PRINT__ #define __PRINT__ /* Error Codes */ #define pntrConFailed 0x1308 /* connection to the printer failed */ #define memFullErr 0xFF80 #define ioAbort 0xFFE5 #define prAbort 0x0080 #define missingDriver 0x1301 /* specified driver not in system/drivers */ #define portNotOn 0x1302 /* specified port not selected in ctl panel */ #define noPrintRecord 0x1303 /* no print record was given */ #define badLaserPrep 0x1304 /* laser prep in laser writer incompatible */ #define badLPFile 0x1305 /* laser prep in system/drivers incompatible */ #define papConnNotOpen 0x1306 /* cannot connect to laser writer */ #define papReadWriteErr 0x1307 /* apple talk PAPRead or PAPWrite error */ #define ptrConnFailed 0x1308 /* cannot establish connection with imagewriter */ #define badLoadParam 0x1309 /* parameter for load/unload is invalid */ #define callNotSupported 0x130A /* toolcall made is not supported by this version */ #define startUpAlreadyMade 0x1321 /* low level startup already made */ #define invalidCtlVal 0x1322 /* invalid control value had been spec'd */ /* whichDriver Codes */ #define bothDrivers 0x0 /* input to PMLoadDriver and PMUnloadDriver */ #define printerDriver 0x0001 /* input to PMLoadDriver and PMUnloadDriver */ #define portDriver 0x0002 /* input to PMLoadDriver and PMUnloadDriver */ /* Other Constants */ #define prPortrait 0x0000 #define prLandscape 0x0001 #define prImageWriter 0x0001 #define prImageWriterLQ 0x0002 #define prLaserWriter 0x0003 #define prEpson 0x0004 #define prBlackWhite 0x0001 #define prColor 0x0002 #define bDraftLoop 0x0000 #define bSpoolLoop 0x0080 struct PrPrinterSpecRec { Word prPrinterType; Word prCharacteristics; }; typedef struct PrPrinterSpecRec PrPrinterSpecRec; struct PrInfoRec { Word iDev; /* reserved for internal use */ Word iVRes; /* vertical resolution of printer */ Word iHRes; /* horizontal resolution of printer */ Rect rPage; /* defining page rectangle */ }; typedef struct PrInfoRec PrInfoRec, *PrInfoRecPtr, **PrInfoRecHndl; struct PrJobRec { Word iFstPage; /* first page to print */ Word iLstPage; /* last page to print */ Word iCopies; /* number of copies */ Byte bJDocLoop; /* printing method */ Byte fFromUser; /* used internally */ WordProcPtr pIdleProc; /* background procedure */ Pointer pFileName; /* spool file name */ Word iFileVol; /* spool file volume reference number */ Byte bFileVers; /* spool file version number */ Byte bJobX; /* used internally */ }; typedef struct PrJobRec PrJobRec, *PrJobRecPtr; struct PrStyleRec { Word wDev; /* output quality information */ Word internA[3]; /* for internal use */ Word feed; /* paper feed type */ Word paperType; /* paper type */ Word crWidth; /* carriage Width for image writer or vertical sizing for lazer writer */ Word reduction; /* % reduction, laser writer only */ Word internB; /* for internal use */ }; typedef struct PrStyleRec PrStyleRec, *PrStyleRecPtr, **PrStyleRecHndl; #define vSizing crWidth /* PrStyleRec - alternate field name */ struct PrRec { Word prVersion; /* print manager version */ PrInfoRec prInfo; /* printer infomation subrecord */ Rect rPaper; /* Defining paper rectangle */ PrStyleRec prStl; /* style subrecord */ Byte prInfoPT[14]; /* reserved for internal use */ Byte prXInfo[24]; /* reserved for internal use */ PrJobRec prJob; /* job subrecord */ Byte printX[38]; /* reserved for future use */ Word iReserved; /* reserved for internal use */ }; typedef struct PrRec PrRec, *PrRecPtr, **PrRecHndl; struct PrStatusRec { Word iTotPages; /* number of pages in spool file */ Word iCurPage; /* page being printed */ Word iTotCopies; /* number of copies requested */ Word iCurCopy; /* copy being printed */ Word iTotBands; /* reserved for internal use */ Word iCurBand; /* reserved for internal use */ Boolean fPgDirty; /* TRUE if started printing page */ Word fImaging; /* reserved for internal use */ PrRecHndl hPrint; /* handle of print record */ GrafPortPtr pPrPort; /* pointer to grafport being use for printing */ LongWord hPic; /* reserved for internal use */ }; typedef struct PrStatusRec PrStatusRec, *PrStatusRecPtr, **PrStatusRecHndl; extern pascal void PMBootInit(void) inline(0x0113,dispatcher); extern pascal void PMStartUp(Word, Word) inline(0x0213,dispatcher); extern pascal void PMShutDown(void) inline(0x0313,dispatcher); extern pascal Word PMVersion(void) inline(0x0413,dispatcher); extern pascal void PMReset(void) inline(0x0513,dispatcher); extern pascal Boolean PMStatus(void) inline(0x0613,dispatcher); extern pascal Boolean PrChoosePrinter(void) inline(0x1613,dispatcher); extern pascal Boolean PrChooser(void) inline(0x1613,dispatcher); extern pascal void PrCloseDoc(GrafPortPtr) inline(0x0F13,dispatcher); extern pascal void PrClosePage(GrafPortPtr) inline(0x1113,dispatcher); extern pascal void PrDefault(PrRecHndl) inline(0x0913,dispatcher); extern pascal Word PrDriverVer(void) inline(0x2313,dispatcher); extern pascal Word PrError(void) inline(0x1413,dispatcher); extern pascal Boolean PrJobDialog(PrRecHndl) inline(0x0C13,dispatcher); extern pascal GrafPortPtr PrOpenDoc(PrRecHndl, GrafPortPtr) inline(0x0E13,dispatcher); extern pascal void PrOpenPage(GrafPortPtr, Rect *) inline(0x1013,dispatcher); extern pascal void PrPicFile(PrRecHndl, GrafPortPtr, PrStatusRecPtr) inline(0x1213,dispatcher); extern pascal void PrPixelMap(LocInfoPtr, RectPtr, Boolean) inline(0x0D13,dispatcher); extern pascal Word PrPortVer(void) inline(0x2413,dispatcher); extern pascal void PrSetError(Word) inline(0x1513,dispatcher); extern pascal Boolean PrStlDialog(PrRecHndl) inline(0x0B13,dispatcher); extern pascal Boolean PrValidate(PrRecHndl) inline(0x0A13,dispatcher); extern pascal void PMLoadDriver(Word) inline(0x3513,dispatcher); extern pascal void PMUnloadDriver(Word) inline(0x3413,dispatcher); extern pascal StringPtr PrGetDocName(void) inline(0x3613,dispatcher); extern pascal Word PrGetPgOrientation(PrRecHndl) inline(0x3813,dispatcher); extern pascal long PrGetPrinterSpecs(void) inline(0x1813,dispatcher); extern pascal void PrSetDocName(Pointer) inline(0x3713,dispatcher); extern pascal StringPtr PrGetNetworkName(void) inline(0x2B13,dispatcher); extern pascal StringPtr PrGetPortDvrName(void) inline(0x2913,dispatcher); extern pascal StringPtr PrGetPrinterDvrName(void) inline(0x2813,dispatcher); extern pascal StringPtr PrGetUserName(void) inline(0x2A13,dispatcher); extern pascal StringPtr PrGetZoneName(void) inline(0x2513,dispatcher); #endif