1 #ifndef DISKFONT_DISKFONTTAG_H
    2 #define DISKFONT_DISKFONTTAG_H
    3 
    4 /*
    5 	diskfont tag defines
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_TYPES_H
   11 # include <exec/types.h>
   12 #endif
   13 
   14 #ifndef UTILITY_TAGITEM_H
   15 # include <utility/tagitem.h>
   16 #endif
   17 
   18 
   19 #define OT_Level0   (TAG_USER)
   20 #define OT_Level1   (TAG_USER | 0x1000)
   21 #define OT_Level2   (TAG_USER | 0x2000)
   22 #define OT_Level3   (TAG_USER | 0x3000)
   23 #define OT_Indirect 0x8000
   24 
   25 
   26 #define OT_DeviceDPI       (OT_Level0 | 0x01)
   27 #define OT_DotSize         (OT_Level0 | 0x02)
   28 #define OT_PointHeight     (OT_Level0 | 0x08)
   29 #define OT_SetFactor       (OT_Level0 | 0x09)
   30 #define OT_ShearSin        (OT_Level0 | 0x0a)
   31 #define OT_ShearCos        (OT_Level0 | 0x0b)
   32 #define OT_RotateSin       (OT_Level0 | 0x0c)
   33 #define OT_RotateCos       (OT_Level0 | 0x0d)
   34 #define OT_EmboldenX       (OT_Level0 | 0x0e)
   35 #define OT_EmboldenY       (OT_Level0 | 0x0f)
   36 #define OT_PointSize       (OT_Level0 | 0x10)
   37 #define OT_GlyphCode       (OT_Level0 | 0x11)
   38 #define OT_GlyphCode2      (OT_Level0 | 0x12)
   39 #define OT_GlyphWidth      (OT_Level0 | 0x13)
   40 #define OT_OTagPath        (OT_Level0 | OT_Indirect | 0x14)
   41 #define OT_OTagList        (OT_Level0 | OT_Indirect | 0x15)
   42 #define OT_GlyphMap        (OT_Level0 | OT_Indirect | 0x20)
   43 #define OT_WidthList       (OT_Level0 | OT_Indirect | 0x21)
   44 #define OT_TextKernPair    (OT_Level0 | OT_Indirect | 0x22)
   45 #define OT_DesignKernPair  (OT_Level0 | OT_Indirect | 0x23)
   46 #define OT_UnderLined      (OT_Level0 | 0x24)
   47 #define OT_StrikeThrough   (OT_Level0 | 0x25)
   48 #define OT_GlyphMap8Bits   (OT_Level0 | OT_Indirect | 0x50)
   49 
   50 
   51 /*
   52 	More sane support of real bold and italic fonts via
   53 	families and/or algostyling
   54 */
   55 
   56 #define OT_StyleFlags        (OT_Level0 | 0x101)	/* Obtain with | OT_Indirect */
   57 
   58 /*
   59 	Setting OTSF_Designed flags tells engine to try to open a styled
   60 	font in the same family, failing that it will algorithmically create
   61 	the right style (if you require only real designed styles, obtain the
   62 	actual flags afterwards and compare against desired result).
   63 
   64 	OTSF_Algo flags tells engine to algorithmically style the font for
   65 	you, this can be applied on top of OTSF_Designed to achieve whichever
   66 	effect you need.
   67 */
   68 
   69 #define OTSF_DesignedBold    (1<<0)
   70 #define OTSF_DesignedItalic  (1<<1)
   71 #define OTSF_AlgoBold        (1<<16)
   72 #define OTSF_AlgoItalic      (1<<17)
   73 
   74 
   75 #define OTUL_None          0
   76 #define OTUL_Solid         1
   77 #define OTUL_Broken        2
   78 #define OTUL_DoubleSolid   3
   79 #define OTUL_DoubleBroken  4
   80 #define OUTL_DoubleBroken  OTUL_DoubleBroken
   81 
   82 
   83 
   84 #define OTSUFFIX    ".otag"
   85 #define OTE_Bullet  "bullet"
   86 
   87 
   88 #define OT_FileIdent         (OT_Level1 | 0x01)
   89 #define OT_Engine            (OT_Level1 | OT_Indirect | 0x02)
   90 #define OT_Family            (OT_Level1 | OT_Indirect | 0x03)
   91 
   92 #define OT_BName             (OT_Level2 | OT_Indirect | 0x05)
   93 #define OT_IName             (OT_Level2 | OT_Indirect | 0x06)
   94 #define OT_BIName            (OT_Level2 | OT_Indirect | 0x07)
   95 #define OT_RName             (OT_Level2 | OT_Indirect | 0x09)
   96 
   97 #define OT_SymbolSet         (OT_Level1 | 0x10)
   98 #define OT_YSizeFactor       (OT_Level1 | 0x11)
   99 #define OT_SpaceWidth        (OT_Level2 | 0x12)
  100 #define OT_IsFixed           (OT_Level2 | 0x13)
  101 #define OT_SerifFlag         (OT_Level1 | 0x14)
  102 #define OT_StemWeight        (OT_Level1 | 0x15)
  103 #define OT_SlantStyle        (OT_Level1 | 0x16)
  104 #define OT_HorizStyle        (OT_Level1 | 0x17)
  105 #define OT_SpaceFactor       (OT_Level2 | 0x18)
  106 #define OT_InhibitAlgoStyle  (OT_Level2 | 0x19)
  107 #define OT_AvailSizes        (OT_Level1 | OT_Indirect | 0x20)
  108 
  109 
  110 #define OT_MAXAVAILSIZES     20
  111 
  112 #define OTS_Upright     0
  113 #define OTS_Italic      1
  114 #define OTS_LeftItalic  2
  115 #define OTS_UltraThin   8
  116 #define OTS_ExtraThin   24
  117 #define OTS_Thin        40
  118 #define OTS_ExtraLight  56
  119 #define OTS_Light       72
  120 #define OTS_DemiLight   88
  121 #define OTS_SemiLight   104
  122 #define OTS_Book        120
  123 #define OTS_Medium      136
  124 #define OTS_SemiBold    152
  125 #define OTS_DemiBold    168
  126 #define OTS_Bold        184
  127 #define OTS_ExtraBold   200
  128 #define OTS_Black       216
  129 #define OTS_ExtraBlack  232
  130 #define OTS_UltraBlack  248
  131 
  132 #define OTH_UltraCompressed  16
  133 #define OTH_ExtraCompressed  48
  134 #define OTH_Compressed       80
  135 #define OTH_Condensed        112
  136 #define OTH_Normal           144
  137 #define OTH_SemiExpanded     176
  138 #define OTH_Expanded         208
  139 #define OTH_ExtraExpanded    240
  140 
  141 
  142 #define OT_SpecCount (OT_Level1 | 0x100)
  143 #define OT_Spec      (OT_Level1 | 0x100)
  144 #define OT_Spec1     (OT_Level1 | 0x101)
  145 
  146 
  147 #define DFCTRL_BASE      (TAG_USER + 0x0B000000)
  148 #define DFCTRL_XDPI      (DFCTRL_BASE + 1)
  149 #define DFCTRL_YDPI      (DFCTRL_BASE + 2)
  150 #define DFCTRL_XDOTP     (DFCTRL_BASE + 3)
  151 #define DFCTRL_YDOTP     (DFCTRL_BASE + 4)
  152 #define DFCTRL_CACHE     (DFCTRL_BASE + 5)
  153 #define DFCTRL_SORTMODE  (DFCTRL_BASE + 6)
  154 
  155 #define DFCTRL_SORT_OFF   0L
  156 #define DFCTRL_SORT_ASC   1L
  157 #define DFCTRL_SORT_DES  -1L
  158 
  159 #endif /* DISKFONT_DISKFONTTAG_H */