home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / cbm / nduk-v37.lha / V37 / include / libraries / diskfonttag.h < prev    next >
Text File  |  1991-11-27  |  6KB  |  155 lines

  1. /*
  2. **    $Filename: libraries/diskfonttag.h $
  3. **    $Release: 2.04 Includes, V37.4 $
  4. **    $Revision: 37.18 $
  5. **    $Date: 91/11/08 $
  6. **
  7. **    libraries/diskfonttag.h -- tag definitions for .otag files
  8. **
  9. **    (C) Copyright 1990-1991 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. /* Level 0 entries never appear in the .otag tag list, but appear in font
  14.  * specifications */
  15. #define  OT_Level0    TAG_USER
  16. /* Level 1 entries are required to exist in the .otag tag list */
  17. #define  OT_Level1    (TAG_USER | 0x1000)
  18. /* Level 2 entries are optional typeface metric tags */
  19. #define  OT_Level2    (TAG_USER | 0x2000)
  20. /* Level 3 entries are required for some OT_Engines */
  21. #define  OT_Level3    (TAG_USER | 0x3000)
  22. /* Indirect entries are at (tag address + data offset) */
  23. #define  OT_Indirect    0x8000
  24.  
  25. /********************************************************************/
  26. /* font specification tags */
  27.  
  28. /* OT_DeviceDPI specifies the target device dots per inch -- X DPI is
  29.  * in the high word, Y DPI in the low word. */
  30. #define  OT_DeviceDPI    (OT_Level0 | 0x01)    /* == TA_DeviceDPI */
  31.  
  32. /* OT_DotSize specifies the target device dot size as a percent of
  33.  * it's resolution-implied size -- X percent in high word, Y percent
  34.  * in low word. */
  35. #define  OT_DotSize    (OT_Level0 | 0x02)
  36.  
  37. /* OT_PointHeight specifies the requested point height of a typeface,
  38.  * specifically, the height and nominal width of the em-square.
  39.  * The point referred to here is 1/72".  It is encoded as a fixed
  40.  * binary number. */
  41. #define  OT_PointHeight    (OT_Level0 | 0x08)
  42.  
  43. /* OT_PointSize specifies the requested point height of a typeface
  44.  * The point referred to here is 1/72".  It is encoded here as
  45.  * (points * 16) */
  46. #define  OT_PointSize    (OT_Level0 | 0x10)
  47.  
  48. /********************************************************************/
  49. /* .otag tags */
  50.  
  51. /* suffix for files in FONTS: that contain these tags */
  52. #define  OTSUFFIX    ".otag"
  53.  
  54. /* OT_FileIdent both identifies this file and verifies its size.
  55.  * It is required to be the first tag in the file. */
  56. #define  OT_FileIdent    (OT_Level1 | 0x01)
  57.  
  58. /* OT_Engine specifies the font engine this file is designed to use */
  59. #define  OT_Engine    (OT_Level1 | OT_Indirect | 0x02)
  60. #define  OTE_Bullet    "bullet"
  61.  
  62. /* OT_Family is the family name of this typeface */
  63. #define  OT_Family    (OT_Level1 | OT_Indirect | 0x03)
  64.  
  65. /* The name of this typeface is implicit in the name of the .otag file */
  66. /* OT_BName is used to find the bold variant of this typeface */
  67. #define     OT_BName    (OT_Level2 | OT_Indirect | 0x05)
  68. /* OT_IName is used to find the italic variant of this typeface */
  69. #define     OT_IName    (OT_Level2 | OT_Indirect | 0x06)
  70. /* OT_BIName is used to find the bold italic variant of this typeface */
  71. #define     OT_BIName    (OT_Level2 | OT_Indirect | 0x07)
  72.  
  73. /* OT_SymSet is used to select the symbol set that has the OT_YSizeFactor
  74.  * described here.  Other symbol sets might have different extremes */
  75. #define  OT_SymbolSet    (OT_Level1 | 0x10)
  76.  
  77. /* OT_YSizeFactor is a ratio to assist in calculating the Point height
  78.  * to BlackHeight relationship -- high word: Point height term, low
  79.  * word: Black height term -- pointSize = ysize*<high>/<low> */
  80. #define  OT_YSizeFactor    (OT_Level1 | 0x11)
  81.  
  82. /* OT_SpaceWidth specifies the width of the space character relative
  83.  * to the character height */
  84. #define  OT_SpaceWidth    (OT_Level2 | 0x12)
  85.  
  86. /* OT_IsFixed is a boolean indicating that all the characters in the
  87.  * typeface are intended to have the same character advance */
  88. #define  OT_IsFixed    (OT_Level2 | 0x13)
  89.  
  90. /* OT_SerifFlag is a boolean indicating if the character has serifs */
  91. #define  OT_SerifFlag    (OT_Level1 | 0x14)
  92.  
  93. /* OT_StemWeight is an unsigned byte indicating the weight of the character */
  94. #define  OT_StemWeight    (OT_Level1 | 0x15)
  95.  
  96. #define  OTS_UltraThin      8    /*   0- 15 */
  97. #define  OTS_ExtraThin     24    /*  16- 31 */
  98. #define  OTS_Thin     40    /*  32- 47 */
  99. #define  OTS_ExtraLight     56    /*  48- 63 */
  100. #define  OTS_Light     72    /*  64- 79 */
  101. #define  OTS_DemiLight     88    /*  80- 95 */
  102. #define  OTS_SemiLight    104    /*  96-111 */
  103. #define  OTS_Book    120    /* 112-127 */
  104. #define  OTS_Medium    136    /* 128-143 */
  105. #define  OTS_SemiBold    152    /* 144-159 */
  106. #define  OTS_DemiBold    168    /* 160-175 */
  107. #define  OTS_Bold    184    /* 176-191 */
  108. #define  OTS_ExtraBold    200    /* 192-207 */
  109. #define  OTS_Black    216    /* 208-223 */
  110. #define  OTS_ExtraBlack    232    /* 224-239 */
  111. #define  OTS_UltraBlack    248    /* 240-255 */
  112.  
  113. /* OT_SlantStyle is an unsigned byte indicating the font posture */
  114. #define  OT_SlantStyle    (OT_Level1 | 0x16)
  115. #define  OTS_Upright    0
  116. #define  OTS_Italic    1    /* Oblique, Slanted, etc. */
  117. #define  OTS_LeftItalic    2    /* Reverse Slant */
  118.  
  119. /* OT_HorizStyle is an unsigned byte indicating the appearance width */
  120. #define  OT_HorizStyle    (OT_Level1 | 0x17)
  121. #define  OTH_UltraCompressed     16    /*   0- 31 */
  122. #define  OTH_ExtraCompressed     48    /*  32- 63 */
  123. #define  OTH_Compressed         80    /*  64- 95 */
  124. #define  OTH_Condensed        112    /*  96-127 */
  125. #define  OTH_Normal        144    /* 128-159 */
  126. #define  OTH_SemiExpanded    176    /* 160-191 */
  127. #define  OTH_Expanded        208    /* 192-223 */
  128. #define  OTH_ExtraExpanded    240    /* 224-255 */
  129.  
  130. /* OT_SpaceFactor specifies the width of the space character relative
  131.  * to the character height */
  132. #define  OT_SpaceFactor    (OT_Level2 | 0x18)
  133.  
  134. /* OT_InhibitAlgoStyle indicates which ta_Style bits, if any, should
  135.  * be ignored even if the font does not already have that quality.
  136.  * For example, if FSF_BOLD is set and the typeface is not bold but
  137.  * the user specifies bold, the application or diskfont library is
  138.  * not to artificially embolden the normal character to achieve a
  139.  * bold result. */
  140. #define  OT_InhibitAlgoStyle (OT_Level2 | 0x19)
  141.  
  142. /* OT_AvailSizes is an indirect pointer to sorted UWORDs, 0th is count */
  143. #define     OT_AvailSizes    (OT_Level1 | OT_Indirect | 0x20)
  144. #define  OT_MAXAVAILSIZES    20    /* no more than 20 sizes allowed */
  145.  
  146. /* OT_SpecCount is the count number of parameters specified here */
  147. #define  OT_SpecCount    (OT_Level1 | 0x100)
  148.  
  149. /* Specs can be created as appropriate for the engine by ORing in the
  150.  * parameter number (1 is first, 2 is second, ... up to 15th) */
  151. #define     OT_Spec    (OT_Level1 | 0x100)
  152. /* OT_Spec1 is the (first) parameter to the font engine to select
  153.  * this particular typeface */
  154. #define     OT_Spec1    (OT_Level1 | 0x101)
  155.