oster@dewey.soe.berkeley.edu (David Phillip Oster) (12/20/88)
/* MacProtos.h */ /* These ANSI C prototypes for the Macintosh toolbox functions are based on Tech note 45, with additions for the 128K ROMs from Inside Mac V4. They have been checked fairly carefully, uncovering a few misspellings and other bugs in that tech note. Note: I have made a few small changes and additions to MacTypes. In particular, I think that ProcPtr should be a pointer to a procedure, i.e., a function returning void. I also defined the type FilterProc to be a function returning a Boolean. Changes from the definitions in Inside Mac: The functions NewWindow and GetNewWindow take a pointer to a window record, or NIL to allocate in the heap. Inside Mac declares these as Ptr. I made them WindowPeeks. Likewise NewDialog and GetNewDialog ought to take DialogPeeks. Finally, UnloadSeg is documented as taking a Ptr. I made it a ProcPtr. I think that's it. Please send any corrections to me: Stew Rubenstein stew@lhasa.harvard.edu seismo!harvardlhasa!stew David Oster: I've made a few calls take (void *) i.e, a pointer to anything where it is appropriate BlockMove, FSRead, FSWrite... I've taken out Stew's filterproc definition because it doesn't force the necessary use of the "pascal" keyword. */ typedef ProcPtr FilterProc; /* AppleTalk Manager [AM] */ #ifndef _MacProtos_ #define _MacProtos_ #ifndef _MacTypes_ #include <MacTypes.h> #endif #ifdef _AppleTalk_ pascal OSErr ATPAddRsp(ABRecHandle); pascal OSErr ATPCloseSocket(int atpSocket); pascal OSErr ATPGetRequest(ABRecHandle, Boolean); pascal OSErr ATPLoad(void); pascal OSErr ATPOpenSocket(AddrBlock addrRcvd, Byte *atpSocket); pascal OSErr ATPReqCancel(ABRecHandle, Boolean); pascal OSErr ATPRequest(ABRecHandle, Boolean); pascal OSErr ATPResponse(ABRecHandle, Boolean); pascal OSErr ATPRspCancel(ABRecHandle, Boolean); pascal OSErr ATPSndRequest(ABRecHandle, Boolean); pascal OSErr ATPSndRsp(ABRecHandle, Boolean); pascal OSErr ATPUnload(void); pascal OSErr DDPCloseSocket(int theSocket); pascal OSErr DDPOpenSocket(Byte *theSocket, Ptr sktListener); pascal OSErr DDPRdCancel(ABRecHandle); pascal OSErr DDPRead(ABRecHandle, Boolean retCksumErrs, Boolean); pascal OSErr DDPWrite(ABRecHandle, Boolean doChecksum, Boolean); pascal OSErr GetNodeAddress(int *myNode, int *myNet); pascal Boolean IsATPOpen(void); pascal Boolean IsMPPOpen(void); pascal OSErr LAPCloseProtocol(ABByte theLAPType); pascal OSErr LAPOpenProtocol(ABByte theLAPType, Ptr protoPtr); pascal OSErr LAPRdCancel(ABRecHandle); pascal OSErr LAPRead(ABRecHandle, Boolean); pascal OSErr LAPWrite(ABRecHandle, Boolean); pascal OSErr MPPClose(void); pascal OSErr MPPOpen(void); pascal OSErr NBPConfirm(ABRecHandle, Boolean); pascal OSErr NBPExtract(Ptr theBuffer, int numInBuf, int whichOne, EntityName *abEntity, AddrBlock *address); pascal OSErr NBPLoad(void); pascal OSErr NBPLookup(ABRecHandle, Boolean); pascal OSErr NBPRegister(ABRecHandle, Boolean); pascal OSErr NBPRemove(EntityPtr abEntity); pascal OSErr NBPUnload(void); #endif /* Control Manager [CM] */ #ifdef _ControlMgr_ pascal void DisposeControl(ControlHandle); pascal void DragControl(ControlHandle, Point start, Rect *limit, Rect *slop, int axis); pascal void Draw1Control(ControlHandle); pascal void DrawControls(WindowPtr); pascal int FindControl(Point where, WindowPtr, ControlHandle *ch); pascal long GetCRefCon(ControlHandle); pascal void GetCTitle(ControlHandle, StringPtr title); pascal ProcPtr GetCtlAction(ControlHandle); pascal int GetCtlMin(ControlHandle); pascal int GetCtlMax(ControlHandle); pascal int GetCtlValue(ControlHandle); pascal ControlHandle GetNewControl(int ID, WindowPtr wnd); pascal void HideControl(ControlHandle); pascal void HiliteControl(ControlHandle, int hiliteState); pascal void KillControls(WindowPtr); pascal void MoveControl(ControlHandle, int h, int v); pascal ControlHandle NewControl(WindowPtr, Rect *bounds, StringPtr title, Boolean vis, int val, int min, int max, int procID, long refCon); pascal void SetCRefCon(ControlHandle, long data); pascal void SetCTitle(ControlHandle, StringPtr title); pascal void SetCtlAction(ControlHandle, ProcPtr actionProc); pascal void SetCtlMax(ControlHandle, int); pascal void SetCtlMin(ControlHandle, int); pascal void SetCtlValue(ControlHandle, int); pascal void ShowControl(ControlHandle); pascal void SizeControl(ControlHandle, int w, int h); pascal int TestControl(ControlHandle, Point); pascal int TrackControl(ControlHandle, Point start, ProcPtr actionProc); pascal void UpdtControl(WindowPtr, RgnHandle); #endif /* Desk Manager [DS] */ #ifdef _DeskMgr_ pascal void CloseDeskAcc(int refnum); pascal int OpenDeskAcc(StringPtr theAcc); pascal void SystemClick(EventRecord *theEvent, WindowPtr); pascal Boolean SystemEdit(int editCmd); pascal Boolean SystemEvent(EventRecord *theEvent); pascal void SystemMenu(long menuResult); pascal void SystemTask(void); #endif /* Dialog Manager [DL] */ #ifdef _DialogMgr_ pascal int Alert(int alertID, FilterProc filterProc); pascal int CautionAlert(int alertID, FilterProc filterProc); pascal void CloseDialog(DialogPtr); pascal void CouldAlert(int alertID); pascal void CouldDialog(int dialogID); #ifdef _EventMgr_ pascal Boolean DialogSelect(EventRecord *theEvent, DialogPtr *theDialog, int *itemHit); #endif pascal void DisposDialog(DialogPtr); pascal void DlgCut(DialogPtr); pascal void DlgCopy(DialogPtr); pascal void DlgDelete(DialogPtr); pascal void DlgPaste(DialogPtr); pascal void DrawDialog(DialogPtr); pascal void ErrorSound(ProcPtr soundProc); pascal int FindDItem(DialogPtr, Point); pascal void FreeAlert(int alertID); pascal void FreeDialog(int dialogID); pascal int GetAlrtStage(void); pascal void GetDItem(DialogPtr, int itemNo, int *itemType, Handle *item, Rect *box); pascal void GetIText(Handle item, StringPtr text); pascal DialogPtr GetNewDialog(int dlogID, DialogPeek dStorage, WindowPtr behind); pascal void HideDItem(DialogPtr, int itemNo); pascal void InitDialogs(ProcPtr resumeProc); #ifdef _EventMgr_ pascal Boolean IsDialogEvent(EventRecord *theEvent); #endif pascal void ModalDialog(FilterProc filterProc, int *itemHit); pascal DialogPtr NewDialog(DialogPeek dStorage, Rect *bounds, StringPtr title, Boolean vis, int procID, WindowPtr behind, Boolean goAway, long refCon, Handle items); pascal int NoteAlert(int alertID, FilterProc filterProc); pascal void ParamText(StringPtr pm0, StringPtr pm1, StringPtr pm2, StringPtr pm3); pascal void ResetAlrtStage(void); pascal void SelIText(DialogPtr, int itemNo, int strtSel, int endSel); pascal void SetDAFont(int fontNum); pascal void SetDItem(DialogPtr, int itemNo, int itemType, Handle item, Rect *box); pascal void SetIText(Handle item, StringPtr text); pascal void ShowDItem(DialogPtr, int itemNo); pascal int StopAlert(int alertID, FilterProc filterProc); pascal void UpdtDialog(DialogPtr, RgnHandle updateRgn); #endif /* Disk Driver [DD] */ #ifdef _DiskDvr_ pascal OSErr DiskEject(int drvNum); pascal OSErr SetTagBuffer(Ptr buffPtr); pascal OSErr DriveStatus(int drvNum, DrvSts *stat); #endif /* Event Manager/OS [OE] */ #ifdef _EventMgr_ pascal void FlushEvents(int evtMask, int stopMask); #ifdef _OSUtil_ pascal QHdrPtr GetEvQHdr(void); #endif pascal Boolean GetOSEvent(int evtMask, EventRecord *Evt); pascal Boolean OSEventAvail(int evtMask, EventRecord *Evt); pascal OSErr PostEvent(int evtCode, long evtMsg); pascal OSErr PPostEvent(int evtCode, long evtMsg, EvQEl *qEl); pascal void SetEventMask(int theMask); /* Event Manager/Toolbox [EM] */ pascal Boolean Button(void); pascal Boolean EventAvail(int evtMask, EventRecord *Evt); pascal long GetCaretTime(void); pascal long GetDblTime(void); pascal void GetKeys(KeyMap *theKeys); pascal void GetMouse(Point *mouseLoc); pascal Boolean GetNextEvent(int evtMask, EventRecord *Evt); pascal Boolean StillDown(void); pascal long TickCount(void); pascal Boolean WaitMouseUp(void); #endif /* File/Device Manager [FL/DV] */ #ifdef _FileMgr_ pascal OSErr Allocate(int refnum, long *count); pascal OSErr CloseDriver(int refNum); pascal OSErr Control(int refNum, int csCode, Ptr csParamPtr); pascal OSErr Create(StringPtr fileName, int vRef, OSType creator, OSType fileType); pascal OSErr Eject(StringPtr volName, int vRef); pascal OSErr FlushVol(StringPtr volName, int vRef); pascal OSErr FSClose(int ref); pascal OSErr FSDelete(StringPtr fileName, int vRef); pascal OSErr FSOpen(StringPtr fileName, int vRef, int *ref); pascal OSErr FSRead(int refnum, long *count, void *buffPtr); pascal OSErr FSWrite(int refnum, long *count, void *buffPtr); #ifdef _DeviceMgr_ pascal DCtlHandle GetDCtlEntry(int refNum); #endif pascal OSErr GetEOF(int refnum, long *logEOF); pascal OSErr GetFInfo(StringPtr fileName, int vRef, FInfo *fndInfo); pascal OSErr GetFPos(int refnum, long *filePos); #ifdef _OSUtil_ pascal QHdrPtr GetDrvHdr(void); pascal QHdrPtr GetFSQHdr(void); pascal QHdrPtr GetVCBQHdr(void); #endif pascal OSErr GetVInfo(int drvNum, StringPtr volName, int *vRef, long *freeBytes); pascal OSErr GetVol(StringPtr volName, int *vRef); pascal OSErr GetVRefNum(int pathRef, int *vRef); pascal OSErr KillIO(int refNum); pascal OSErr OpenDriver(StringPtr name, int *refNum); pascal OSErr OpenRF(StringPtr fileName, int vRef, int *ref); pascal OSErr Rename(StringPtr oldName, int vRef, StringPtr newName); pascal OSErr RstFLock(StringPtr fileName, int vRef); pascal OSErr SetEOF(int refnum, long logEOF); pascal OSErr SetFInfo(StringPtr fileName, int vRef, FInfo *fndInfo); pascal OSErr SetFLock(StringPtr fileName, int vRef); pascal OSErr SetFPos(int refnum, int posMode, long posOff); pascal OSErr SetVol(StringPtr volName, int vRef); pascal OSErr Status(int refNum, int csCode, Ptr csParamPtr); pascal OSErr UnMountVol(StringPtr volName, int vRef); pascal void FInitQueue(void); pascal OSErr PBAllocate(ParmBlkPtr, Boolean); pascal OSErr PBAllocContig(ParmBlkPtr, Boolean); pascal OSErr PBClose(ParmBlkPtr, Boolean); pascal OSErr PBControl( ParmBlkPtr, Boolean); pascal OSErr PBCreate(ParmBlkPtr, Boolean); pascal OSErr PBDelete(ParmBlkPtr, Boolean); pascal OSErr PBEject(ParmBlkPtr); pascal OSErr PBFlushFile(ParmBlkPtr, Boolean); pascal OSErr PBFlushVol(ParmBlkPtr, Boolean); pascal OSErr PBGetEOF(ParmBlkPtr, Boolean); pascal OSErr PBGetVInfo(ParmBlkPtr, Boolean); pascal OSErr PBGetFInfo(ParmBlkPtr, Boolean); pascal OSErr PBGetFPos(ParmBlkPtr, Boolean); pascal OSErr PBGetVol(ParmBlkPtr, Boolean); pascal OSErr PBKillIO(ParmBlkPtr, Boolean); pascal OSErr PBMountVol(ParmBlkPtr); pascal OSErr PBOffLine(ParmBlkPtr); pascal OSErr PBOpen(ParmBlkPtr, Boolean); pascal OSErr PBOpenRF(ParmBlkPtr, Boolean); pascal OSErr PBRead(ParmBlkPtr, Boolean); pascal OSErr PBRename(ParmBlkPtr, Boolean); pascal OSErr PBRstFLock(ParmBlkPtr, Boolean); pascal OSErr PBSetEOF(ParmBlkPtr, Boolean); pascal OSErr PBSetFInfo(ParmBlkPtr, Boolean); pascal OSErr PBSetFLock(ParmBlkPtr, Boolean); pascal OSErr PBSetFPos(ParmBlkPtr, Boolean); pascal OSErr PBSetFVers(ParmBlkPtr, Boolean); pascal OSErr PBSetVol(ParmBlkPtr, Boolean); pascal OSErr PBStatus(ParmBlkPtr, Boolean); pascal OSErr PBUnMountVol(ParmBlkPtr); pascal OSErr PBWrite(ParmBlkPtr, Boolean); pascal OSErr PBLockRange(ParmBlkPtr, Boolean); pascal OSErr PBUnlockRange(ParmBlkPtr, Boolean); #endif #ifdef _HFS_ pascal OSErr PBHGetVInfo(HParmBlkPtr, Boolean); pascal OSErr PBHGetVol(WDPBPtr, Boolean); pascal OSErr PBHSetVol(WDPBPtr, Boolean); pascal OSErr PBHOpen(HParmBlkPtr, Boolean); pascal OSErr PBHOpenRF(HParmBlkPtr, Boolean); pascal OSErr PBHCreate(HParmBlkPtr, Boolean); pascal OSErr PBDirCreate(HParmBlkPtr, Boolean); pascal OSErr PBHDelete(HParmBlkPtr, Boolean); pascal OSErr PBHGetFInfo(HParmBlkPtr, Boolean); pascal OSErr PBHSetFInfo(HParmBlkPtr, Boolean); pascal OSErr PBHRstFLock(HParmBlkPtr, Boolean); pascal OSErr PBHSetFLock(HParmBlkPtr, Boolean); pascal OSErr PBHRename(HParmBlkPtr, Boolean); pascal OSErr PBGetCatInfo(CInfoPBPtr, Boolean); pascal OSErr PBSetCatInfo(CInfoPBPtr, Boolean); pascal OSErr PBCatMove(CMovePBPtr, Boolean); pascal OSErr PBOpenWD(WDPBPtr, Boolean); pascal OSErr PBCloseWD(WDPBPtr, Boolean); pascal OSErr PBGetWDInfo(WDPBPtr, Boolean); pascal OSErr PBGetFCBInfo(FCBPBPtr, Boolean); #endif /* Font Manager [FM] */ #ifdef _FontMgr_ pascal FMOutPtr FMSwapFont(FMInput *inRec); pascal void GetFNum(StringPtr fontName, int *theNum); pascal void GetFontName(int fontNum, StringPtr theName); pascal void InitFonts(void); pascal Boolean RealFont(int fontNum, int size); pascal void SetFontLock(Boolean lockFlag); pascal void FontMetrics(FMetricRec *theMetrics); pascal void SetFScaleDisable(Boolean); pascal void SetFractEnable(Boolean); #endif /* List Manager [LM] */ #ifdef _ListMgr_ pascal ListHandle LNew(Rect *rView, Rect *dataBounds, Point cSize, int theProc, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert); pascal void LDispose(ListHandle); pascal int LAddColumn(int count, int colNum, ListHandle); pascal int LAddRow(int count, int rowNum, ListHandle); pascal void LDelColumn(int count, int colNum, ListHandle); pascal void LDelRow(int count, int rowNum, ListHandle); pascal void LAddToCell(Ptr data, int dataLen, Cell, ListHandle); pascal void LClrCell(Cell, ListHandle); pascal void LGetCell(Ptr data, int *dataLen, Cell, ListHandle); pascal void LSetCell(Ptr data, int dataLen, Cell, ListHandle); pascal void LCellSize(Point, ListHandle); pascal Boolean LGetSelect(Boolean next, Cell *, ListHandle); pascal void LSetSelect(Boolean setIt, Cell, ListHandle); pascal Boolean LClick(Point, int modifiers, ListHandle); pascal long LLastClick(ListHandle); /* really returns a Cell */ pascal void LFind(int *offset, int *len, Cell, ListHandle); pascal Boolean LNextCell(Boolean hNext, Boolean vNext, Cell *, ListHandle); pascal void LRect(Rect *, Cell, ListHandle); pascal Boolean LSearch(Ptr dataPtr, int dataLen, ProcPtr searchProc, Cell *, ListHandle); pascal void LSize(int listWidth, int listHeight, ListHandle); pascal void LDraw(Cell, ListHandle); pascal void LDoDraw(Boolean drawIt, ListHandle); pascal void LScroll(int dCols, int dRows, ListHandle); pascal void LAutoScroll(ListHandle); pascal void LUpdate(RgnHandle, ListHandle); pascal void LActivate(Boolean, ListHandle); #endif /* Memory Manager [MM] */ #ifdef _MemoryMgr_ pascal THz ApplicZone(void); pascal void BlockMove(void *sourcePtr, void *destPtr, Size byteCount); pascal Size CompactMem(Size cbNeeded); pascal void DisposHandle(Handle); pascal void DisposPtr(void *); pascal void EmptyHandle(Handle); pascal long FreeMem(void); pascal Ptr GetApplLimit(void); pascal Size GetHandleSize(Handle); pascal Size GetPtrSize(Ptr); pascal THz GetZone(void); pascal Handle GZSaveHnd(void); pascal THz HandleZone(Handle); pascal void HClrRBit(Handle); pascal SignedByte HGetState(Handle); pascal void HLock(Handle); pascal void HNoPurge(Handle); pascal void HPurge(Handle); pascal void HSetRBit(Handle); pascal void HSetState(Handle, SignedByte flags); pascal void HUnlock(Handle); pascal void InitApplZone(void); pascal void InitZone(ProcPtr, int cMoreMstrs, Ptr limitPtr, Ptr startPtr); pascal void MaxApplZone(void); pascal long MaxBlock(void); pascal Size MaxMem(Size *grow); pascal OSErr MemError(void); pascal void MoreMasters(void); pascal void MoveHHi(Handle); pascal Handle NewEmptyHandle(void); pascal Handle NewHandle(Size logicalSize); pascal Ptr NewPtr(Size logicalSize); pascal THz PtrZone(Ptr); pascal void PurgeMem(Size cbNeeded); pascal void PurgeSpace(long *total, long *contig); pascal void ReallocHandle(Handle, Size logicalSize); pascal Handle RecoverHandle(Ptr); pascal void ResrvMem(Size cbNeeded); pascal void SetApplBase(Ptr startPtr); pascal void SetApplLimit(Ptr zoneLimit); pascal void SetGrowZone(ProcPtr); pascal void SetHandleSize(Handle, Size newSize); pascal void SetPtrSize(Ptr, Size newSize); pascal void SetZone(THz); pascal long StackSpace(void); pascal THz SystemZone(void); pascal Ptr TopMem(void); #endif /* Menu Manager [MN] */ #ifdef _MenuMgr_ pascal void AddResMenu(MenuHandle, ResType); pascal void AppendMenu(MenuHandle, StringPtr data); pascal void CalcMenuSize(MenuHandle); pascal void CheckItem(MenuHandle, int item, Boolean checked); pascal void ClearMenuBar(void); pascal int CountMItems(MenuHandle); pascal void DeleteMenu(int menuID); pascal void DelMenuItem(MenuHandle, int item); pascal void DisableItem(MenuHandle, int item); pascal void DisposeMenu(MenuHandle); pascal void DrawMenuBar(void); pascal void EnableItem(MenuHandle, int item); pascal void FlashMenuBar(int menuID); pascal void GetItem(MenuHandle, int item, StringPtr itemString); pascal void GetItemIcon(MenuHandle, int item, int *icon); pascal void GetItemMark(MenuHandle, int item, int *markChar); pascal void GetItemStyle(MenuHandle, int item, int *chStyle); pascal MenuHandle GetMenu(int resourceID); pascal Handle GetMenuBar(void); pascal MenuHandle GetMHandle(int menuID); pascal Handle GetNewMBar(int menuBarID); pascal void HiliteMenu(int menuID); pascal void InitMenus(void); pascal void InsertMenu(MenuHandle, int beforeID); pascal void InsertResMenu(MenuHandle, ResType, int afterItem); pascal void InsMenuItem(MenuHandle, StringPtr, int afterItem); pascal long MenuKey(int); pascal long MenuSelect(Point startPt); pascal MenuHandle NewMenu(int menuID, StringPtr title); pascal void SetItem(MenuHandle, int item, StringPtr itemString); pascal void SetItemIcon(MenuHandle, int item, int icon); pascal void SetItemStyle(MenuHandle, int item, int chStyle); pascal void SetItemMark(MenuHandle, int item, int markChar); pascal void SetMenuBar(Handle menuList); pascal void SetMenuFlash(int count); #endif /* OS Utilities [OU] */ #ifdef _OSUtil_ pascal void Date2Secs(DateTimeRec *date, long *secs); pascal void Delay(long numTicks, long *finalTicks); pascal OSErr DeQueue(QElemPtr qEntry, QHdrPtr theQueue); pascal void Enqueue(QElemPtr qEntry, QHdrPtr theQueue); pascal void Environs(int *rom, int *machine); pascal Boolean EqualString(StringPtr aStr, StringPtr bStr, Boolean caseSens, Boolean diacSens); pascal void GetDateTime(long *secs); pascal SysPPtr GetSysPPtr(void); pascal void GetTime(DateTimeRec *date); pascal long GetTrapAddress(int trapNum); pascal OSErr HandAndHand(Handle aHandle, Handle bHandle); pascal OSErr HandToHand(Handle *h); pascal OSErr InitUtil(void); /****** TrapType is undefined !!!! pascal long NGetTrapAddress(int trapNum, TrapType); pascal void NSetTrapAddress(long trapAddr, int trapNum, TrapType); ***** TrapType is undefined !!!! */ pascal OSErr PtrAndHand(void *, Handle, long size); pascal OSErr PtrToHand(void *srcPtr, Handle *dstHandle, long size); pascal OSErr PtrToXHand(void *srcPtr, Handle dstHandle, long size); pascal OSErr ReadDateTime(long *secs); pascal int RelString(StringPtr aStr, StringPtr bStr, Boolean caseSens, Boolean diacSens); pascal void Restart(void); pascal void Secs2Date(long secs, DateTimeRec *date); pascal OSErr SetDateTime(long secs); pascal void SetTime(DateTimeRec *date); pascal void SetTrapAddress(long trapAddr, int trapNum); pascal void SysBeep(int duration); pascal void UprString(StringPtr, Boolean diacSens); pascal OSErr WriteParam(void); #endif /* Package Manager [PK] */ pascal int DIBadMount(Point where, long evtMessage); pascal OSErr DIFormat(int drvNum); pascal void DILoad(void); pascal void DIUnload(void); pascal OSErr DIVerify(int drvNum); pascal OSErr DIZero(int drvNum, StringPtr volName); pascal void InitAllPacks(void); pascal void NumToString(long, StringPtr s); pascal void StringToNum(StringPtr, long *n); #ifdef _PackageMgr_ pascal void InitPack(int packID); #endif #ifdef _IntlPkg_ pascal int IUCompString(StringPtr aStr, StringPtr bStr); pascal void IUDateString(long dateTime, DateForm form, StringPtr result); pascal void IUDatePString(long dateTime, DateForm form, StringPtr result, Handle intlParam); pascal int IUEqualString(StringPtr aStr, StringPtr bStr); pascal Handle IUGetIntl(int theID); pascal int IUMagString(Ptr aPtr, Ptr bPtr, int aLen, int bLen); pascal int IUMagIDString(Ptr aPtr, Ptr bPtr, int aLen, int bLen); pascal Boolean IUMetric(void); pascal void IUSetIntl(int refNum, int theID, Handle intlParam); pascal void IUTimeString(long dateTime, Boolean wantSeconds, StringPtr result); pascal void IUTimePString(long dateTime, Boolean wantSeconds, StringPtr result, Handle intlParam); #endif #ifdef _StdFilePkg_ pascal void SFGetFile(Point where, StringPtr prompt, FilterProc fileFilter, int numTypes, SFTypeList *typeList, ProcPtr dlgHook, SFReply *reply); pascal void SFPutFile(Point where, StringPtr prompt, StringPtr origName, ProcPtr dlgHook, SFReply *reply); pascal void SFPGetFile(Point where, StringPtr prompt, FilterProc fileFilter, int numTypes, SFTypeList *typeList, ProcPtr dlgHook, SFReply *reply, int dlgID, FilterProc filterProc); pascal void SFPPutFile(Point where, StringPtr prompt, StringPtr origName, ProcPtr dlgHook, SFReply *reply, int dlgID, FilterProc filterProc); #endif /* Print Manager [PR] */ #ifdef _PrintMgr_ pascal void PrClose(void); pascal void PrintDefault(THPrint); pascal void PrCloseDoc(TPPrPort); pascal void PrClosePage(TPPrPort); pascal void PrCtlCall(int iWhichCtl, long lparm1, long lparm2, long lparm3); pascal void PrDrvrClose(void); pascal Handle PrDrvrDCE(void); pascal void PrDrvrOpen(void); pascal int PrDrvrVers(void); pascal int PrError(void); pascal Boolean PrJobDialog(THPrint); pascal void PrJobMerge(THPrint hPrintSrc, THPrint hPrintDst); pascal void PrOpen(void); pascal TPPrPort PrOpenDoc(THPrint, TPPrPort, Ptr pIOBuf); pascal void PrOpenPage(TPPrPort, TPRect pPageFrame); pascal void PrPicFile(THPrint, TPPrPort, Ptr pIOBuf, Ptr pDevBuf, TPrStatus *prStatus); pascal void PrSetError(int iErr); pascal Boolean PrStlDialog(THPrint); pascal Boolean PrValidate(THPrint); #endif /* QuickDraw [QD] */ #ifdef _Quickdraw_ pascal void AddPt(Point srcPt, Point *dstPt); pascal void BackColor(long color); pascal void BackPat(Pattern *pat); pascal int CharWidth(int ch); pascal void ClipRect(Rect *r); pascal void ClosePicture(void); pascal void ClosePoly(void); pascal void ClosePort(GrafPtr); pascal void CloseRgn(RgnHandle); pascal void ColorBit(int whichBit); pascal void CopyBits(BitMap *srcBits, BitMap *dstBits, Rect *srcRect, Rect *dstRect, int mode, RgnHandle maskRgn); pascal void CopyRgn(RgnHandle srcRgn, RgnHandle dstRgn); pascal void DiffRgn(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn); pascal void DisposeRgn(RgnHandle); pascal void DrawChar(int ch); pascal void DrawPicture(PicHandle, Rect *dstRect); pascal void DrawString(StringPtr); pascal void DrawText(Ptr textBuf, int firstByte, int byteCount); pascal Boolean EmptyRect(Rect *r); pascal Boolean EmptyRgn(RgnHandle); pascal Boolean EqualPt(Point pt1, Point pt2); pascal Boolean EqualRect(Rect *Rect1, Rect *Rect2); pascal Boolean EqualRgn(RgnHandle rgnA, RgnHandle rgnB); pascal void EraseArc(Rect *r, int startAngle, int arcAngle); pascal void EraseOval(Rect *r); pascal void ErasePoly(PolyHandle); pascal void EraseRect(Rect *r); pascal void EraseRgn(RgnHandle); pascal void EraseRoundRect(Rect *r, int ovalWidth, int ovalHeight); pascal void FillArc(Rect *r, int startAngle, int arcAngle, Pattern *pat); pascal void FillOval(Rect *r, Pattern *pat); pascal void FillPoly(PolyHandle, Pattern *pat); pascal void FillRect(Rect *r, Pattern *pat); pascal void FillRgn(RgnHandle, Pattern *pat); pascal void FillRoundRect(Rect *r, int ovalWidth, int ovalHeight, Pattern *pat); pascal void ForeColor(long color); pascal void FrameArc(Rect *r, int startAngle, int arcAngle); pascal void FrameOval(Rect *r); pascal void FramePoly(PolyHandle); pascal void FrameRect(Rect *r); pascal void FrameRgn(RgnHandle); pascal void FrameRoundRect(Rect *r, int ovalWidth, int ovalHeight); pascal void GetClip(RgnHandle); pascal void GetFontInfo(FontInfo *info); pascal void GetPen(Point *p); pascal void GetPenState(PenState *pnState); pascal Boolean GetPixel(int h, int v); pascal void GetPort(GrafPtr *port); pascal void GlobalToLocal(Point *p); pascal void GrafDevice(int device); pascal void HideCursor(void); pascal void HidePen(void); pascal void InitCursor(void); pascal void InitGraf(Ptr GlobalPtr); pascal void InitPort(GrafPtr); pascal void InsetRect(Rect *r, int dh, int dv); pascal void InsetRgn(RgnHandle, int dh, int dv); pascal void InvertArc(Rect *r, int startAngle, int arcAngle); pascal void InvertOval(Rect *r); pascal void InvertPoly(PolyHandle); pascal void InvertRect(Rect *r); pascal void InvertRgn(RgnHandle); pascal void InvertRoundRect(Rect *r, int ovalWidth, int ovalHeight); pascal void KillPicture(PicHandle); pascal void KillPoly(PolyHandle); pascal void Line(int dh, int dv); pascal void LineTo(int h, int v); pascal void LocalToGlobal(Point *p); pascal void MapPoly(PolyHandle, Rect *srcRect, Rect *dstRect); pascal void MapPt(Point *p, Rect *srcRect, Rect *dstRect); pascal void MapRect(Rect *r, Rect *srcRect, Rect *dstRect); pascal void MapRgn(RgnHandle, Rect *srcRect, Rect *dstRect); pascal void Move(int dh, int dv); pascal void MovePortTo(int leftGlobal, int topGlobal); pascal void MoveTo(int h, int v); pascal RgnHandle NewRgn(void); pascal void ObscureCursor(void); pascal void OffsetPoly(PolyHandle, int dh, int dv); pascal void OffsetRect(Rect *r, int dh, int dv); pascal void OffsetRgn(RgnHandle, int dh, int dv); pascal PicHandle OpenPicture(Rect *picFrame); pascal PolyHandle OpenPoly(void); pascal void OpenPort(GrafPtr); pascal void OpenRgn(void); pascal void PaintArc(Rect *r, int startAngle, int arcAngle); pascal void PaintOval(Rect *r); pascal void PaintPoly(PolyHandle); pascal void PaintRect(Rect *r); pascal void PaintRgn(RgnHandle); pascal void PaintRoundRect(Rect *r, int ovalWidth, int ovalHeight); pascal void PenMode(int mode); pascal void PenNormal(void); pascal void PenPat(Pattern *pat); pascal void PenSize(int width, int height); pascal void PicComment(int kind, int datasize, Handle dataHandle); pascal void PortSize(int width, int height); pascal void Pt2Rect(Point pt1, Point pt2, Rect *dstRect); pascal Boolean PtInRect(Point, Rect *r); pascal Boolean PtInRgn(Point, RgnHandle); pascal void PtToAngle(Rect *r, Point, int *angle); pascal int Random(void); pascal Boolean RectInRgn(Rect *r, RgnHandle); pascal void RectRgn(RgnHandle, Rect *r); pascal void ScalePt(Point *p, Rect *srcRect, Rect *dstRect); pascal void ScrollRect(Rect *r, int dh, int dv, RgnHandle updateRgn); pascal Boolean SectRect(Rect *src1, Rect *src2, Rect *dstRect); pascal void SectRgn(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn); pascal void SetClip(RgnHandle); pascal void SetCursor(Cursor *c); pascal void SetEmptyRgn(RgnHandle); pascal void SetOrigin(int h, int v); pascal void SetPenState(PenState *pnState); pascal void SetPort(GrafPtr); pascal void SetPortBits(BitMap *bm); pascal void SetPt(Point *p, int h, int v); pascal void SetRect(Rect *r, int left, int top, int right, int bottom); pascal void SetRectRgn(RgnHandle, int left, int top, int right, int bottom); pascal void SetStdProcs(QDProcs *procs); pascal void ShowCursor(void); pascal void ShowPen(void); pascal void SpaceExtra(Fixed extra); pascal void StdArc(GrafVerb, Rect *r, int startAngle, int arcAngle); pascal void StdBits(BitMap *srcBits, Rect *srcRect, Rect *dstRect, int mode, RgnHandle maskRgn); pascal void StdComment(int kind, int dataSize, Handle dataHandle); pascal void StdGetPic(Ptr dataPtr, int byteCount); pascal void StdLine(Point newPt); pascal void StdOval(GrafVerb, Rect *r); pascal void StdPoly(GrafVerb, PolyHandle); pascal void StdPutPic(Ptr dataPtr, int byteCount); pascal void StdRect(GrafVerb, Rect *r); pascal void StdRgn(GrafVerb, RgnHandle); pascal void StdRRect(GrafVerb, Rect *r, int ovalwidth, int ovalheight); pascal void StdText(int byteCount, Ptr textBuf, Point numer, Point denom); pascal int StdTxMeas(int byteCount, Ptr textAddr, Point *numer, Point *denom, FontInfo *info); pascal int StringWidth(StringPtr); pascal void StuffHex(Ptr thingPtr, StringPtr); pascal void SubPt(Point srcPt, Point *dstPT); pascal void TextFace(int face); pascal void TextFont(int font); pascal void TextMode(int mode); pascal void TextSize(int size); pascal int TextWidth(Ptr textBuf, int firstByte, int byteCount); pascal void UnionRect(Rect *src1, Rect *src2, Rect *dstRect); pascal void UnionRgn(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn); pascal void XorRgn(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn); pascal void SeedFill(Ptr srcPtr, Ptr dstPtr, int srcRow, int dstRow, int height, int words, int seedH, int seedV); pascal void CalcMask(Ptr srcPtr, Ptr dstPtr, int srcRow, int dstRow, int height, int words); pascal void CopyMask(BitMap *srcBits, BitMap *maskBits, BitMap *dstBits, Rect *srcRect, Rect *maskRect, Rect *dstRect); pascal void MeasureText(int count, Ptr textAddr, Ptr charLocs); #endif /* Resource Manager [RM] */ #ifdef _ResourceMgr_ pascal void AddResource(Handle theData, ResType, int theID, StringPtr name); pascal void ChangedResource(Handle theResource); pascal void CloseResFile(int refNum); pascal int CountResources(ResType); pascal int CountTypes(void); pascal void CreateResFile(StringPtr fileName); pascal int CurResFile(void); pascal void DetachResource(Handle theResource); pascal Handle GetIndResource(ResType, int index); pascal void GetIndType(ResType *, int index); pascal Handle GetNamedResource(ResType, StringPtr name); pascal int GetResAttrs(Handle theResource); pascal int GetResFileAttrs(int refNum); pascal void GetResInfo(Handle theResource, int *theID, ResType *theType, StringPtr name); pascal Handle GetResource(ResType, int theID); pascal int HomeResFile(Handle theResource); pascal int InitResources(void); pascal void LoadResource(Handle theResource); pascal int OpenResFile(StringPtr fileName); pascal void ReleaseResource(Handle theResource); pascal void RmveResource(Handle theResource); pascal int ResError(void); pascal void RsrcZoneInit(void); pascal void SetResAttrs(Handle theResource, int attrs); pascal void SetResFileAttrs(int refNum, int attrs); pascal void SetResInfo(Handle theResource, int theID, StringPtr name); pascal void SetResLoad(Boolean load); pascal void SetResPurge(Boolean install); pascal long SizeResource(Handle theResource); pascal int UniqueID(ResType); pascal void UpdateResFile(int refNum); pascal void UseResFile(int refNum); pascal void WriteResource(Handle theResource); pascal int Count1Types(void); pascal void Get1IndType(ResType *theType, int index); pascal int Count1Resources(ResType); pascal Handle Get1IndResource(ResType, int index); pascal Handle Get1Resource(ResType, int theID); pascal Handle Get1NamedResource(ResType, StringPtr name); pascal int Unique1ID(ResType); pascal long MaxSizeRsrc(Handle); pascal long RsrcMapEntry(Handle); /* pascal int OpenRFPerm(StringPtr fileName, int vRefNum, int permission); */ #endif /* Scrap Manager [SM] */ #ifdef _ScrapMgr_ pascal long GetScrap(Handle hDest, ResType, long *offset); pascal ScrapStuff *InfoScrap(void); pascal long LoadScrap(void); pascal long PutScrap(long length, ResType, Ptr source); pascal long UnloadScrap(void); pascal long ZeroScrap(void); #endif /* SCSI Manager [SCSI] */ #ifdef _SCSIMgr_ pascal OSErr SCSIReset(void); pascal OSErr SCSIGet(void); pascal OSErr SCSISelect(int targetID); pascal OSErr SCSICmd(Ptr buffer, int count); pascal OSErr SCSIRead(Ptr tibPtr); pascal OSErr SCSIRBlind(Ptr tibPtr); pascal OSErr SCSIWrite(Ptr tibPtr); pascal OSErr SCSIWBlind(Ptr tibPtr); pascal OSErr SCSIComplete(int *stat, int *message, long wait); pascal int SCSIStat(void); #endif /* Segment Loader [SL] */ #ifdef _SegmentLdr_ pascal void ClrAppFiles(int index); pascal void CountAppFiles(int *message, int *count); pascal void ExitToShell(void); pascal void GetAppFiles(int index, AppFile *theFile); pascal void GetAppParms(StringPtr apName, int *apRefNum, Handle *apParam); pascal void UnloadSeg(ProcPtr routineAddr); #endif /* Serial Driver [SR] */ #ifdef _SerialDvr_ pascal void RAMSDClose(SPortSel whichPort); pascal OSErr RAMSDOpen(SPortSel whichPort); pascal OSErr SerClrBrk(int refNum); pascal OSErr SerGetBuf(int refNum, long *count); pascal OSErr SerHShake(int refNum, SerShk *flags); pascal OSErr SerReset(int refNum, int serConfig); pascal OSErr SerSetBrk(int refNum); pascal OSErr SerSetBuf(int refNum, Ptr serBPtr, int serBLen); pascal OSErr SerStatus(int refNum, SerStaRec *serSta); #endif /* Sound Driver [SN] */ #ifdef _SoundDvr_ pascal void GetSoundVol(int *level); pascal void SetSoundVol(int level); pascal Boolean SoundDone(void); pascal void StartSound(Ptr synthRec, long numBytes, ProcPtr completionRtn); pascal void StopSound(void); #endif /* TextEdit [TE] */ #ifdef _TextEdit_ /* pascal void SetClikLoop(FilterProc clikProc, TEHandle); pascal void SetWordBreak(FilterProc wBrkProc, TEHandle); */ pascal void TEActivate(TEHandle); pascal void TEAutoView(Boolean, TEHandle); pascal void TECalText(TEHandle); pascal void TEClick(Point, Boolean extend, TEHandle); pascal void TECopy(TEHandle); pascal void TECut(TEHandle); pascal void TEDeactivate(TEHandle); pascal void TEDelete(TEHandle); pascal void TEDispose(TEHandle); pascal OSErr TEFromScrap(void); pascal long TEGetScrapLen(void); pascal CharsHandle TEGetText(TEHandle); pascal void TEIdle(TEHandle); pascal void TEInit(void); pascal void TEInsert(Ptr text, long length, TEHandle); pascal void TEKey(int ch, TEHandle); pascal TEHandle TENew(Rect *dstRect, Rect *viewRect); pascal void TEPaste(TEHandle); pascal void TEPinScroll(int dh, int dv, TEHandle); pascal Handle TEScrapHandle(void); pascal void TEScroll(int dh, int dv, TEHandle); pascal void TESelView(TEHandle); pascal void TESetJust(int just, TEHandle); pascal void TESetScrapLen(long length); pascal void TESetSelect(long selStart, long selEnd, TEHandle); pascal void TESetText(Ptr text, long length, TEHandle); pascal OSErr TEToScrap(void); pascal void TEUpdate(Rect *rUpdate, TEHandle); pascal void TextBox(Ptr text, long length, Rect *box, int just); #endif /* Time Manager [TIME] */ #ifdef _TimeMgr_ pascal void InsTime(QElemPtr); pascal void RmvTime(QElemPtr); pascal void PrimeTime(QElemPtr); #endif /* ToolBox Utilities [TU] */ #ifdef _ToolboxUtil_ pascal Fract Fix2Frac(Fixed); pascal long Fix2Long(Fixed); /* double Fix2X(Fixed); ** In ToolboxUtil.h ** */ pascal Fixed FixATan2(long a, long b); pascal Fixed FixDiv(Fixed a, Fixed b); pascal Fixed FixMul(Fixed a, Fixed b); pascal Fixed FixRatio(int numer, int denom); pascal int FixRound(Fixed); pascal Fixed Frac2Fix(Fract); /* double Frac2X(Fract); ** In ToolboxUtil.h ** */ pascal Fract FracCos(Fixed); pascal Fract FracDiv(Fract, Fract); pascal Fract FracMul(Fract, Fract); pascal Fract FracSin(Fixed); pascal Fract FracSqrt(Fract); pascal Fixed Long2Fix(long); pascal Fixed X2Fix(double *); pascal Fract X2Frac(double *); pascal StringHandle NewString(StringPtr); pascal void SetString(StringHandle, StringPtr); pascal StringHandle GetString(int stringID); pascal void GetIndString(StringPtr, int strListID, int index); pascal long Munger(Handle, long offset, void *, long len1, void *, long len2); pascal void PackBits(Ptr *srcPtr, Ptr *dstPtr, int srcBytes); pascal void UnpackBits(Ptr *srcPtr, Ptr *dstPtr, int dstBytes); pascal Boolean BitTst(Ptr bytePtr, long bitNum); pascal void BitSet(Ptr bytePtr, long bitNum); pascal void BitClr(Ptr bytePtr, long bitNum); pascal long BitAnd(long val1, long val2); pascal long BitOr(long val1, long val2); pascal long BitXor(long val1, long val2); pascal long BitNot(long val); pascal long BitShift(long val, int count); pascal int HiWord(long); pascal int LoWord(long); pascal void LongMul(long a, long b, Int64Bit *dest); pascal void ScreenRes(int *scrnVRes, int *scrnHres); pascal Handle GetIcon(int iconID); pascal void PlotIcon(Rect *r, Handle theIcon); pascal PatHandle GetPattern(int patID); pascal void GetIndPattern(PatPtr, int patListID, int index); pascal CursHandle GetCursor(int cursorID); pascal void ShieldCursor(Rect *shieldRect, Point offsetPt); pascal PicHandle GetPicture(int picID); pascal long DeltaPoint(Point ptA, Point PtB); pascal Fixed SlopeFromAngle(int angle); pascal int AngleFromSlope(Fixed slope); #endif /* Vertical Retrace [VR] */ #ifdef _VRetraceMgr_ pascal QHdrPtr GetVBLQHdr(void); pascal OSErr VInstall(QElemPtr vblTaskPtr); pascal OSErr VRemove(QElemPtr vblTaskPtr); #endif /* Window Manager [WM] */ #ifdef _WindowMgr_ pascal void BeginUpdate(WindowPtr); pascal void BringToFront(WindowPtr); pascal void CalcVis(WindowPeek); pascal void CalcVisBehind(WindowPeek startWindow, RgnHandle clobberedRgn); #ifdef _EventMgr_ pascal Boolean CheckUpdate(EventRecord *theEvent); #endif pascal void ClipAbove(WindowPeek); pascal void CloseWindow(WindowPtr); pascal void DisposeWindow(WindowPtr); pascal long DragGrayRgn(RgnHandle, Point startPt, Rect *limitRect, Rect *slopRect, int axis, ProcPtr actionProc); pascal void DragWindow(WindowPtr, Point startPt, Rect *boundsRect); pascal void DrawGrowIcon(WindowPtr); pascal void DrawNew(WindowPeek, Boolean update); pascal void EndUpdate(WindowPtr); pascal int FindWindow(Point thePt, WindowPtr *whichWind); pascal WindowPtr FrontWindow(void); pascal WindowPtr GetNewWindow(int windowID, WindowPeek wStorage, WindowPtr behind); pascal PicHandle GetWindowPic(WindowPtr); pascal void GetWMgrPort(GrafPtr *wPort); pascal long GetWRefCon(WindowPtr); pascal void GetWTitle(WindowPtr, StringPtr title); pascal long GrowWindow(WindowPtr, Point startPt, Rect *sizeRect); pascal void HideWindow(WindowPtr); pascal void HiliteWindow(WindowPtr, Boolean fHilite); pascal void InitWindows(void); pascal void InvalRect(Rect *badRect); pascal void InvalRgn(RgnHandle badRgn); pascal void MoveWindow(WindowPtr, int hGlobal, int vGlobal, Boolean front); pascal WindowPtr NewWindow(WindowPeek wStorage, Rect *boundsRect, StringPtr title, Boolean visible, int procID, WindowPtr behind, Boolean goAwayFlag, long refCon); pascal void PaintBehind(WindowPeek startWindow, RgnHandle clobberedRgn); pascal void PaintOne(WindowPeek, RgnHandle clobberedRgn); pascal long PinRect(Rect *r, Point); pascal void SaveOld(WindowPeek); pascal void SelectWindow(WindowPtr); pascal void SendBehind(WindowPtr theWindow, WindowPtr behindWindow); pascal void SetWindowPic(WindowPtr, PicHandle); pascal void SetWTitle(WindowPtr, StringPtr title); pascal void SetWRefCon(WindowPtr, long data); pascal void ShowHide(WindowPtr, Boolean showFlag); pascal void ShowWindow(WindowPtr); pascal void SizeWindow(WindowPtr, int w, int h, Boolean fUpdate); pascal Boolean TrackGoAway(WindowPtr, Point thePt); pascal void ValidRect(Rect *goodRect); pascal void ValidRgn(RgnHandle goodRgn); pascal Boolean TrackBox(WindowPtr, Point, int partCode); pascal void ZoomWindow(WindowPtr, int partCode, Boolean front); #endif #endif