/******************************************** * * Types, defines used in more that one header file. * * Copyright Apple Computer, Inc.1986-90 * All Rights Reserved * * Copyright 1992, 1993, Byte Works, Inc. * ********************************************/ #ifndef __TYPES__ #define __TYPES__ #ifndef noError #define noError 0x0000 #endif #ifndef nil #define nil 0x0L #endif #ifndef NULL #define NULL 0x0L #endif #ifndef NIL #define NIL 0x0L #endif #define dispatcher 0xE10000L /* tool locator dispatch address */ #ifndef TRUE #define TRUE 1 #endif #ifndef true #define true 1 #endif #ifndef FALSE #define FALSE 0 #endif #ifndef false #define false 0 #endif /* RefDescriptors */ #define refIsPointer 0x0000 #define refIsHandle 0x0001 #define refIsResource 0x0002 #define refIsNewHandle 0x0003 typedef unsigned char byte, Byte; typedef unsigned int word, Word; typedef int integer, Integer; typedef long longint, Longint; typedef long Long; typedef unsigned long longword, Longword, LongWord; typedef unsigned long Dblword, DblWord; /* retained for back compatibility */ typedef long Fixed; typedef long Frac; typedef extended Extended; typedef extended *ExtendedPtr; typedef char *ptr, *Ptr, *pointer, *Pointer; typedef ptr *handle, *Handle; typedef Handle *HandlePtr; typedef char *CStringPtr, **CStringHndl, ***CStringHndlPtr; typedef long (*ProcPtr)(void); /* retained for back compatibility */ typedef pascal void (*VoidProcPtr)(void); typedef pascal Word (*WordProcPtr)(void); typedef pascal LongWord (*LongProcPtr)(void); typedef unsigned int boolean, Boolean, BOOLEAN; typedef short OSErr; typedef int *IntPtr ; typedef Ptr FPTPtr; #define String(size) struct {unsigned char textLength; unsigned char text[size];} typedef String(255) Str255, *StringPtr, **StringHandle; typedef String(32) Str32, *String32Ptr, **String32Handle; struct Point { short v; short h; }; typedef struct Point Point, *PointPtr; struct Rect { short v1; short h1; short v2; short h2; }; typedef struct Rect Rect, *RectPtr, **RectHndl; struct TimeRec { Byte second; Byte minute; Byte hour; Byte year; Byte day; Byte month; Byte extra; Byte weekDay; }; typedef struct TimeRec TimeRec, *TimeRecPtr, **TimeRecHndl; typedef Word RefDescriptor; extern unsigned _ownerid; extern int _toolErr; #ifndef Ref #define Ref Long #endif /* Formerly in GSOS.h */ typedef struct GSString255 { Word length; /* Number of Chars in text field */ char text[255]; } GSString255, *GSString255Ptr, **GSString255Hndl; typedef GSString255Hndl *GSString255HndlPtr; typedef struct GSString32 { Word length; /* Number of characters in text field */ char text[32]; } GSString32, *GSString32Ptr, **GSString32Hndl; typedef struct ResultBuf255 { Word bufSize; GSString255 bufString; } ResultBuf255, *ResultBuf255Ptr, **ResultBuf255Hndl; typedef ResultBuf255Hndl *ResultBuf255HndlPtr ; typedef struct ResultBuf32 { Word bufSize; GSString32 bufString; } ResultBuf32, *ResultBuf32Ptr, **ResultBuf32Hndl; /* Formerly in QuickDraw.h */ typedef unsigned char Pattern[32], *PatternPtr; typedef unsigned char Mask[8]; typedef Word ColorTable[16], *ColorTablePtr, **ColorTableHndl; /* TextStyle */ #define plainMask 0x0000 /* Mask for plain text bit */ #define boldMask 0x0001 /* Mask for bold bit */ #define italicMask 0x0002 /* Mask for italic bit */ #define underlineMask 0x0004 /* Mask for underline bit */ #define outlineMask 0x0008 /* Mask for outline bit */ #define shadowMask 0x0010 /* Mask for shadow bit */ #define fUseShadowing 0x8000 /* corrected 26-May-92 DAL */ #define fFastPortAware 0x4000 typedef Integer TextStyle; struct LocInfo { Word portSCB; /* SCBByte in low byte */ Pointer ptrToPixImage; /* ImageRef */ Word width; /* Width */ Rect boundsRect; /* BoundsRect */ }; typedef struct LocInfo LocInfo, *LocInfoPtr, **LocInfoHndl; struct Region { Word rgnSize; /* size in bytes */ Rect rgnBBox; /* enclosing rectangle */ }; typedef struct Region Region, *RegionPtr, **RegionHndl; struct Font { Word offseToMF; /* fully defined front of the Font record. */ Word family; TextStyle style; Word size; Word version; Word fbrExtent; Word highowTLoc; }; typedef struct Font Font, *FontPtr, **FontHndl; union FontID { struct { Word famNum; Byte fontStyle; Byte fontSize; } fidRec; Long fidLong; }; typedef union FontID FontID, *FontIDPtr, **FontIDHndl; struct QDProcs { VoidProcPtr stdText; VoidProcPtr stdLine; VoidProcPtr stdRect; VoidProcPtr stdRRect; VoidProcPtr stdOval; VoidProcPtr stdArc; VoidProcPtr stdPoly; VoidProcPtr stdRgn; VoidProcPtr stdPixels; VoidProcPtr stdComment; VoidProcPtr stdTxMeas; VoidProcPtr stdTxBnds; VoidProcPtr stdGetPic; VoidProcPtr stdPutPic; }; typedef struct QDProcs QDProcs, *QDProcsPtr, **QDProcsHndl; struct GrafPort { LocInfo portInfo; Rect portRect; /* PortRect */ RegionHndl clipRgn; /* Clip Rgn. Pointer */ RegionHndl visRgn; /* Vis. Rgn. Pointer */ Pattern bkPat; /* BackGround Pattern */ Point pnLoc; /* Pen Location */ Point pnSize; /* Pen Size */ Word pnMode; /* Pen Mode */ Pattern pnPat; /* Pen Pattern */ Mask pnMask; /* Pen Mask */ Word pnVis; /* Pen Visable */ FontHndl fontHandle; FontID fontID; /* Font ID */ Word fontFlags; /* FontFlags */ Word txSize; /* Text Size */ TextStyle txFace; /* Text Face */ Word txMode; /* Text Mode */ Fixed spExtra; /* Fixed Point Value */ Fixed chExtra; /* Fixed Point Value */ Word fgColor; /* ForeGround Color */ Word bgColor; /* BackGround Color */ Handle picSave; /* PicSave */ Handle rgnSave; /* RgnSave */ Handle polySave; /* PolySave */ QDProcsPtr grafProcs; Word arcRot; /* ArcRot */ Longint userField; /* UserField */ Longint sysField; /* SysField */ }; typedef struct GrafPort GrafPort, *GrafPortPtr, **GrafPortHndl; /* Formerly in Control.h */ typedef GrafPortPtr WindowPtr; struct CtlRec { struct CtlRec **ctlNext; /* Handle of next control. */ WindowPtr ctlOwner; /* Pointer to control's window. */ Rect ctlRect; /* Enclosing rectangle. */ Byte ctlFlag; /* Bit flags. */ Byte ctlHilite; /* Highlighted part. */ Word ctlValue; /* Control's value. */ LongProcPtr ctlProc; /* Control's definition procedure. */ LongProcPtr ctlAction; /* Control's action procedure. */ Longint ctlData; /* Reserved for CtrlProc's use. */ Longint ctlRefCon; /* Reserved for application's use. */ Pointer ctlColor; /* Pointer to appropriate color table. */ Byte ctlReserved[16]; /* Reserved for future expansion */ LongWord ctlID; Word ctlMoreFlags; Word ctlVersion; }; typedef struct CtlRec CtlRec, *CtlRecPtr, **CtlRecHndl, ***CtlRecHndlPtr; struct BarColors { Word barOutline; /* color for outlining bar, arrows, and thumb */ Word barNorArrow; /* color of arrows when not highlighted */ Word barSelArrow; /* color of arrows when highlighted */ Word barArrowBack; /* color of arrow box's background */ Word barNorThumb; /* color of thumb's background when not highlighted */ Word barSelThumb; /* color of thumb's background when highlighted */ Word barPageRgn; /* color and pattern page region: high byte - 1= dither, 0 = solid */ Word barInactive; /* color of scroll bar's interior when inactive */ }; typedef struct BarColors BarColors, *BarColorsPtr, **BarColorsHndl; /* Formerly in Event.h */ struct EventRecord { Word what; /* event code */ LongWord message; /* event message */ LongWord when; /* ticks since startup */ Point where; /* mouse location */ Word modifiers; /* modifier flags */ LongWord wmTaskData; LongWord wmTaskMask; LongWord wmLastClickTick; Word wmClickCount; LongWord wmTaskData2; LongWord wmTaskData3; LongWord wmTaskData4; Point wmLastClickPt; }; typedef struct EventRecord EventRecord, *EventRecordPtr, **EventRecordHndl; /* Formerly in Window.h */ typedef EventRecord WmTaskRec; typedef EventRecordPtr WmTaskRecPtr; #endif