mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-21 18:35:32 +00:00
4325cdcc78
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
408 lines
11 KiB
OpenEdge ABL
408 lines
11 KiB
OpenEdge ABL
|
|
{
|
|
Created: Saturday, July 27, 1991 at 10:35 PM
|
|
Printing.p
|
|
Pascal Interface to the Macintosh Libraries
|
|
|
|
Copyright Apple Computer, Inc. 1985-1991
|
|
All rights reserved
|
|
This file is used in these builds: BigBang Sys606
|
|
|
|
Change History (most recent first):
|
|
|
|
<5> 2/18/92 MH This file now uses the inline access to the _PrGlue trap which
|
|
was formerly provided in PrintTraps.p. The glue routines from
|
|
interfaces.o which were formerly accessed via this file were
|
|
only necessary to support execution on a Mac Plus or earlier
|
|
running system 4.0 or earlier. It is no longer necessary to
|
|
support that configuration in current internal or external
|
|
product development. The file PrintTraps.p is now a stub which
|
|
only includes this file.
|
|
<4> 8/8/91 JL Added OpNotImpl as Found in IM v. V p. 411
|
|
<3> 7/31/91 JL Updated Copyright. Restored Comments.
|
|
<2> 1/28/91 LN Checked in Database Generated File from DSG. Added PrIdleProcPtr
|
|
to match .h file.
|
|
To Do:
|
|
}
|
|
|
|
|
|
{$IFC UNDEFINED UsingIncludes}
|
|
{$SETC UsingIncludes := 0}
|
|
{$ENDC}
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
UNIT Printing;
|
|
INTERFACE
|
|
{$ENDC}
|
|
|
|
{$IFC UNDEFINED UsingPrinting}
|
|
{$SETC UsingPrinting := 1}
|
|
|
|
{$I+}
|
|
{$SETC PrintingIncludes := UsingIncludes}
|
|
{$SETC UsingIncludes := 1}
|
|
{$IFC UNDEFINED UsingQuickdraw}
|
|
{$I $$Shell(PInterfaces)Quickdraw.p}
|
|
{$ENDC}
|
|
{$IFC UNDEFINED UsingDialogs}
|
|
{$I $$Shell(PInterfaces)Dialogs.p}
|
|
{$ENDC}
|
|
{$SETC UsingIncludes := PrintingIncludes}
|
|
|
|
CONST
|
|
iPFMaxPgs = 128;
|
|
iPrPgFract = 120; {Page scale factor. ptPgSize (below) is in units of 1/iPrPgFract}
|
|
iPrPgFst = 1; {Page range constants}
|
|
iPrPgMax = 9999;
|
|
iPrRelease = 3; {Current version number of the code.}
|
|
iPrSavPFil = -1;
|
|
iPrAbort = $0080;
|
|
iPrDevCtl = 7; {The PrDevCtl Proc's ctl number}
|
|
lPrReset = $00010000; {The PrDevCtl Proc's CParam for reset}
|
|
lPrLineFeed = $00030000;
|
|
lPrLFStd = $0003FFFF; {The PrDevCtl Proc's CParam for std paper advance}
|
|
lPrLFSixth = $0003FFFF;
|
|
lPrPageEnd = $00020000; {The PrDevCtl Proc's CParam for end page}
|
|
lPrDocOpen = $00010000;
|
|
lPrPageOpen = $00040000;
|
|
lPrPageClose = $00020000;
|
|
lPrDocClose = $00050000;
|
|
iFMgrCtl = 8; {The FMgr's Tail-hook Proc's ctl number}
|
|
iMscCtl = 9; {The FMgr's Tail-hook Proc's ctl number}
|
|
iPvtCtl = 10; {The FMgr's Tail-hook Proc's ctl number}
|
|
iMemFullErr = -108;
|
|
iIOAbort = -27;
|
|
pPrGlobals = $00000944; {The PrVars lo mem area:}
|
|
bDraftLoop = 0;
|
|
bSpoolLoop = 1;
|
|
bUser1Loop = 2;
|
|
bUser2Loop = 3;
|
|
fNewRunBit = 2;
|
|
fHiResOK = 3;
|
|
fWeOpenedRF = 4;
|
|
|
|
{Driver constants }
|
|
iPrBitsCtl = 4;
|
|
lScreenBits = 0;
|
|
lPaintBits = 1;
|
|
lHiScreenBits = $00000002; {The Bitmap Print Proc's Screen Bitmap param}
|
|
lHiPaintBits = $00000003; {The Bitmap Print Proc's Paint [sq pix] param}
|
|
iPrIOCtl = 5;
|
|
iPrEvtCtl = 6; {The PrEvent Proc's ctl number}
|
|
lPrEvtAll = $0002FFFD; {The PrEvent Proc's CParam for the entire screen}
|
|
lPrEvtTop = $0001FFFD; {The PrEvent Proc's CParam for the top folder}
|
|
iPrDrvrRef = -3;
|
|
getRslDataOp = 4;
|
|
setRslOp = 5;
|
|
draftBitsOp = 6;
|
|
noDraftBitsOp = 7;
|
|
getRotnOp = 8;
|
|
NoSuchRsl = 1;
|
|
OpNotImpl = 2; {the driver doesn't support this opcode}
|
|
RgType1 = 1;
|
|
|
|
TYPE
|
|
TFeed = (feedCut,feedFanfold,feedMechCut,feedOther);
|
|
|
|
TScan = (scanTB,scanBT,scanLR,scanRL);
|
|
|
|
|
|
TPRect = ^Rect; { A Rect Ptr }
|
|
PrIdleProcPtr = ProcPtr;
|
|
PItemProcPtr = ProcPtr;
|
|
|
|
TPPrPort = ^TPrPort;
|
|
TPrPort = RECORD
|
|
gPort: GrafPort; {The Printer's graf port.}
|
|
gProcs: QDProcs; {..and its procs}
|
|
lGParam1: LONGINT; {16 bytes for private parameter storage.}
|
|
lGParam2: LONGINT;
|
|
lGParam3: LONGINT;
|
|
lGParam4: LONGINT;
|
|
fOurPtr: BOOLEAN; {Whether the PrPort allocation was done by us.}
|
|
fOurBits: BOOLEAN; {Whether the BitMap allocation was done by us.}
|
|
END;
|
|
|
|
{ Printing Graf Port. All printer imaging, whether spooling, banding, etc, happens "thru" a GrafPort.
|
|
This is the "PrPeek" record. }
|
|
TPPrInfo = ^TPrInfo;
|
|
TPrInfo = RECORD
|
|
iDev: INTEGER; {Font mgr/QuickDraw device code}
|
|
iVRes: INTEGER; {Resolution of device, in device coordinates}
|
|
iHRes: INTEGER; {..note: V before H => compatable with Point.}
|
|
rPage: Rect; {The page (printable) rectangle in device coordinates.}
|
|
END;
|
|
|
|
{ Print Info Record: The parameters needed for page composition. }
|
|
TPPrStl = ^TPrStl;
|
|
TPrStl = RECORD
|
|
wDev: INTEGER;
|
|
iPageV: INTEGER;
|
|
iPageH: INTEGER;
|
|
bPort: SignedByte;
|
|
feed: TFeed;
|
|
END;
|
|
|
|
TPPrXInfo = ^TPrXInfo;
|
|
TPrXInfo = RECORD
|
|
iRowBytes: INTEGER;
|
|
iBandV: INTEGER;
|
|
iBandH: INTEGER;
|
|
iDevBytes: INTEGER;
|
|
iBands: INTEGER;
|
|
bPatScale: SignedByte;
|
|
bUlThick: SignedByte;
|
|
bUlOffset: SignedByte;
|
|
bUlShadow: SignedByte;
|
|
scan: TScan;
|
|
bXInfoX: SignedByte;
|
|
END;
|
|
|
|
TPPrJob = ^TPrJob;
|
|
TPrJob = RECORD
|
|
iFstPage: INTEGER; {Page Range.}
|
|
iLstPage: INTEGER;
|
|
iCopies: INTEGER; {No. copies.}
|
|
bJDocLoop: SignedByte; {The Doc style: Draft, Spool, .., and ..}
|
|
fFromUsr: BOOLEAN; {Printing from an User's App (not PrApp) flag}
|
|
pIdleProc: PrIdleProcPtr; {The Proc called while waiting on IO etc.}
|
|
pFileName: StringPtr; {Spool File Name: NIL for default.}
|
|
iFileVol: INTEGER; {Spool File vol, set to 0 initially}
|
|
bFileVers: SignedByte; {Spool File version, set to 0 initially}
|
|
bJobX: SignedByte; {An eXtra byte.}
|
|
END;
|
|
|
|
TPrFlag1 = PACKED RECORD
|
|
f15: BOOLEAN;
|
|
f14: BOOLEAN;
|
|
f13: BOOLEAN;
|
|
f12: BOOLEAN;
|
|
f11: BOOLEAN;
|
|
f10: BOOLEAN;
|
|
f9: BOOLEAN;
|
|
f8: BOOLEAN;
|
|
f7: BOOLEAN;
|
|
f6: BOOLEAN;
|
|
f5: BOOLEAN;
|
|
f4: BOOLEAN;
|
|
f3: BOOLEAN;
|
|
f2: BOOLEAN;
|
|
fLstPgFst: BOOLEAN;
|
|
fUserScale: BOOLEAN;
|
|
END;
|
|
|
|
{ Print Job: Print "form" for a single print request. }
|
|
TPPrint = ^TPrint;
|
|
THPrint = ^TPPrint;
|
|
TPrint = RECORD
|
|
iPrVersion: INTEGER; {(2) Printing software version}
|
|
prInfo: TPrInfo; {(14) the PrInfo data associated with the current style.}
|
|
rPaper: Rect; {(8) The paper rectangle [offset from rPage]}
|
|
prStl: TPrStl; {(8) This print request's style.}
|
|
prInfoPT: TPrInfo; {(14) Print Time Imaging metrics}
|
|
prXInfo: TPrXInfo; {(16) Print-time (expanded) Print info record.}
|
|
prJob: TPrJob; {(20) The Print Job request (82) Total of the above; 120-82 = 38 bytes needed to fill 120}
|
|
CASE INTEGER OF
|
|
0:
|
|
(printX: ARRAY [1..19] OF INTEGER);
|
|
1:
|
|
(prFlag1: TPrFlag1; {a word of flags}
|
|
iZoomMin: INTEGER;
|
|
iZoomMax: INTEGER;
|
|
hDocName: StringHandle); {current doc's name, nil = front window}
|
|
END;
|
|
|
|
{ The universal 120 byte printing record }
|
|
TPPrStatus = ^TPrStatus;
|
|
TPrStatus = RECORD
|
|
iTotPages: INTEGER; {Total pages in Print File.}
|
|
iCurPage: INTEGER; {Current page number}
|
|
iTotCopies: INTEGER; {Total copies requested}
|
|
iCurCopy: INTEGER; {Current copy number}
|
|
iTotBands: INTEGER; {Total bands per page.}
|
|
iCurBand: INTEGER; {Current band number}
|
|
fPgDirty: BOOLEAN; {True if current page has been written to.}
|
|
fImaging: BOOLEAN; {Set while in band's DrawPic call.}
|
|
hPrint: THPrint; {Handle to the active Printer record}
|
|
pPrPort: TPPrPort; {Ptr to the active PrPort}
|
|
hPic: PicHandle; {Handle to the active Picture}
|
|
END;
|
|
|
|
{ Print Status: Print information during printing. }
|
|
TPPfPgDir = ^TPfPgDir;
|
|
THPfPgDir = ^TPPfPgDir;
|
|
TPfPgDir = RECORD
|
|
iPages: INTEGER;
|
|
iPgPos: ARRAY [0..128] OF LONGINT; {ARRAY [0..iPfMaxPgs] OF LONGINT}
|
|
END;
|
|
|
|
{ PicFile = a TPfHeader followed by n QuickDraw Pics (whose PicSize is invalid!) }
|
|
TPPrDlg = ^TPrDlg;
|
|
TPrDlg = RECORD
|
|
Dlg: DialogRecord; {The Dialog window}
|
|
pFltrProc: ModalFilterProcPtr; {The Filter Proc.}
|
|
pItemProc: PItemProcPtr; {The Item evaluating proc.}
|
|
hPrintUsr: THPrint; {The user's print record.}
|
|
fDoIt: BOOLEAN;
|
|
fDone: BOOLEAN;
|
|
lUser1: LONGINT; {Four longs for user's to hang global data.}
|
|
lUser2: LONGINT; {...Plus more stuff needed by the particular printing dialog.}
|
|
lUser3: LONGINT;
|
|
lUser4: LONGINT;
|
|
END;
|
|
|
|
|
|
PDlgInitProcPtr = ProcPtr;
|
|
|
|
TGnlData = RECORD
|
|
iOpCode: INTEGER;
|
|
iError: INTEGER;
|
|
lReserved: LONGINT; {more fields here depending on call}
|
|
END;
|
|
|
|
TRslRg = RECORD
|
|
iMin: INTEGER;
|
|
iMax: INTEGER;
|
|
END;
|
|
|
|
TRslRec = RECORD
|
|
iXRsl: INTEGER;
|
|
iYRsl: INTEGER;
|
|
END;
|
|
|
|
TGetRslBlk = RECORD
|
|
iOpCode: INTEGER;
|
|
iError: INTEGER;
|
|
lReserved: LONGINT;
|
|
iRgType: INTEGER;
|
|
xRslRg: TRslRg;
|
|
yRslRg: TRslRg;
|
|
iRslRecCnt: INTEGER;
|
|
rgRslRec: ARRAY [1..27] OF TRslRec;
|
|
END;
|
|
|
|
TSetRslBlk = RECORD
|
|
iOpCode: INTEGER;
|
|
iError: INTEGER;
|
|
lReserved: LONGINT;
|
|
hPrint: THPrint;
|
|
iXRsl: INTEGER;
|
|
iYRsl: INTEGER;
|
|
END;
|
|
|
|
TDftBitsBlk = RECORD
|
|
iOpCode: INTEGER;
|
|
iError: INTEGER;
|
|
lReserved: LONGINT;
|
|
hPrint: THPrint;
|
|
END;
|
|
|
|
TGetRotnBlk = RECORD
|
|
iOpCode: INTEGER;
|
|
iError: INTEGER;
|
|
lReserved: LONGINT;
|
|
hPrint: THPrint;
|
|
fLandscape: BOOLEAN;
|
|
bXtra: SignedByte;
|
|
END;
|
|
|
|
TPBitMap = ^BitMap; { A BitMap Ptr }
|
|
|
|
TN = 0..15; { a Nibble }
|
|
|
|
TPWord = ^TWord;
|
|
THWord = ^TPWord;
|
|
TWord = PACKED RECORD
|
|
CASE INTEGER OF
|
|
0:
|
|
(c1,c0: CHAR);
|
|
1:
|
|
(b1,b0: SignedByte);
|
|
2:
|
|
(usb1,usb0: Byte);
|
|
3:
|
|
(n3,n2,n1,n0: TN);
|
|
4:
|
|
(f15,f14,f13,f12,f11,f10,f9,f8,f7,f6,f5,f4,f3,f2,f1,f0: BOOLEAN);
|
|
5:
|
|
(i0: INTEGER);
|
|
END;
|
|
|
|
TPLong = ^TLong;
|
|
THLong = ^TPLong;
|
|
TLong = RECORD
|
|
CASE INTEGER OF
|
|
0:
|
|
(w1,w0: TWord);
|
|
1:
|
|
(b1,b0: LONGINT);
|
|
2:
|
|
(p0: Ptr);
|
|
3:
|
|
(h0: Handle);
|
|
4:
|
|
(pt: Point);
|
|
END;
|
|
|
|
|
|
PROCEDURE PrPurge;
|
|
INLINE $2F3C,$A800,$0000,$A8FD;
|
|
PROCEDURE PrNoPurge;
|
|
INLINE $2F3C,$B000,$0000,$A8FD;
|
|
PROCEDURE PrOpen;
|
|
INLINE $2F3C,$C800,$0000,$A8FD;
|
|
PROCEDURE PrClose;
|
|
INLINE $2F3C,$D000,$0000,$A8FD;
|
|
PROCEDURE PrintDefault(hPrint: THPrint);
|
|
INLINE $2F3C,$2004,$0480,$A8FD;
|
|
FUNCTION PrValidate(hPrint: THPrint): BOOLEAN;
|
|
INLINE $2F3C,$5204,$0498,$A8FD;
|
|
FUNCTION PrStlDialog(hPrint: THPrint): BOOLEAN;
|
|
INLINE $2F3C,$2A04,$0484,$A8FD;
|
|
FUNCTION PrJobDialog(hPrint: THPrint): BOOLEAN;
|
|
INLINE $2F3C,$3204,$0488,$A8FD;
|
|
FUNCTION PrStlInit(hPrint: THPrint): TPPrDlg;
|
|
INLINE $2F3C,$3C04,$040C,$A8FD;
|
|
FUNCTION PrJobInit(hPrint: THPrint): TPPrDlg;
|
|
INLINE $2F3C,$4404,$0410,$A8FD;
|
|
PROCEDURE PrJobMerge(hPrintSrc: THPrint;hPrintDst: THPrint);
|
|
INLINE $2F3C,$5804,$089C,$A8FD;
|
|
FUNCTION PrDlgMain(hPrint: THPrint;pDlgInit: PDlgInitProcPtr): BOOLEAN;
|
|
INLINE $2F3C,$4A04,$0894,$A8FD;
|
|
FUNCTION PrOpenDoc(hPrint: THPrint;pPrPort: TPPrPort;pIOBuf: Ptr): TPPrPort;
|
|
INLINE $2F3C,$0400,$0C00,$A8FD;
|
|
PROCEDURE PrCloseDoc(pPrPort: TPPrPort);
|
|
INLINE $2F3C,$0800,$0484,$A8FD;
|
|
PROCEDURE PrOpenPage(pPrPort: TPPrPort;pPageFrame: TPRect);
|
|
INLINE $2F3C,$1000,$0808,$A8FD;
|
|
PROCEDURE PrClosePage(pPrPort: TPPrPort);
|
|
INLINE $2F3C,$1800,$040C,$A8FD;
|
|
PROCEDURE PrPicFile(hPrint: THPrint;pPrPort: TPPrPort;pIOBuf: Ptr;pDevBuf: Ptr;
|
|
VAR prStatus: TPrStatus);
|
|
INLINE $2F3C,$6005,$1480,$A8FD;
|
|
FUNCTION PrError: INTEGER;
|
|
INLINE $2F3C,$BA00,$0000,$A8FD;
|
|
PROCEDURE PrSetError(iErr: INTEGER);
|
|
INLINE $2F3C,$C000,$0200,$A8FD;
|
|
PROCEDURE PrGeneral(pData: Ptr);
|
|
INLINE $2F3C,$7007,$0480,$A8FD;
|
|
PROCEDURE PrDrvrOpen;
|
|
INLINE $2F3C,$8000,$0000,$A8FD;
|
|
PROCEDURE PrDrvrClose;
|
|
INLINE $2F3C,$8800,$0000,$A8FD;
|
|
PROCEDURE PrCtlCall(iWhichCtl: INTEGER;lParam1: LONGINT;lParam2: LONGINT;
|
|
lParam3: LONGINT);
|
|
INLINE $2F3C,$A000,$0E00,$A8FD;
|
|
FUNCTION PrDrvrDCE: Handle;
|
|
INLINE $2F3C,$9400,$0000,$A8FD;
|
|
FUNCTION PrDrvrVers: INTEGER;
|
|
INLINE $2F3C,$9A00,$0000,$A8FD;
|
|
|
|
|
|
{$ENDC} { UsingPrinting }
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
END.
|
|
{$ENDC}
|
|
|