Mac OS 9
ATSLayoutTypes.h
Go to the documentation of this file.
1 
19 #ifndef __ATSLAYOUTTYPES__
20 #define __ATSLAYOUTTYPES__
21 
22 #ifndef __MACTYPES__
23 #include <MacTypes.h>
24 #endif
25 
26 #ifndef __SFNTLAYOUTTYPES__
27 #include <SFNTLayoutTypes.h>
28 #endif
29 
30 #ifndef __ATSTYPES__
31 #include <ATSTypes.h>
32 #endif
33 
34 #if PRAGMA_ONCE
35 #pragma once
36 #endif
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 #if PRAGMA_IMPORT
43 #pragma import on
44 #endif
45 
46 #if PRAGMA_STRUCT_ALIGN
47 #pragma options align = mac68k
48 #elif PRAGMA_STRUCT_PACKPUSH
49 #pragma pack(push, 2)
50 #elif PRAGMA_STRUCT_PACK
51 #pragma pack(2)
52 #endif
53 
54 /* ---------------------------------------------------------------------------
55  */
56 /* CONSTANTS and related scalar types */
57 /* ---------------------------------------------------------------------------
58  */
59 /* Miscellaneous constants */
60 enum {
61  kATSUseLineHeight =
62  0x7FFFFFFF, /* assignment to use natural line ascent/descent values */
63  kATSNoTracking = (long)0x80000000 /* negativeInfinity */
64 };
65 
66 typedef UInt32 ATSLineLayoutOptions;
67 enum {
68  kATSLineNoLayoutOptions = 0x00000000, /* no options */
69  kATSLineIsDisplayOnly =
70  0x00000001, /* specifies to optimize for displaying text only */
71  kATSLineHasNoHangers =
72  0x00000002, /* specifies that no hangers to be formed on the line */
73  kATSLineHasNoOpticalAlignment =
74  0x00000004, /* specifies that no optical alignment to be performed on the
75  line */
76  kATSLineKeepSpacesOutOfMargin =
77  0x00000008, /* specifies that space charcters should not be treated as
78  hangers */
79  kATSLineNoSpecialJustification =
80  0x00000010, /* specifies no post-compensation justification is to be
81  performed */
82  kATSLineLastNoJustification =
83  0x00000020, /* specifies that if the line is the last of a paragraph, it
84  will not get justified */
85  kATSLineFractDisable = 0x00000040, /* specifies that the displayed line glyphs
86  will adjust for device metrics */
87  kATSLineImposeNoAngleForEnds =
88  0x00000080, /* specifies that the carets at the ends of the line will be
89  guarenteed to be perpendicular to the baseline */
90  kATSLineFillOutToWidth =
91  0x00000100, /* highlights for the line end characters will be extended to
92  0 and the specified line width */
93  kATSLineTabAdjustEnabled =
94  0x00000200, /* specifies that the tab character width will be
95  automatically adjusted to fit the specified line width */
96  kATSLineIgnoreFontLeading =
97  0x00000400, /* specifies that any leading value specified by a font will
98  be ignored */
99  kATSLineAppleReserved =
100  (long)0xFFFFF800 /* these bits are reserved by Apple and will result in a
101  invalid value error if attemped to set */
102 };
103 
104 typedef UInt32 ATSStyleRenderingOptions;
105 enum {
106  kATSStyleNoOptions = 0x00000000, /* no options */
107  kATSStyleApplyHints = 0x00000001, /* specifies that ATS produce "hinted" glyph
108  outlines (default is on) */
109  /* kATSStyleApplyAntiAliasing = 0x00000002L, |* specifies that
110  ATS produce antialiased glyph images (default is on) future feature *|*/
111  kATSStyleAppleReserved =
112  (long)0xFFFFFFFE /* these bits are reserved by Apple and will result in a
113  invalid value error if attemped to set */
114 };
115 
116 /* For accessing glyph bounds */
117 enum {
118  kATSUseCaretOrigins = 0,
119  kATSUseDeviceOrigins = 1,
120  kATSUseFractionalOrigins = 2,
121  kATSUseOriginFlags = 3
122 };
123 
124 /* ---------------------------------------------------------------------------
125  */
126 /* STRUCTURED TYPES and related constants */
127 /* ---------------------------------------------------------------------------
128  */
129 
134 struct ATSTrapezoid {
135  FixedPoint upperLeft;
136  FixedPoint upperRight;
137  FixedPoint lowerRight;
138  FixedPoint lowerLeft;
139 };
140 typedef struct ATSTrapezoid ATSTrapezoid;
149  Fixed beforeGrowLimit; /* ems AW can grow by at most on LT */
150  Fixed beforeShrinkLimit; /* ems AW can shrink by at most on LT */
151  Fixed afterGrowLimit; /* ems AW can grow by at most on RB */
152  Fixed afterShrinkLimit; /* ems AW can shrink by at most on RB */
153  JustificationFlags growFlags; /* flags controlling grow case */
154  JustificationFlags shrinkFlags; /* flags controlling shrink case */
155 };
157 /* The JustPriorityOverrides type is an array of 4 width delta records, one per
158  * priority level override. */
159 typedef ATSJustWidthDeltaEntryOverride ATSJustPriorityWidthDeltaOverrides[4];
160 /* ---------------------------------------------------------------------------
161  */
162 
163 #if PRAGMA_STRUCT_ALIGN
164 #pragma options align = reset
165 #elif PRAGMA_STRUCT_PACKPUSH
166 #pragma pack(pop)
167 #elif PRAGMA_STRUCT_PACK
168 #pragma pack()
169 #endif
170 
171 #ifdef PRAGMA_IMPORT_OFF
172 #pragma import off
173 #elif PRAGMA_IMPORT
174 #pragma import reset
175 #endif
176 
177 #ifdef __cplusplus
178 }
179 #endif
180 
181 #endif /* __ATSLAYOUTTYPES__ */
Public interfaces for Apple Type Services components.
Basic Macintosh data types.
long Fixed
Definition: MacTypes.h:153
SFNT file layout structures and constants.
Definition: ATSLayoutTypes.h:148
Definition: ATSLayoutTypes.h:134
Definition: MacTypes.h:536