home *** CD-ROM | disk | FTP | other *** search
- /************************************************************
-
- Created: Saturday, January 26, 1991 at 10:45 PM
- Fonts.h
- C Interface to the Macintosh Libraries
-
-
- Copyright Apple Computer, Inc. 1985-1990
- All rights reserved
-
- ************************************************************/
-
-
- #ifndef __FONTS__
- #define __FONTS__
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
-
-
- enum {
-
- systemFont = 0,
- applFont = 1,
- newYork = 2,
- geneva = 3,
- monaco = 4,
- venice = 5,
- london = 6,
- athens = 7,
- sanFran = 8,
- toronto = 9,
- cairo = 11,
- losAngeles = 12,
- times = 20,
- helvetica = 21,
- courier = 22,
- symbol = 23,
- mobile = 24,
- commandMark = 17,
- checkMark = 18,
- diamondMark = 19
- };
- enum {
- appleMark = 20,
- propFont = 36864,
- prpFntH = 36865,
- prpFntW = 36866,
- prpFntHW = 36867,
- fixedFont = 45056,
- fxdFntH = 45057,
- fxdFntW = 45058,
- fxdFntHW = 45059,
- fontWid = 44208
- };
-
- struct FMInput {
- short family;
- short size;
- Style face;
- Boolean needBits;
- short device;
- Point numer;
- Point denom;
- };
-
- typedef struct FMInput FMInput;
-
- struct FMOutput {
- short errNum;
- Handle fontHandle;
- unsigned char boldPixels;
- unsigned char italicPixels;
- unsigned char ulOffset;
- unsigned char ulShadow;
- unsigned char ulThick;
- unsigned char shadowPixels;
- char extra;
- unsigned char ascent;
- unsigned char descent;
- unsigned char widMax;
- char leading;
- char unused;
- Point numer;
- Point denom;
- };
-
- typedef struct FMOutput FMOutput;
- typedef FMOutput *FMOutPtr;
-
- struct FontRec {
- short fontType; /*font type*/
- short firstChar; /*ASCII code of first character*/
- short lastChar; /*ASCII code of last character*/
- short widMax; /*maximum character width*/
- short kernMax; /*negative of maximum character kern*/
- short nDescent; /*negative of descent*/
- short fRectWidth; /*width of font rectangle*/
- short fRectHeight; /*height of font rectangle*/
- short owTLoc; /*offset to offset/width table*/
- short ascent; /*ascent*/
- short descent; /*descent*/
- short leading; /*leading*/
- short rowWords; /*row width of bit image / 2 */
- };
-
- typedef struct FontRec FontRec;
-
- struct FMetricRec {
- Fixed ascent; /*base line to top*/
- Fixed descent; /*base line to bottom*/
- Fixed leading; /*leading between lines*/
- Fixed widMax; /*maximum character width*/
- Handle wTabHandle; /*handle to font width table*/
- };
-
- typedef struct FMetricRec FMetricRec;
-
- struct WidEntry {
- short widStyle; /*style entry applies to*/
- };
-
- typedef struct WidEntry WidEntry;
-
- struct WidTable {
- short numWidths; /*number of entries - 1*/
- };
-
- typedef struct WidTable WidTable;
-
- struct AsscEntry {
- short fontSize;
- short fontStyle;
- short fontID; /*font resource ID*/
- };
-
- typedef struct AsscEntry AsscEntry;
-
- struct FontAssoc {
- short numAssoc; /*number of entries - 1*/
- };
-
- typedef struct FontAssoc FontAssoc;
-
- struct StyleTable {
- short fontClass;
- long offset;
- long reserved;
- char indexes[48];
- };
-
- typedef struct StyleTable StyleTable;
-
- struct NameTable {
- short stringCount;
- Str255 baseFontName;
- };
-
- typedef struct NameTable NameTable;
-
- struct KernPair {
- char kernFirst; /*1st character of kerned pair*/
- char kernSecond; /*2nd character of kerned pair*/
- short kernWidth; /*kerning in 1pt fixed format*/
- };
-
- typedef struct KernPair KernPair;
-
- struct KernEntry {
- short kernLength; /*length of this entry*/
- short kernStyle; /*style the entry applies to*/
- };
-
- typedef struct KernEntry KernEntry;
-
- struct KernTable {
- short numKerns; /*number of kerning entries*/
- };
-
- typedef struct KernTable KernTable;
-
- struct WidthTable {
- Fixed tabData[256]; /*character widths*/
- Handle tabFont; /*font record used to build table*/
- long sExtra; /*space extra used for table*/
- long style; /*extra due to style*/
- short fID; /*font family ID*/
- short fSize; /*font size request*/
- short face; /*style (face) request*/
- short device; /*device requested*/
- Point inNumer; /*scale factors requested*/
- Point inDenom; /*scale factors requested*/
- short aFID; /*actual font family ID for table*/
- Handle fHand; /*family record used to build up table*/
- Boolean usedFam; /*used fixed point family widths*/
- unsigned char aFace; /*actual face produced*/
- short vOutput; /*vertical scale output value*/
- short hOutput; /*horizontal scale output value*/
- short vFactor; /*vertical scale output value*/
- short hFactor; /*horizontal scale output value*/
- short aSize; /*actual size of actual font used*/
- short tabSize; /*total size of table*/
- };
-
- typedef struct WidthTable WidthTable;
-
- struct FamRec {
- short ffFlags; /*flags for family*/
- short ffFamID; /*family ID number*/
- short ffFirstChar; /*ASCII code of 1st character*/
- short ffLastChar; /*ASCII code of last character*/
- short ffAscent; /*maximum ascent for 1pt font*/
- short ffDescent; /*maximum descent for 1pt font*/
- short ffLeading; /*maximum leading for 1pt font*/
- short ffWidMax; /*maximum widMax for 1pt font*/
- long ffWTabOff; /*offset to width table*/
- long ffKernOff; /*offset to kerning table*/
- long ffStylOff; /*offset to style mapping table*/
- short ffProperty[9]; /*style property info*/
- short ffIntl[2]; /*for international use*/
- short ffVersion; /*version number*/
- };
-
- typedef struct FamRec FamRec;
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
- pascal void InitFonts(void)
- = 0xA8FE;
- pascal void GetFontName(short familyID,Str255 name)
- = 0xA8FF;
- pascal void GetFNum(ConstStr255Param name,short *familyID)
- = 0xA900;
- pascal Boolean RealFont(short fontNum,short size)
- = 0xA902;
- pascal void SetFontLock(Boolean lockFlag)
- = 0xA903;
- pascal FMOutPtr FMSwapFont(const FMInput *inRec)
- = 0xA901;
- pascal void SetFScaleDisable(Boolean fscaleDisable)
- = 0xA834;
- pascal void FontMetrics(const FMetricRec *theMetrics)
- = 0xA835;
- pascal void SetFractEnable(Boolean fractEnable);
- pascal Boolean IsOutline(Point numer,Point denom)
- = {0x7000,0xA854};
- pascal void SetOutlinePreferred(Boolean outlinePreferred)
- = {0x7001,0xA854};
- pascal Boolean GetOutlinePreferred(void)
- = {0x7009,0xA854};
- pascal OSErr OutlineMetrics(short byteCount,const void *textPtr,Point numer,
- Point denom,short *yMax,short *yMin,FixedPtr awArray,FixedPtr lsbArray,
- RectPtr boundsArray)
- = {0x7008,0xA854};
- pascal void SetPreserveGlyph(Boolean preserveGlyph)
- = {0x700A,0xA854};
- pascal Boolean GetPreserveGlyph(void)
- = {0x700B,0xA854};
- pascal OSErr FlushFonts(void)
- = {0x700C,0xA854};
- void getfnum(char *theName,short *familyID);
- void getfontname(short familyID,char *theName);
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-