Mac OS 9
ATSUnicode.h
Go to the documentation of this file.
1 
19 #ifndef __ATSUNICODE__
20 #define __ATSUNICODE__
21 
22 #ifndef __MACTYPES__
23 #include <MacTypes.h>
24 #endif
25 
26 #ifndef __MACERRORS__
27 #include <MacErrors.h>
28 #endif
29 
30 #ifndef __MACMEMORY__
31 #include <MacMemory.h>
32 #endif
33 
34 #ifndef __ATSLAYOUTTYPES__
35 #include <ATSLayoutTypes.h>
36 #endif
37 
38 #ifndef __FONTS__
39 #include <Fonts.h>
40 #endif
41 
42 #ifndef __QUICKDRAW__
43 #include <Quickdraw.h>
44 #endif
45 
46 #ifndef __SFNTTYPES__
47 #include <SFNTTypes.h>
48 #endif
49 
50 #ifndef __SFNTLAYOUTTYPES__
51 #include <SFNTLayoutTypes.h>
52 #endif
53 
54 #ifndef __TEXTCOMMON__
55 #include <TextCommon.h>
56 #endif
57 
58 #ifndef __ATSTYPES__
59 #include <ATSTypes.h>
60 #endif
61 
62 #if PRAGMA_ONCE
63 #pragma once
64 #endif
65 
66 #ifdef __cplusplus
67 extern "C"
68 {
69 #endif
70 
71 #if PRAGMA_IMPORT
72 #pragma import on
73 #endif
74 
75 #if PRAGMA_STRUCT_ALIGN
76 #pragma options align = mac68k
77 #elif PRAGMA_STRUCT_PACKPUSH
78 #pragma pack(push, 2)
79 #elif PRAGMA_STRUCT_PACK
80 #pragma pack(2)
81 #endif
82 
83  /********************************/
84  /* Types and related constants */
85  /********************************/
110  typedef UInt16 ATSUFontFeatureType;
111  typedef UInt16 ATSUFontFeatureSelector;
116  typedef FourCharCode ATSUFontVariationAxis;
117  typedef Fixed ATSUFontVariationValue;
123  typedef struct OpaqueATSUTextLayout *ATSUTextLayout;
129  typedef struct OpaqueATSUStyle *ATSUStyle;
135  typedef struct OpaqueATSUFontFallbacks *ATSUFontFallbacks;
146  typedef UInt32 ATSUAttributeTag;
147  enum
148  {
149  /* Layout and Line Control Attribute Tags*/
150  kATSULineWidthTag = 1L, /* Type: ATSUTextMeasurement*/
151  /* Default value: 0*/
152  kATSULineRotationTag = 2L, /* Type: Fixed (fixed value in degrees in
153  right-handed coordinate system)*/
154  /* Default value: 0*/
155  kATSULineDirectionTag = 3L, /* Type: Boolean; values 0 or 1 (see
156  below for value identities)*/
157  /* Default value: GetSysDirection() ? kATSURightToLeftBaseDirection :
158  kATSULeftToRightBaseDirection*/
159  kATSULineJustificationFactorTag =
160  4L, /* Type: Fract between 0 and 1*/
161  /* Default value: kATSUNoJustification*/
162  kATSULineFlushFactorTag = 5L, /* Type: Fract between 0 and 1 */
163  /* Default value: kATSUStartAlignment*/
164  kATSULineBaselineValuesTag = 6L, /* Type: BslnBaselineRecord*/
165  /* Default value: All zeros. Calculated from other style attributes (e.g.,
166  font and point size)*/
167  kATSULineLayoutOptionsTag =
168  7L, /* Type: ATSLineLayoutOptions (see ATSLayoutTypes.h)*/
169  /* Default value: kATSLineNoLayoutOptions - other options listed in
170  ATSLayoutTypes.h*/
171  kATSULineAscentTag = 8L, /* Type: ATSUTextMeasurement*/
172  /* Default value: kATSUseLineHeight*/
173  kATSULineDescentTag = 9L, /* Type: ATSUTextMeasurement*/
174  /* Default value: kATSUseLineHeight*/
175  kATSULineLangRegionTag = 10L, /* Type: RegionCode - region values
176  listed in script.h interface file*/
177  /* Default value: kTextRegionDontCare*/
178  kATSULineTextLocatorTag = 11L, /* Type: TextBreakLocatorRef*/
179  /* Default value: NULL - set Region derived locator or the default Text
180  Utilities locator*/
181  kATSULineTruncationTag = 12L, /* Type: ATSULineTruncation*/
182  /* Default value: kATSUTruncateNone */
183  kATSULineFontFallbacksTag = 13L, /* Type: ATSUFontFallbacks*/
184  /* Default value: globally set font fallbacks using the
185  ATSUSetFontFallbacks */
186  kATSUMaxLineTag = 14L, /* This is just for convenience - the upper limit of
187  the ATSUTextLayout attribute tags*/
188  /* obsolete layout tags */
189  kATSULineLanguageTag = 10L, /* Use kATSULineLangRegionTag */
190  /* Run Style Attribute Tags*/
191  /* QuickDraw compatibility tags */
192  kATSUQDBoldfaceTag = 256L, /* Type: Boolean */
193  /* Default value: false*/
194  kATSUQDItalicTag = 257L, /* Type: Boolean */
195  /* Default value: false*/
196  kATSUQDUnderlineTag = 258L, /* Type: Boolean */
197  /* Default value: false*/
198  kATSUQDCondensedTag = 259L, /* Type: Boolean */
199  /* Default value: false*/
200  kATSUQDExtendedTag = 260L, /* Type: Boolean */
201  /* Default value: false*/
202  /* Common run tags */
203  kATSUFontTag = 261L, /* Type: ATSUFontID */
204  /* Default value: GetScriptVariable( smSystemScript, smScriptAppFond )*/
205  kATSUSizeTag = 262L, /* Type: Fixed */
206  /* Default value: GetScriptVariable( smSystemScript, smScriptAppFondSize )
207  */
208  kATSUColorTag = 263L, /* Type: RGBColor */
209  /* Default value: (0, 0, 0)*/
210  /* Less common run tags */
211  kATSULangRegionTag = 264L, /* Type: RegionCode - region values listed
212  in script.h interface file*/
213  /* Default value: GetScriptManagerVariable( smRegionCode )*/
214  kATSUVerticalCharacterTag =
215  265L, /* Type: ATSUVerticalCharacterType */
216  /* Default value: kATSUStronglyHorizontal*/
217  kATSUImposeWidthTag = 266L, /* Type: ATSUTextMeasurement*/
218  /* Default value: 0 - all glyphs use their own font defined advance
219  widths*/
220  kATSUBeforeWithStreamShiftTag = 267L, /* Type: Fixed*/
221  /* Default value: 0*/
222  kATSUAfterWithStreamShiftTag = 268L, /* Type: Fixed*/
223  /* Default value: 0*/
224  kATSUCrossStreamShiftTag = 269L, /* Type: Fixed*/
225  /* Default value: 0*/
226  kATSUTrackingTag = 270L, /* Type: Fixed*/
227  /* Default value: kATSNoTracking*/
228  kATSUHangingInhibitFactorTag = 271L, /* Type: Fract between 0 and 1*/
229  /* Default value: 0*/
230  kATSUKerningInhibitFactorTag = 272L, /* Type: Fract between 0 and 1*/
231  /* Default value: 0*/
232  kATSUDecompositionFactorTag = 273L, /* Type: Fixed (-1.0 -> 1.0)*/
233  /* Default value: 0*/
234  kATSUBaselineClassTag =
235  274L, /* Type: BslnBaselineClass (see SFNTLayoutTypes.h)*/
236  /* Default value: kBSLNRomanBaseline - set to kBSLNNoBaselineOverride to
237  use intrinsic baselines*/
238  kATSUPriorityJustOverrideTag =
239  275L, /* Type: ATSJustPriorityWidthDeltaOverrides (see
240  ATSLayoutTypes.h)*/
241  /* Default value: all zeros*/
242  kATSUNoLigatureSplitTag = 276L, /* Type: Boolean*/
243  /* Default value: false - ligatures and compound characters have divisable
244  components.*/
245  kATSUNoCaretAngleTag = 277L, /* Type: Boolean*/
246  /* Default value: false - use the character's angularity to determine its
247  boundaries*/
248  kATSUSuppressCrossKerningTag = 278L, /* Type: Boolean*/
249  /* Default value: false - do not suppress automatic cross kerning (defined
250  by font)*/
251  kATSUNoOpticalAlignmentTag = 279L, /* Type: Boolean*/
252  /* Default value: false - do not suppress character's automatic optical
253  positional alignment*/
254  kATSUForceHangingTag = 280L, /* Type: Boolean*/
255  /* Default value: false - do not force the character's to hang beyond the
256  line boundaries*/
257  kATSUNoSpecialJustificationTag = 281L, /* Type: Boolean*/
258  /* Default value: false - perform post-compensation justification if
259  needed*/
260  kATSUStyleTextLocatorTag = 282L, /* Type: TextBreakLocatorRef*/
261  /* Default value: NULL - region derived locator or the default Text
262  Utilities locator*/
263  kATSUStyleRenderingOptionsTag =
264  283L, /* Type: ATSStyleRenderingOptions (see ATSLayoutTypes.h)*/
265  /* Default value: kATSStyleApplyHints - ATS glyph rendering uses hinting*/
266  kATSUMaxStyleTag = 284L, /* This is just for convenience - the upper limit
267  of the ATSUStyle attribute tags */
268  /* obsolete style tags */
269  kATSULanguageTag = 264L, /* use kATSULangRegionTag */
270  /* special layout tag for Mac OS X */
271  kATSUCGContextTag =
272  32767L, /* Type: CGContext, Default value: NULL */
273  /* max */
274  kATSUMaxATSUITagValue =
275  65535L /* This is the maximum Apple ATSUI reserved tag value. Client
276  defined tags must be larger.*/
277  };
278 
284  typedef void *ATSUAttributeValuePtr;
285  typedef const void *ConstATSUAttributeValuePtr;
301  {
302  ATSUAttributeTag fTag;
303  ByteCount fValueSize;
304  };
305  typedef struct ATSUAttributeInfo ATSUAttributeInfo;
317  struct ATSUCaret
318  {
319  Fixed fX;
320  Fixed fY;
321  Fixed fDeltaX;
322  Fixed fDeltaY;
323  };
324  typedef struct ATSUCaret ATSUCaret;
331  typedef UInt16 ATSUCursorMovementType;
332  enum
333  {
334  kATSUByCharacter = 0,
335  kATSUByTypographicCluster = 1, /* clusters based on characters or ligatures*/
336  kATSUByWord = 2,
337  kATSUByCharacterCluster = 3, /* clusters based on characters only*/
338  kATSUByCluster = 1 /* obsolete name for kATSUByTypographicCluster*/
339  };
340 
345  typedef UInt32 ATSULineTruncation;
346  enum
347  {
348  kATSUTruncateNone = 0, /* truncation specification - add to any desired
349  truncFeat bit options listed below*/
350  kATSUTruncateStart = 1, /* for instance, kATSUTruncateEnd with
351  kATSUTruncFeatNoSquishing is value 0x0000000A*/
352  kATSUTruncateEnd = 2,
353  kATSUTruncateMiddle = 3,
354  kATSUTruncateSpecificationMask =
355  0x00000007, /* these bits are reserved for the truncation specification (0
356  - 7)*/
357  /* the following bit-field options can be added to the chosen truncation
358  specification*/
359  kATSUTruncFeatNoSquishing =
360  0x00000008 /* if specified, do not perform any negative justification in
361  lieu of truncation*/
362  };
363 
370  enum
371  {
372  kATSUStronglyHorizontal = 0,
373  kATSUStronglyVertical = 1
374  };
375 
382  typedef UInt16 ATSUStyleComparison;
383  enum
384  {
385  kATSUStyleUnequal = 0,
386  kATSUStyleContains = 1,
387  kATSUStyleEquals = 2,
388  kATSUStyleContainedBy = 3
389  };
390 
398  typedef UInt16 ATSUFontFallbackMethod;
399  enum
400  {
401  kATSUDefaultFontFallbacks = 0,
402  kATSULastResortOnlyFallback = 1,
403  kATSUSequentialFallbacksPreferred = 2,
404  kATSUSequentialFallbacksExclusive = 3
405  };
406 
407 #if CALL_NOT_IN_CARBON
414  typedef CALLBACK_API_C(void *, ATSUCustomAllocFunc)(void *refCon,
415  ByteCount howMuch);
416  typedef CALLBACK_API_C(void, ATSUCustomFreeFunc)(void *refCon,
417  void *doomedBlock);
418  typedef CALLBACK_API_C(void *, ATSUCustomGrowFunc)(void *refCon, void *oldBlock,
419  ByteCount oldSize,
420  ByteCount newSize);
422  {
423  struct
424  {
425  ATSUCustomAllocFunc Alloc;
426  ATSUCustomFreeFunc Free;
427  ATSUCustomGrowFunc Grow;
428  void *memoryRefCon;
429  } callbacks;
430 
431  THz heapToUse;
432  };
439  typedef UInt16 ATSUHeapSpec;
440  enum
441  {
442  kATSUUseCurrentHeap = 0,
443  kATSUUseAppHeap = 1,
444  kATSUUseSpecificHeap = 2,
445  kATSUUseCallbacks = 3
446  };
447 
454  typedef struct OpaqueATSUMemorySetting *ATSUMemorySetting;
455 #endif /* CALL_NOT_IN_CARBON */
456 
457  /* Types for ATSUI Low Level API */
459  {
460  GlyphID glyphID;
461  UInt16 reserved;
462  UInt32 layoutFlags;
463  UniCharArrayOffset charIndex;
464  ATSUStyle style;
465  Float32 deltaY;
466  Float32 idealX;
467  SInt16 screenX;
468  SInt16 caretX;
469  };
470  typedef struct ATSUGlyphInfo ATSUGlyphInfo;
472  {
473  ATSUTextLayout layout;
474  ItemCount numGlyphs;
475  ATSUGlyphInfo glyphs[1];
476  };
477  typedef struct ATSUGlyphInfoArray ATSUGlyphInfoArray;
478 
479  /*********************************************************************************/
480  /* ATSUI Highlighting method constants and typedefs */
481  /*********************************************************************************/
482  typedef UInt32 ATSUHighlightMethod;
483  enum
484  {
485  kInvertHighlighting = 0,
486  kRedrawHighlighting = 1
487  };
488 
489  typedef UInt32 ATSUBackgroundDataType;
490  enum
491  {
492  kATSUBackgroundColor = 0,
493  kATSUBackgroundCallback = 1
494  };
495 
497  {
498  float red;
499  float green;
500  float blue;
501  float alpha;
502  };
504 
550  RedrawBackgroundProcPtr)(ATSUTextLayout iLayout,
551  UniCharArrayOffset iTextOffset,
552  UniCharCount iTextLength,
553  ATSTrapezoid iUnhighlightArea[],
554  ItemCount iTrapezoidCount);
555  typedef TVECTOR_UPP_TYPE(RedrawBackgroundProcPtr) RedrawBackgroundUPP;
564  RedrawBackgroundUPP
565  NewRedrawBackgroundUPP(RedrawBackgroundProcPtr userRoutine);
566 
575  void
576  DisposeRedrawBackgroundUPP(RedrawBackgroundUPP userUPP);
577 
586  Boolean
588  UniCharArrayOffset iTextOffset,
589  UniCharCount iTextLength,
590  ATSTrapezoid iUnhighlightArea[],
591  ItemCount iTrapezoidCount,
592  RedrawBackgroundUPP userUPP);
593 
595  {
596  ATSUBackgroundColor backgroundColor;
597  RedrawBackgroundUPP backgroundUPP;
598  };
601  {
602  ATSUBackgroundDataType dataType;
603  ATSUBackgroundData unhighlightData;
604  };
606 
607  /********************/
608  /* Other constants */
609  /********************/
610  /* Line direction types (used for kATSULineDirectionTag values) */
611  enum
612  {
613  kATSULeftToRightBaseDirection =
614  0, /* Impose left-to-right or top-to-bottom dominant direction */
615  kATSURightToLeftBaseDirection =
616  1 /* Impose right-to-left or bottom-to-top dominant direction */
617  };
618 
619 /* LineFlushFactor convenience defined values */
620 #define kATSUStartAlignment ((Fract)0x00000000L)
621 #define kATSUEndAlignment ((Fract)0x40000000L)
622 #define kATSUCenterAlignment ((Fract)0x20000000L)
623 /* LineJustificationFactor convenience defined values */
624 #define kATSUNoJustification ((Fract)0x00000000L)
625 #define kATSUFullJustification ((Fract)0x40000000L)
626  /* Other constants */
627  enum
628  {
629  kATSUInvalidFontID = 0
630  };
631 
632  enum
633  {
634  kATSUUseLineControlWidth = 0x7FFFFFFF
635  };
636 
637  enum
638  {
639  kATSUNoSelector = 0x0000FFFF
640  };
641 
642  enum
643  {
644  kATSUUseGrafPortPenLoc = (unsigned long)0xFFFFFFFF,
645  kATSUClearAll = (unsigned long)0xFFFFFFFF
646  };
647 
648  enum
649  {
650  kATSUFromTextBeginning = (unsigned long)0xFFFFFFFF,
651  kATSUToTextEnd = (unsigned long)0xFFFFFFFF
652  };
653 
654  /****************/
655  /* Functions */
656  /****************/
657 
658  /* Clipboard support, flattened style version 0 (it is advised to not use these
659  * routines and perform your own flattening) */
668  OSStatus
669  ATSUCopyToHandle(ATSUStyle iStyle, Handle oStyleHandle);
670 
679  OSStatus
680  ATSUPasteFromHandle(ATSUStyle iStyle, Handle iStyleHandle);
681 
682 /* Memory allocation specification functions (not in Carbon) */
683 #if CALL_NOT_IN_CARBON
692  OSStatus
694  ATSUMemoryCallbacks *iMemoryCallbacks,
695  ATSUMemorySetting *oMemorySetting);
696 
705  OSStatus
707 
718 
727  OSStatus
729 
730 /* Font fallback object functions */
731 #endif /* CALL_NOT_IN_CARBON */
732 
741  OSStatus
743 
752  OSStatus
754 
763  OSStatus
765  ItemCount iFontFallbacksCount,
766  const ATSUFontID iFonts[],
767  ATSUFontFallbackMethod iFontFallbackMethod);
768 
777  OSStatus
779  ItemCount iMaxFontFallbacksCount, ATSUFontID oFonts[],
780  ATSUFontFallbackMethod *oFontFallbackMethod,
781  ItemCount *oActualFallbacksCount);
782 
783  /* Basic style functions */
792  OSStatus
794 
803  OSStatus
805 
814  OSStatus
816 
825  OSStatus
826  ATSUSetStyleRefCon(ATSUStyle iStyle, UInt32 iRefCon);
827 
836  OSStatus
837  ATSUGetStyleRefCon(ATSUStyle iStyle, UInt32 *oRefCon);
838 
839  /* Style comparison */
848  OSStatus
849  ATSUCompareStyles(ATSUStyle iFirstStyle, ATSUStyle iSecondStyle,
850  ATSUStyleComparison *oComparison);
851 
852  /* Attribute manipulations */
861  OSStatus
862  ATSUCopyAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle);
863 
872  OSStatus
873  ATSUOverwriteAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle);
874 
883  OSStatus
884  ATSUUnderwriteAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle);
885 
886  /* Empty styles */
895  OSStatus
897 
906  OSStatus
907  ATSUStyleIsEmpty(ATSUStyle iStyle, Boolean *oIsClear);
908 
909  /* Get and set attributes */
918  OSStatus
919  ATSUCalculateBaselineDeltas(ATSUStyle iStyle, BslnBaselineClass iBaselineClass,
920  BslnBaselineRecord oBaselineDeltas);
921 
930  OSStatus
931  ATSUSetAttributes(ATSUStyle iStyle, ItemCount iAttributeCount,
932  const ATSUAttributeTag iTag[], const ByteCount iValueSize[],
933  const ATSUAttributeValuePtr iValue[]);
934 
943  OSStatus
945  ByteCount iExpectedValueSize, ATSUAttributeValuePtr oValue,
946  ByteCount *oActualValueSize);
947 
956  OSStatus
957  ATSUGetAllAttributes(ATSUStyle iStyle, ATSUAttributeInfo oAttributeInfoArray[],
958  ItemCount iTagValuePairArraySize,
959  ItemCount *oTagValuePairCount);
960 
969  OSStatus
970  ATSUClearAttributes(ATSUStyle iStyle, ItemCount iTagCount,
971  const ATSUAttributeTag iTag[]);
972 
973  /* Font features */
982  OSStatus
983  ATSUSetFontFeatures(ATSUStyle iStyle, ItemCount iFeatureCount,
984  const ATSUFontFeatureType iType[],
985  const ATSUFontFeatureSelector iSelector[]);
986 
995  OSStatus
996  ATSUGetFontFeature(ATSUStyle iStyle, ItemCount iFeatureIndex,
997  ATSUFontFeatureType *oFeatureType,
998  ATSUFontFeatureSelector *oFeatureSelector);
999 
1008  OSStatus
1009  ATSUGetAllFontFeatures(ATSUStyle iStyle, ItemCount iMaximumFeatureCount,
1010  ATSUFontFeatureType oFeatureType[],
1011  ATSUFontFeatureSelector oFeatureSelector[],
1012  ItemCount *oActualFeatureCount);
1013 
1022  OSStatus
1023  ATSUClearFontFeatures(ATSUStyle iStyle, ItemCount iFeatureCount,
1024  const ATSUFontFeatureType iType[],
1025  const ATSUFontFeatureSelector iSelector[]);
1026 
1027  /* Font variations */
1036  OSStatus
1037  ATSUSetVariations(ATSUStyle iStyle, ItemCount iVariationCount,
1038  const ATSUFontVariationAxis iAxes[],
1039  const ATSUFontVariationValue iValue[]);
1040 
1049  OSStatus
1051  ATSUFontVariationAxis iFontVariationAxis,
1052  ATSUFontVariationValue *oFontVariationValue);
1053 
1062  OSStatus
1063  ATSUGetAllFontVariations(ATSUStyle iStyle, ItemCount iVariationCount,
1064  ATSUFontVariationAxis oVariationAxes[],
1065  ATSUFontVariationValue oFontVariationValues[],
1066  ItemCount *oActualVariationCount);
1067 
1076  OSStatus
1077  ATSUClearFontVariations(ATSUStyle iStyle, ItemCount iAxisCount,
1078  const ATSUFontVariationAxis iAxis[]);
1079 
1080  /* Basic text-layout functions */
1089  OSStatus
1091 
1100  OSStatus
1102  ATSUTextLayout *oTextLayout);
1103 
1112  OSStatus
1114  ConstUniCharArrayPtr iText, UniCharArrayOffset iTextOffset,
1115  UniCharCount iTextLength, UniCharCount iTextTotalLength,
1116  ItemCount iNumberOfRuns, const UniCharCount iRunLengths[],
1117  ATSUStyle iStyles[], ATSUTextLayout *oTextLayout);
1118 
1127  OSStatus
1129  UniCharArrayHandle iText, UniCharArrayOffset iTextOffset,
1130  UniCharCount iTextLength, UniCharCount iTextTotalLength,
1131  ItemCount iNumberOfRuns, const UniCharCount iRunLengths[],
1132  ATSUStyle iStyles[], ATSUTextLayout *oTextLayout);
1133 
1142  OSStatus
1144 
1153  OSStatus
1155 
1164  OSStatus
1165  ATSUSetTextLayoutRefCon(ATSUTextLayout iTextLayout, UInt32 iRefCon);
1166 
1175  OSStatus
1176  ATSUGetTextLayoutRefCon(ATSUTextLayout iTextLayout, UInt32 *oRefCon);
1177 
1178  /* Glyph bounds retrieval */
1187  OSStatus
1189  ATSUTextMeasurement iTextBasePointX,
1190  ATSUTextMeasurement iTextBasePointY,
1191  UniCharArrayOffset iBoundsCharStart,
1192  UniCharCount iBoundsCharLength, UInt16 iTypeOfBounds,
1193  ItemCount iMaxNumberOfBounds, ATSTrapezoid oGlyphBounds[],
1194  ItemCount *oActualNumberOfBounds);
1195 
1196  /* Idle processing */
1205  OSStatus
1206  ATSUIdle(ATSUTextLayout iTextLayout);
1207 
1208  /* Text location */
1217  OSStatus
1219  ConstUniCharArrayPtr iText,
1220  UniCharArrayOffset iTextOffset,
1221  UniCharCount iTextLength,
1222  UniCharCount iTextTotalLength);
1223 
1232  OSStatus
1234  UniCharArrayOffset iTextOffset,
1235  UniCharCount iTextLength,
1236  UniCharCount iTextTotalLength);
1237 
1246  OSStatus
1247  ATSUGetTextLocation(ATSUTextLayout iTextLayout, void **oText,
1248  Boolean *oTextIsStoredInHandle, UniCharArrayOffset *oOffset,
1249  UniCharCount *oTextLength, UniCharCount *oTextTotalLength);
1250 
1251  /* Text manipulation */
1260  OSStatus
1262  UniCharArrayOffset iDeletedRangeStart,
1263  UniCharCount iDeletedRangeLength);
1264 
1273  OSStatus
1275  UniCharArrayOffset iInsertionLocation,
1276  UniCharCount iInsertionLength);
1277 
1286  OSStatus
1287  ATSUTextMoved(ATSUTextLayout iTextLayout, ConstUniCharArrayPtr iNewLocation);
1288 
1289  /* Layout controls */
1298  OSStatus
1300  ATSUTextLayout iDestTextLayout);
1301 
1310  OSStatus
1311  ATSUSetLayoutControls(ATSUTextLayout iTextLayout, ItemCount iAttributeCount,
1312  const ATSUAttributeTag iTag[],
1313  const ByteCount iValueSize[],
1314  const ATSUAttributeValuePtr iValue[]);
1315 
1324  OSStatus
1326  ByteCount iExpectedValueSize, ATSUAttributeValuePtr oValue,
1327  ByteCount *oActualValueSize);
1328 
1337  OSStatus
1339  ATSUAttributeInfo oAttributeInfoArray[],
1340  ItemCount iTagValuePairArraySize,
1341  ItemCount *oTagValuePairCount);
1342 
1351  OSStatus
1352  ATSUClearLayoutControls(ATSUTextLayout iTextLayout, ItemCount iTagCount,
1353  const ATSUAttributeTag iTag[]);
1354 
1355  /* Single line layout controls */
1364  OSStatus
1366  UniCharArrayOffset iSourceLineStart,
1367  ATSUTextLayout iDestTextLayout,
1368  UniCharArrayOffset iDestLineStart);
1369 
1378  OSStatus
1380  ItemCount iAttributeCount, const ATSUAttributeTag iTag[],
1381  const ByteCount iValueSize[],
1382  const ATSUAttributeValuePtr iValue[]);
1383 
1392  OSStatus
1394  ATSUAttributeTag iTag, ByteCount iExpectedValueSize,
1395  ATSUAttributeValuePtr oValue, ByteCount *oActualValueSize);
1396 
1405  OSStatus
1407  UniCharArrayOffset iLineStart,
1408  ATSUAttributeInfo oAttributeInfoArray[],
1409  ItemCount iTagValuePairArraySize,
1410  ItemCount *oTagValuePairCount);
1411 
1420  OSStatus
1422  ItemCount iTagCount, const ATSUAttributeTag iTag[]);
1423 
1424  /* Style run processing */
1433  OSStatus
1435  UniCharArrayOffset iRunStart, UniCharCount iRunLength);
1436 
1445  OSStatus
1447  ATSUStyle *oStyle, UniCharArrayOffset *oRunStart,
1448  UniCharCount *oRunLength);
1449 
1458  OSStatus
1460  UniCharArrayOffset iOffset, UniCharCount iLength,
1461  ATSUStyle oStyle);
1462 
1463  /* Drawing and measuring */
1472  OSStatus
1474  UniCharCount iLineLength, ATSUTextMeasurement iLocationX,
1475  ATSUTextMeasurement iLocationY);
1476 
1485  OSStatus
1487  UniCharCount iLineLength, ATSUTextMeasurement *oTextBefore,
1488  ATSUTextMeasurement *oTextAfter, ATSUTextMeasurement *oAscent,
1489  ATSUTextMeasurement *oDescent);
1490 
1499  OSStatus
1501  UniCharCount iLineLength, ATSUTextMeasurement iLocationX,
1502  ATSUTextMeasurement iLocationY, Rect *oTextImageRect);
1503 
1504  /* Highlighting */
1513  OSStatus
1515  ATSUTextMeasurement iTextBasePointX,
1516  ATSUTextMeasurement iTextBasePointY,
1517  UniCharArrayOffset iHighlightStart,
1518  UniCharCount iHighlightLength);
1519 
1528  OSStatus
1530  ATSUTextMeasurement iTextBasePointX,
1531  ATSUTextMeasurement iTextBasePointY,
1532  UniCharArrayOffset iHighlightStart,
1533  UniCharCount iHighlightLength);
1534 
1543  OSStatus
1545  ATSUTextMeasurement iTextBasePointX,
1546  ATSUTextMeasurement iTextBasePointY,
1547  UniCharArrayOffset iHighlightStart,
1548  UniCharCount iHighlightLength, RgnHandle oHighlightRegion);
1549 
1550  /* Hit-testing */
1559  OSStatus
1561  ATSUTextMeasurement iLocationY,
1562  UniCharArrayOffset *ioPrimaryOffset, Boolean *oIsLeading,
1563  UniCharArrayOffset *oSecondaryOffset);
1564 
1573  OSStatus
1575  Boolean iIsLeading, ATSUCaret *oMainCaret,
1576  ATSUCaret *oSecondCaret, Boolean *oCaretIsSplit);
1577 
1586  OSStatus
1588  ATSUTextMeasurement iLocationX,
1589  ATSUTextMeasurement iLocationY,
1590  ATSUCursorMovementType iMovementType,
1591  UniCharArrayOffset *ioPrimaryOffset,
1592  Boolean *oIsLeading,
1593  UniCharArrayOffset *oSecondaryOffset);
1594 
1603  OSStatus
1605  UniCharArrayOffset iOffset, Boolean iIsLeading,
1606  ATSUCursorMovementType iMovementType,
1607  ATSUCaret *oMainCaret, ATSUCaret *oSecondCaret,
1608  Boolean *oCaretIsSplit);
1609 
1610  /* Cursor movement */
1619  OSStatus
1621  UniCharArrayOffset iOldOffset,
1622  ATSUCursorMovementType iMovementType,
1623  UniCharArrayOffset *oNewOffset);
1624 
1633  OSStatus
1635  UniCharArrayOffset iOldOffset,
1636  ATSUCursorMovementType iMovementType,
1637  UniCharArrayOffset *oNewOffset);
1638 
1647  OSStatus
1649  UniCharArrayOffset iOldOffset,
1650  ATSUCursorMovementType iMovementType,
1651  UniCharArrayOffset *oNewOffset);
1652 
1661  OSStatus
1663  UniCharArrayOffset iOldOffset,
1664  ATSUCursorMovementType iMovementType,
1665  UniCharArrayOffset *oNewOffset);
1666 
1667  /* Line breaking */
1676  OSStatus
1678  ATSUTextMeasurement iLineWidth, Boolean iUseAsSoftLineBreak,
1679  UniCharArrayOffset *oLineBreak);
1680 
1689  OSStatus
1691 
1700  OSStatus
1702  UniCharArrayOffset iRangeStart, UniCharCount iRangeLength,
1703  ItemCount iMaximumBreaks, UniCharArrayOffset oBreaks[],
1704  ItemCount *oBreakCount);
1705 
1714  OSStatus
1716  UniCharArrayOffset iRangeStart,
1717  UniCharCount iRangeLength);
1718 
1719  /* Font matching */
1728  OSStatus
1729  ATSUSetFontFallbacks(ItemCount iFontFallbacksCount, const ATSUFontID iFontIDs[],
1730  ATSUFontFallbackMethod iFontFallbackMethod);
1731 
1740  OSStatus
1741  ATSUGetFontFallbacks(ItemCount iMaxFontFallbacksCount, ATSUFontID oFontIDs[],
1742  ATSUFontFallbackMethod *oFontFallbackMethod,
1743  ItemCount *oActualFallbacksCount);
1744 
1753  OSStatus
1755  UniCharCount iTextLength, ATSUFontID *oFontID,
1756  UniCharArrayOffset *oChangedOffset,
1757  UniCharCount *oChangedLength);
1758 
1767  OSStatus
1769  Boolean iTransientFontMatching);
1770 
1779  OSStatus
1781  Boolean *oTransientFontMatching);
1782 
1783  /* Font ID's */
1792  OSStatus
1793  ATSUFontCount(ItemCount *oFontCount);
1794 
1803  OSStatus
1804  ATSUGetFontIDs(ATSUFontID oFontIDs[], ItemCount iArraySize,
1805  ItemCount *oFontCount);
1806 
1815  OSStatus
1816  ATSUFONDtoFontID(short iFONDNumber, Style iFONDStyle, ATSUFontID *oFontID);
1817 
1826  OSStatus
1827  ATSUFontIDtoFOND(ATSUFontID iFontID, short *oFONDNumber, Style *oFONDStyle);
1828 
1829  /* Font names */
1838  OSStatus
1839  ATSUCountFontNames(ATSUFontID iFontID, ItemCount *oFontNameCount);
1840 
1849  OSStatus
1850  ATSUGetIndFontName(ATSUFontID iFontID, ItemCount iFontNameIndex,
1851  ByteCount iMaximumNameLength, Ptr oName,
1852  ByteCount *oActualNameLength, FontNameCode *oFontNameCode,
1853  FontPlatformCode *oFontNamePlatform,
1854  FontScriptCode *oFontNameScript,
1855  FontLanguageCode *oFontNameLanguage);
1856 
1865  OSStatus
1866  ATSUFindFontName(ATSUFontID iFontID, FontNameCode iFontNameCode,
1867  FontPlatformCode iFontNamePlatform,
1868  FontScriptCode iFontNameScript,
1869  FontLanguageCode iFontNameLanguage,
1870  ByteCount iMaximumNameLength, Ptr oName,
1871  ByteCount *oActualNameLength, ItemCount *oFontNameIndex);
1872 
1881  OSStatus
1882  ATSUFindFontFromName(Ptr iName, ByteCount iNameLength,
1883  FontNameCode iFontNameCode,
1884  FontPlatformCode iFontNamePlatform,
1885  FontScriptCode iFontNameScript,
1886  FontLanguageCode iFontNameLanguage, ATSUFontID *oFontID);
1887 
1888  /* Font features */
1897  OSStatus
1898  ATSUCountFontFeatureTypes(ATSUFontID iFontID, ItemCount *oTypeCount);
1899 
1908  OSStatus
1910  ItemCount *oSelectorCount);
1911 
1920  OSStatus
1921  ATSUGetFontFeatureTypes(ATSUFontID iFontID, ItemCount iMaximumTypes,
1922  ATSUFontFeatureType oTypes[],
1923  ItemCount *oActualTypeCount);
1924 
1933  OSStatus
1935  ItemCount iMaximumSelectors,
1936  ATSUFontFeatureSelector oSelectors[],
1937  Boolean oSelectorIsOnByDefault[],
1938  ItemCount *oActualSelectorCount,
1939  Boolean *oIsMutuallyExclusive);
1940 
1949  OSStatus
1951  ATSUFontFeatureSelector iSelector,
1952  FontNameCode *oNameCode);
1953 
1954  /* Font tracking value & names */
1963  OSStatus
1965  ATSUVerticalCharacterType iCharacterOrientation,
1966  ItemCount *oTrackingCount);
1967 
1976  OSStatus
1978  ATSUVerticalCharacterType iCharacterOrientation,
1979  ItemCount iTrackIndex, Fixed *oFontTrackingValue,
1980  FontNameCode *oNameCode);
1981 
1982  /* Font variations */
1991  OSStatus
1992  ATSUCountFontVariations(ATSUFontID iFontID, ItemCount *oVariationCount);
1993 
2002  OSStatus
2003  ATSUGetIndFontVariation(ATSUFontID iFontID, ItemCount iVariationIndex,
2004  ATSUFontVariationAxis *oATSUFontVariationAxis,
2005  ATSUFontVariationValue *oMinimumValue,
2006  ATSUFontVariationValue *oMaximumValue,
2007  ATSUFontVariationValue *oDefaultValue);
2008 
2017  OSStatus
2019  FontNameCode *oNameCode);
2020 
2021  /* Font Instances */
2030  OSStatus
2031  ATSUCountFontInstances(ATSUFontID iFontID, ItemCount *oInstances);
2032 
2041  OSStatus
2042  ATSUGetFontInstance(ATSUFontID iFontID, ItemCount iFontInstanceIndex,
2043  ItemCount iMaximumVariations, ATSUFontVariationAxis oAxes[],
2044  ATSUFontVariationValue oValues[],
2045  ItemCount *oActualVariationCount);
2046 
2055  OSStatus
2056  ATSUGetFontInstanceNameCode(ATSUFontID iFontID, ItemCount iInstanceIndex,
2057  FontNameCode *oNameCode);
2058 
2059  /*******************************************************************************/
2060  /* ATSUI Low-Level API */
2061  /*******************************************************************************/
2062  /* GlyphInfo access */
2071  OSStatus
2073  UniCharCount iLineLength, ByteCount *ioBufferSize,
2074  ATSUGlyphInfoArray *oGlyphInfoPtr);
2075 
2084  OSStatus
2085  ATSUDrawGlyphInfo(ATSUGlyphInfoArray *iGlyphInfoArray, Float32Point iLocation);
2086 
2087  /* Font Data Access */
2096  OSStatus
2097  ATSUGlyphGetIdealMetrics(ATSUStyle iATSUStyle, ItemCount iNumOfGlyphs,
2098  GlyphID iGlyphIDs[], ByteOffset iInputOffset,
2099  ATSGlyphIdealMetrics oIdealMetrics[]);
2100 
2109  OSStatus
2110  ATSUGetNativeCurveType(ATSUStyle iATSUStyle, ATSCurveType *oCurveType);
2111 
2112  /* Device specific routines */
2121  OSStatus
2122  ATSUGlyphGetScreenMetrics(ATSUStyle iATSUStyle, ItemCount iNumOfGlyphs,
2123  GlyphID iGlyphIDs[], ByteOffset iInputOffset,
2124  Boolean iForcingAntiAlias, Boolean iAntiAliasSwitch,
2125  ATSGlyphScreenMetrics oScreenMetrics[]);
2126 
2127  /* ATSUGlyphGetQuadraticPaths callbacks */
2128  typedef CALLBACK_API(OSStatus, ATSQuadraticLineProcPtr)(const Float32Point *pt1,
2129  const Float32Point *pt2,
2130  void *callBackDataPtr);
2131  typedef CALLBACK_API(OSStatus,
2132  ATSQuadraticCurveProcPtr)(const Float32Point *pt1,
2133  const Float32Point *controlPt,
2134  const Float32Point *pt2,
2135  void *callBackDataPtr);
2136  typedef CALLBACK_API(OSStatus,
2137  ATSQuadraticNewPathProcPtr)(void *callBackDataPtr);
2138  typedef CALLBACK_API(OSStatus,
2139  ATSQuadraticClosePathProcPtr)(void *callBackDataPtr);
2140  typedef TVECTOR_UPP_TYPE(ATSQuadraticLineProcPtr) ATSQuadraticLineUPP;
2141  typedef TVECTOR_UPP_TYPE(ATSQuadraticCurveProcPtr) ATSQuadraticCurveUPP;
2142  typedef TVECTOR_UPP_TYPE(ATSQuadraticNewPathProcPtr) ATSQuadraticNewPathUPP;
2143  typedef TVECTOR_UPP_TYPE(ATSQuadraticClosePathProcPtr) ATSQuadraticClosePathUPP;
2152  ATSQuadraticLineUPP
2153  NewATSQuadraticLineUPP(ATSQuadraticLineProcPtr userRoutine);
2154 #if !OPAQUE_UPP_TYPES
2155  enum
2156  {
2157  uppATSQuadraticLineProcInfo = 0x00000FF0
2158  }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */
2159 #ifdef __cplusplus
2160  inline ATSQuadraticLineUPP
2161  NewATSQuadraticLineUPP(ATSQuadraticLineProcPtr userRoutine)
2162  {
2163  return userRoutine;
2164  }
2165 #else
2166 #define NewATSQuadraticLineUPP(userRoutine) (userRoutine)
2167 #endif
2168 #endif
2169 
2178  ATSQuadraticCurveUPP
2179  NewATSQuadraticCurveUPP(ATSQuadraticCurveProcPtr userRoutine);
2180 #if !OPAQUE_UPP_TYPES
2181  enum
2182  {
2183  uppATSQuadraticCurveProcInfo = 0x00003FF0
2184  }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
2185 #ifdef __cplusplus
2186  inline ATSQuadraticCurveUPP
2187  NewATSQuadraticCurveUPP(ATSQuadraticCurveProcPtr userRoutine)
2188  {
2189  return userRoutine;
2190  }
2191 #else
2192 #define NewATSQuadraticCurveUPP(userRoutine) (userRoutine)
2193 #endif
2194 #endif
2195 
2204  ATSQuadraticNewPathUPP
2205  NewATSQuadraticNewPathUPP(ATSQuadraticNewPathProcPtr userRoutine);
2206 #if !OPAQUE_UPP_TYPES
2207  enum
2208  {
2209  uppATSQuadraticNewPathProcInfo = 0x000000F0
2210  }; /* pascal 4_bytes Func(4_bytes) */
2211 #ifdef __cplusplus
2212  inline ATSQuadraticNewPathUPP
2213  NewATSQuadraticNewPathUPP(ATSQuadraticNewPathProcPtr userRoutine)
2214  {
2215  return userRoutine;
2216  }
2217 #else
2218 #define NewATSQuadraticNewPathUPP(userRoutine) (userRoutine)
2219 #endif
2220 #endif
2221 
2230  ATSQuadraticClosePathUPP
2231  NewATSQuadraticClosePathUPP(ATSQuadraticClosePathProcPtr userRoutine);
2232 #if !OPAQUE_UPP_TYPES
2233  enum
2234  {
2235  uppATSQuadraticClosePathProcInfo = 0x000000F0
2236  }; /* pascal 4_bytes Func(4_bytes) */
2237 #ifdef __cplusplus
2238  inline ATSQuadraticClosePathUPP
2239  NewATSQuadraticClosePathUPP(ATSQuadraticClosePathProcPtr userRoutine)
2240  {
2241  return userRoutine;
2242  }
2243 #else
2244 #define NewATSQuadraticClosePathUPP(userRoutine) (userRoutine)
2245 #endif
2246 #endif
2247 
2256  void
2257  DisposeATSQuadraticLineUPP(ATSQuadraticLineUPP userUPP);
2258 #if !OPAQUE_UPP_TYPES
2259 #ifdef __cplusplus
2260  inline void DisposeATSQuadraticLineUPP(ATSQuadraticLineUPP) {}
2261 #else
2262 #define DisposeATSQuadraticLineUPP(userUPP)
2263 #endif
2264 #endif
2265 
2274  void
2275  DisposeATSQuadraticCurveUPP(ATSQuadraticCurveUPP userUPP);
2276 #if !OPAQUE_UPP_TYPES
2277 #ifdef __cplusplus
2278  inline void DisposeATSQuadraticCurveUPP(ATSQuadraticCurveUPP) {}
2279 #else
2280 #define DisposeATSQuadraticCurveUPP(userUPP)
2281 #endif
2282 #endif
2283 
2292  void
2293  DisposeATSQuadraticNewPathUPP(ATSQuadraticNewPathUPP userUPP);
2294 #if !OPAQUE_UPP_TYPES
2295 #ifdef __cplusplus
2296  inline void DisposeATSQuadraticNewPathUPP(ATSQuadraticNewPathUPP) {}
2297 #else
2298 #define DisposeATSQuadraticNewPathUPP(userUPP)
2299 #endif
2300 #endif
2301 
2310  void
2311  DisposeATSQuadraticClosePathUPP(ATSQuadraticClosePathUPP userUPP);
2312 #if !OPAQUE_UPP_TYPES
2313 #ifdef __cplusplus
2314  inline void DisposeATSQuadraticClosePathUPP(ATSQuadraticClosePathUPP) {}
2315 #else
2316 #define DisposeATSQuadraticClosePathUPP(userUPP)
2317 #endif
2318 #endif
2319 
2328  OSStatus
2330  void *callBackDataPtr, ATSQuadraticLineUPP userUPP);
2331 #if !OPAQUE_UPP_TYPES
2332 #ifdef __cplusplus
2333  inline OSStatus InvokeATSQuadraticLineUPP(const Float32Point *pt1,
2334  const Float32Point *pt2,
2335  void *callBackDataPtr,
2336  ATSQuadraticLineUPP userUPP)
2337  {
2338  return (*userUPP)(pt1, pt2, callBackDataPtr);
2339  }
2340 #else
2341 #define InvokeATSQuadraticLineUPP(pt1, pt2, callBackDataPtr, userUPP) \
2342  (*userUPP)(pt1, pt2, callBackDataPtr)
2343 #endif
2344 #endif
2345 
2354  OSStatus
2356  const Float32Point *controlPt,
2357  const Float32Point *pt2, void *callBackDataPtr,
2358  ATSQuadraticCurveUPP userUPP);
2359 #if !OPAQUE_UPP_TYPES
2360 #ifdef __cplusplus
2361  inline OSStatus InvokeATSQuadraticCurveUPP(const Float32Point *pt1,
2362  const Float32Point *controlPt,
2363  const Float32Point *pt2,
2364  void *callBackDataPtr,
2365  ATSQuadraticCurveUPP userUPP)
2366  {
2367  return (*userUPP)(pt1, controlPt, pt2, callBackDataPtr);
2368  }
2369 #else
2370 #define InvokeATSQuadraticCurveUPP(pt1, controlPt, pt2, callBackDataPtr, \
2371  userUPP) \
2372  (*userUPP)(pt1, controlPt, pt2, callBackDataPtr)
2373 #endif
2374 #endif
2375 
2384  OSStatus
2385  InvokeATSQuadraticNewPathUPP(void *callBackDataPtr,
2386  ATSQuadraticNewPathUPP userUPP);
2387 #if !OPAQUE_UPP_TYPES
2388 #ifdef __cplusplus
2389  inline OSStatus InvokeATSQuadraticNewPathUPP(void *callBackDataPtr,
2390  ATSQuadraticNewPathUPP userUPP)
2391  {
2392  return (*userUPP)(callBackDataPtr);
2393  }
2394 #else
2395 #define InvokeATSQuadraticNewPathUPP(callBackDataPtr, userUPP) \
2396  (*userUPP)(callBackDataPtr)
2397 #endif
2398 #endif
2399 
2408  OSStatus
2409  InvokeATSQuadraticClosePathUPP(void *callBackDataPtr,
2410  ATSQuadraticClosePathUPP userUPP);
2411 #if !OPAQUE_UPP_TYPES
2412 #ifdef __cplusplus
2413  inline OSStatus
2414  InvokeATSQuadraticClosePathUPP(void *callBackDataPtr,
2415  ATSQuadraticClosePathUPP userUPP)
2416  {
2417  return (*userUPP)(callBackDataPtr);
2418  }
2419 #else
2420 #define InvokeATSQuadraticClosePathUPP(callBackDataPtr, userUPP) \
2421  (*userUPP)(callBackDataPtr)
2422 #endif
2423 #endif
2424 
2433  OSStatus
2434  ATSUGlyphGetQuadraticPaths(ATSUStyle iATSUStyle, GlyphID iGlyphID,
2435  ATSQuadraticNewPathUPP iNewPathProc,
2436  ATSQuadraticLineUPP iLineProc,
2437  ATSQuadraticCurveUPP iCurveProc,
2438  ATSQuadraticClosePathUPP iClosePathProc,
2439  void *iCallbackDataPtr, OSStatus *oCallbackResult);
2440 
2441  /* ATSUGlyphGetCubicPaths callbacks */
2442  typedef CALLBACK_API(OSStatus, ATSCubicMoveToProcPtr)(const Float32Point *pt,
2443  void *callBackDataPtr);
2444  typedef CALLBACK_API(OSStatus, ATSCubicLineToProcPtr)(const Float32Point *pt,
2445  void *callBackDataPtr);
2446  typedef CALLBACK_API(OSStatus, ATSCubicCurveToProcPtr)(const Float32Point *pt1,
2447  const Float32Point *pt2,
2448  const Float32Point *pt3,
2449  void *callBackDataPtr);
2450  typedef CALLBACK_API(OSStatus, ATSCubicClosePathProcPtr)(void *callBackDataPtr);
2451  typedef TVECTOR_UPP_TYPE(ATSCubicMoveToProcPtr) ATSCubicMoveToUPP;
2452  typedef TVECTOR_UPP_TYPE(ATSCubicLineToProcPtr) ATSCubicLineToUPP;
2453  typedef TVECTOR_UPP_TYPE(ATSCubicCurveToProcPtr) ATSCubicCurveToUPP;
2454  typedef TVECTOR_UPP_TYPE(ATSCubicClosePathProcPtr) ATSCubicClosePathUPP;
2463  ATSCubicMoveToUPP
2464  NewATSCubicMoveToUPP(ATSCubicMoveToProcPtr userRoutine);
2465 #if !OPAQUE_UPP_TYPES
2466  enum
2467  {
2468  uppATSCubicMoveToProcInfo = 0x000003F0
2469  }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
2470 #ifdef __cplusplus
2471  inline ATSCubicMoveToUPP
2472  NewATSCubicMoveToUPP(ATSCubicMoveToProcPtr userRoutine)
2473  {
2474  return userRoutine;
2475  }
2476 #else
2477 #define NewATSCubicMoveToUPP(userRoutine) (userRoutine)
2478 #endif
2479 #endif
2480 
2489  ATSCubicLineToUPP
2490  NewATSCubicLineToUPP(ATSCubicLineToProcPtr userRoutine);
2491 #if !OPAQUE_UPP_TYPES
2492  enum
2493  {
2494  uppATSCubicLineToProcInfo = 0x000003F0
2495  }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
2496 #ifdef __cplusplus
2497  inline ATSCubicLineToUPP
2498  NewATSCubicLineToUPP(ATSCubicLineToProcPtr userRoutine)
2499  {
2500  return userRoutine;
2501  }
2502 #else
2503 #define NewATSCubicLineToUPP(userRoutine) (userRoutine)
2504 #endif
2505 #endif
2506 
2515  ATSCubicCurveToUPP
2516  NewATSCubicCurveToUPP(ATSCubicCurveToProcPtr userRoutine);
2517 #if !OPAQUE_UPP_TYPES
2518  enum
2519  {
2520  uppATSCubicCurveToProcInfo = 0x00003FF0
2521  }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
2522 #ifdef __cplusplus
2523  inline ATSCubicCurveToUPP
2524  NewATSCubicCurveToUPP(ATSCubicCurveToProcPtr userRoutine)
2525  {
2526  return userRoutine;
2527  }
2528 #else
2529 #define NewATSCubicCurveToUPP(userRoutine) (userRoutine)
2530 #endif
2531 #endif
2532 
2541  ATSCubicClosePathUPP
2542  NewATSCubicClosePathUPP(ATSCubicClosePathProcPtr userRoutine);
2543 #if !OPAQUE_UPP_TYPES
2544  enum
2545  {
2546  uppATSCubicClosePathProcInfo = 0x000000F0
2547  }; /* pascal 4_bytes Func(4_bytes) */
2548 #ifdef __cplusplus
2549  inline ATSCubicClosePathUPP
2550  NewATSCubicClosePathUPP(ATSCubicClosePathProcPtr userRoutine)
2551  {
2552  return userRoutine;
2553  }
2554 #else
2555 #define NewATSCubicClosePathUPP(userRoutine) (userRoutine)
2556 #endif
2557 #endif
2558 
2567  void
2568  DisposeATSCubicMoveToUPP(ATSCubicMoveToUPP userUPP);
2569 #if !OPAQUE_UPP_TYPES
2570 #ifdef __cplusplus
2571  inline void DisposeATSCubicMoveToUPP(ATSCubicMoveToUPP) {}
2572 #else
2573 #define DisposeATSCubicMoveToUPP(userUPP)
2574 #endif
2575 #endif
2576 
2585  void
2586  DisposeATSCubicLineToUPP(ATSCubicLineToUPP userUPP);
2587 #if !OPAQUE_UPP_TYPES
2588 #ifdef __cplusplus
2589  inline void DisposeATSCubicLineToUPP(ATSCubicLineToUPP) {}
2590 #else
2591 #define DisposeATSCubicLineToUPP(userUPP)
2592 #endif
2593 #endif
2594 
2603  void
2604  DisposeATSCubicCurveToUPP(ATSCubicCurveToUPP userUPP);
2605 #if !OPAQUE_UPP_TYPES
2606 #ifdef __cplusplus
2607  inline void DisposeATSCubicCurveToUPP(ATSCubicCurveToUPP) {}
2608 #else
2609 #define DisposeATSCubicCurveToUPP(userUPP)
2610 #endif
2611 #endif
2612 
2621  void
2622  DisposeATSCubicClosePathUPP(ATSCubicClosePathUPP userUPP);
2623 #if !OPAQUE_UPP_TYPES
2624 #ifdef __cplusplus
2625  inline void DisposeATSCubicClosePathUPP(ATSCubicClosePathUPP) {}
2626 #else
2627 #define DisposeATSCubicClosePathUPP(userUPP)
2628 #endif
2629 #endif
2630 
2639  OSStatus
2640  InvokeATSCubicMoveToUPP(const Float32Point *pt, void *callBackDataPtr,
2641  ATSCubicMoveToUPP userUPP);
2642 #if !OPAQUE_UPP_TYPES
2643 #ifdef __cplusplus
2644  inline OSStatus InvokeATSCubicMoveToUPP(const Float32Point *pt,
2645  void *callBackDataPtr,
2646  ATSCubicMoveToUPP userUPP)
2647  {
2648  return (*userUPP)(pt, callBackDataPtr);
2649  }
2650 #else
2651 #define InvokeATSCubicMoveToUPP(pt, callBackDataPtr, userUPP) \
2652  (*userUPP)(pt, callBackDataPtr)
2653 #endif
2654 #endif
2655 
2664  OSStatus
2665  InvokeATSCubicLineToUPP(const Float32Point *pt, void *callBackDataPtr,
2666  ATSCubicLineToUPP userUPP);
2667 #if !OPAQUE_UPP_TYPES
2668 #ifdef __cplusplus
2669  inline OSStatus InvokeATSCubicLineToUPP(const Float32Point *pt,
2670  void *callBackDataPtr,
2671  ATSCubicLineToUPP userUPP)
2672  {
2673  return (*userUPP)(pt, callBackDataPtr);
2674  }
2675 #else
2676 #define InvokeATSCubicLineToUPP(pt, callBackDataPtr, userUPP) \
2677  (*userUPP)(pt, callBackDataPtr)
2678 #endif
2679 #endif
2680 
2689  OSStatus
2691  const Float32Point *pt3, void *callBackDataPtr,
2692  ATSCubicCurveToUPP userUPP);
2693 #if !OPAQUE_UPP_TYPES
2694 #ifdef __cplusplus
2695  inline OSStatus InvokeATSCubicCurveToUPP(const Float32Point *pt1,
2696  const Float32Point *pt2,
2697  const Float32Point *pt3,
2698  void *callBackDataPtr,
2699  ATSCubicCurveToUPP userUPP)
2700  {
2701  return (*userUPP)(pt1, pt2, pt3, callBackDataPtr);
2702  }
2703 #else
2704 #define InvokeATSCubicCurveToUPP(pt1, pt2, pt3, callBackDataPtr, userUPP) \
2705  (*userUPP)(pt1, pt2, pt3, callBackDataPtr)
2706 #endif
2707 #endif
2708 
2717  OSStatus
2718  InvokeATSCubicClosePathUPP(void *callBackDataPtr, ATSCubicClosePathUPP userUPP);
2719 #if !OPAQUE_UPP_TYPES
2720 #ifdef __cplusplus
2721  inline OSStatus InvokeATSCubicClosePathUPP(void *callBackDataPtr,
2722  ATSCubicClosePathUPP userUPP)
2723  {
2724  return (*userUPP)(callBackDataPtr);
2725  }
2726 #else
2727 #define InvokeATSCubicClosePathUPP(callBackDataPtr, userUPP) \
2728  (*userUPP)(callBackDataPtr)
2729 #endif
2730 #endif
2731 
2740  OSStatus
2741  ATSUGlyphGetCubicPaths(ATSUStyle iATSUStyle, GlyphID iGlyphID,
2742  ATSCubicMoveToUPP iMoveToProc,
2743  ATSCubicLineToUPP iLineToProc,
2744  ATSCubicCurveToUPP iCurveToProc,
2745  ATSCubicClosePathUPP iClosePathProc,
2746  void *iCallbackDataPtr, OSStatus *oCallbackResult);
2747 
2756  OSStatus
2757  ATSUGlyphGetCurvePaths(ATSUStyle iATSUStyle, GlyphID iGlyphID,
2758  ByteCount *ioBufferSize, ATSUCurvePaths *oPaths);
2759 
2760  /*************************************************************************/
2812  OSStatus
2814  ATSUHighlightMethod iMethod,
2815  const ATSUUnhighlightData *iUnhighlightData);
2816 
2817 #if PRAGMA_STRUCT_ALIGN
2818 #pragma options align = reset
2819 #elif PRAGMA_STRUCT_PACKPUSH
2820 #pragma pack(pop)
2821 #elif PRAGMA_STRUCT_PACK
2822 #pragma pack()
2823 #endif
2824 
2825 #ifdef PRAGMA_IMPORT_OFF
2826 #pragma import off
2827 #elif PRAGMA_IMPORT
2828 #pragma import reset
2829 #endif
2830 
2831 #ifdef __cplusplus
2832 }
2833 #endif
2834 
2835 #endif /* __ATSUNICODE__ */
Apple Type Services layout public structures and constants.
Public interfaces for Apple Type Services components.
UInt32 FMFont
Definition: ATSTypes.h:74
OSStatus ATSUDisposeFontFallbacks(ATSUFontFallbacks iFontFallbacks)
OSStatus ATSUSetStyleRefCon(ATSUStyle iStyle, UInt32 iRefCon)
OSStatus ATSUIdle(ATSUTextLayout iTextLayout)
OSStatus ATSUCreateAndCopyTextLayout(ATSUTextLayout iTextLayout, ATSUTextLayout *oTextLayout)
OSStatus ATSUGetTextLocation(ATSUTextLayout iTextLayout, void **oText, Boolean *oTextIsStoredInHandle, UniCharArrayOffset *oOffset, UniCharCount *oTextLength, UniCharCount *oTextTotalLength)
OSStatus ATSUGetTextLayoutRefCon(ATSUTextLayout iTextLayout, UInt32 *oRefCon)
typedef CALLBACK_API_C(void *, ATSUCustomAllocFunc)(void *refCon
OSStatus ATSUGetAllFontVariations(ATSUStyle iStyle, ItemCount iVariationCount, ATSUFontVariationAxis oVariationAxes[], ATSUFontVariationValue oFontVariationValues[], ItemCount *oActualVariationCount)
OSStatus ATSUGetLayoutControl(ATSUTextLayout iTextLayout, ATSUAttributeTag iTag, ByteCount iExpectedValueSize, ATSUAttributeValuePtr oValue, ByteCount *oActualValueSize)
OSStatus ATSUPreviousCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
OSStatus ATSUOverwriteAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle)
OSStatus ATSUFONDtoFontID(short iFONDNumber, Style iFONDStyle, ATSUFontID *oFontID)
OSStatus ATSUGetNativeCurveType(ATSUStyle iATSUStyle, ATSCurveType *oCurveType)
void DisposeATSCubicClosePathUPP(ATSCubicClosePathUPP userUPP)
UInt16 ATSUVerticalCharacterType
Definition: ATSUnicode.h:369
ATSQuadraticNewPathUPP NewATSQuadraticNewPathUPP(ATSQuadraticNewPathProcPtr userRoutine)
OSStatus ATSUOffsetToPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOffset, Boolean iIsLeading, ATSUCaret *oMainCaret, ATSUCaret *oSecondCaret, Boolean *oCaretIsSplit)
OSStatus ATSUSetSoftLineBreak(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineBreak)
OSStatus ATSUMeasureTextImage(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineOffset, UniCharCount iLineLength, ATSUTextMeasurement iLocationX, ATSUTextMeasurement iLocationY, Rect *oTextImageRect)
OSStatus ATSUFontIDtoFOND(ATSUFontID iFontID, short *oFONDNumber, Style *oFONDStyle)
OSStatus ATSUGlyphGetScreenMetrics(ATSUStyle iATSUStyle, ItemCount iNumOfGlyphs, GlyphID iGlyphIDs[], ByteOffset iInputOffset, Boolean iForcingAntiAlias, Boolean iAntiAliasSwitch, ATSGlyphScreenMetrics oScreenMetrics[])
OSStatus ATSUGetRunStyle(ATSUTextLayout iTextLayout, UniCharArrayOffset iOffset, ATSUStyle *oStyle, UniCharArrayOffset *oRunStart, UniCharCount *oRunLength)
UInt32 ATSUAttributeTag
Definition: ATSUnicode.h:146
OSStatus ATSUMeasureText(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, UniCharCount iLineLength, ATSUTextMeasurement *oTextBefore, ATSUTextMeasurement *oTextAfter, ATSUTextMeasurement *oAscent, ATSUTextMeasurement *oDescent)
Fixed ATSUTextMeasurement
Definition: ATSUnicode.h:97
OSStatus ATSUCopyToHandle(ATSUStyle iStyle, Handle oStyleHandle)
OSStatus ATSUBreakLine(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, ATSUTextMeasurement iLineWidth, Boolean iUseAsSoftLineBreak, UniCharArrayOffset *oLineBreak)
OSStatus ATSUSetHighlightingMethod(ATSUTextLayout iTextLayout, ATSUHighlightMethod iMethod, const ATSUUnhighlightData *iUnhighlightData)
ATSQuadraticClosePathUPP NewATSQuadraticClosePathUPP(ATSQuadraticClosePathProcPtr userRoutine)
OSStatus ATSUGetFontFeatureSelectors(ATSUFontID iFontID, ATSUFontFeatureType iType, ItemCount iMaximumSelectors, ATSUFontFeatureSelector oSelectors[], Boolean oSelectorIsOnByDefault[], ItemCount *oActualSelectorCount, Boolean *oIsMutuallyExclusive)
OSStatus ATSUGetAllLayoutControls(ATSUTextLayout iTextLayout, ATSUAttributeInfo oAttributeInfoArray[], ItemCount iTagValuePairArraySize, ItemCount *oTagValuePairCount)
OSStatus ATSUCreateTextLayoutWithTextPtr(ConstUniCharArrayPtr iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength, ItemCount iNumberOfRuns, const UniCharCount iRunLengths[], ATSUStyle iStyles[], ATSUTextLayout *oTextLayout)
OSStatus ATSUTextDeleted(ATSUTextLayout iTextLayout, UniCharArrayOffset iDeletedRangeStart, UniCharCount iDeletedRangeLength)
ATSCubicClosePathUPP NewATSCubicClosePathUPP(ATSCubicClosePathProcPtr userRoutine)
OSStatus ATSUCreateTextLayoutWithTextHandle(UniCharArrayHandle iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength, ItemCount iNumberOfRuns, const UniCharCount iRunLengths[], ATSUStyle iStyles[], ATSUTextLayout *oTextLayout)
OSStatus ATSUGetGlyphInfo(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, UniCharCount iLineLength, ByteCount *ioBufferSize, ATSUGlyphInfoArray *oGlyphInfoPtr)
OSStatus ATSUGetGlyphBounds(ATSUTextLayout iTextLayout, ATSUTextMeasurement iTextBasePointX, ATSUTextMeasurement iTextBasePointY, UniCharArrayOffset iBoundsCharStart, UniCharCount iBoundsCharLength, UInt16 iTypeOfBounds, ItemCount iMaxNumberOfBounds, ATSTrapezoid oGlyphBounds[], ItemCount *oActualNumberOfBounds)
struct OpaqueATSUStyle * ATSUStyle
Definition: ATSUnicode.h:129
OSStatus ATSUGetTextHighlight(ATSUTextLayout iTextLayout, ATSUTextMeasurement iTextBasePointX, ATSUTextMeasurement iTextBasePointY, UniCharArrayOffset iHighlightStart, UniCharCount iHighlightLength, RgnHandle oHighlightRegion)
OSStatus ATSUSetVariations(ATSUStyle iStyle, ItemCount iVariationCount, const ATSUFontVariationAxis iAxes[], const ATSUFontVariationValue iValue[])
OSStatus ATSUGlyphGetCurvePaths(ATSUStyle iATSUStyle, GlyphID iGlyphID, ByteCount *ioBufferSize, ATSUCurvePaths *oPaths)
OSStatus ATSUGetFontFeatureTypes(ATSUFontID iFontID, ItemCount iMaximumTypes, ATSUFontFeatureType oTypes[], ItemCount *oActualTypeCount)
void DisposeATSQuadraticNewPathUPP(ATSQuadraticNewPathUPP userUPP)
FMFont ATSUFontID
Definition: ATSUnicode.h:105
OSStatus ATSUDisposeTextLayout(ATSUTextLayout iTextLayout)
ATSQuadraticCurveUPP NewATSQuadraticCurveUPP(ATSQuadraticCurveProcPtr userRoutine)
OSStatus ATSUPasteFromHandle(ATSUStyle iStyle, Handle iStyleHandle)
OSStatus ATSUGlyphGetIdealMetrics(ATSUStyle iATSUStyle, ItemCount iNumOfGlyphs, GlyphID iGlyphIDs[], ByteOffset iInputOffset, ATSGlyphIdealMetrics oIdealMetrics[])
struct OpaqueATSUFontFallbacks * ATSUFontFallbacks
Definition: ATSUnicode.h:135
OSStatus ATSUGetAllFontFeatures(ATSUStyle iStyle, ItemCount iMaximumFeatureCount, ATSUFontFeatureType oFeatureType[], ATSUFontFeatureSelector oFeatureSelector[], ItemCount *oActualFeatureCount)
OSStatus ATSUGetAllAttributes(ATSUStyle iStyle, ATSUAttributeInfo oAttributeInfoArray[], ItemCount iTagValuePairArraySize, ItemCount *oTagValuePairCount)
OSStatus ATSUCopyLayoutControls(ATSUTextLayout iSourceTextLayout, ATSUTextLayout iDestTextLayout)
void DisposeATSCubicLineToUPP(ATSCubicLineToUPP userUPP)
RedrawBackgroundUPP NewRedrawBackgroundUPP(RedrawBackgroundProcPtr userRoutine)
OSStatus ATSUCreateAndCopyStyle(ATSUStyle iStyle, ATSUStyle *oStyle)
OSStatus ATSUSetAttributes(ATSUStyle iStyle, ItemCount iAttributeCount, const ATSUAttributeTag iTag[], const ByteCount iValueSize[], const ATSUAttributeValuePtr iValue[])
OSStatus ATSUClearLayoutControls(ATSUTextLayout iTextLayout, ItemCount iTagCount, const ATSUAttributeTag iTag[])
OSStatus ATSUCalculateBaselineDeltas(ATSUStyle iStyle, BslnBaselineClass iBaselineClass, BslnBaselineRecord oBaselineDeltas)
OSStatus ATSUUnderwriteAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle)
OSStatus InvokeATSQuadraticNewPathUPP(void *callBackDataPtr, ATSQuadraticNewPathUPP userUPP)
OSStatus ATSUClearFontFeatures(ATSUStyle iStyle, ItemCount iFeatureCount, const ATSUFontFeatureType iType[], const ATSUFontFeatureSelector iSelector[])
OSStatus ATSUCountFontInstances(ATSUFontID iFontID, ItemCount *oInstances)
OSStatus ATSUGetLineControl(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, ATSUAttributeTag iTag, ByteCount iExpectedValueSize, ATSUAttributeValuePtr oValue, ByteCount *oActualValueSize)
OSStatus ATSUCopyAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle)
OSStatus ATSUGetFontFeatureNameCode(ATSUFontID iFontID, ATSUFontFeatureType iType, ATSUFontFeatureSelector iSelector, FontNameCode *oNameCode)
OSStatus ATSUFontCount(ItemCount *oFontCount)
OSStatus ATSUDisposeStyle(ATSUStyle iStyle)
OSStatus ATSUPositionToCursorOffset(ATSUTextLayout iTextLayout, ATSUTextMeasurement iLocationX, ATSUTextMeasurement iLocationY, ATSUCursorMovementType iMovementType, UniCharArrayOffset *ioPrimaryOffset, Boolean *oIsLeading, UniCharArrayOffset *oSecondaryOffset)
OSStatus ATSUGetAttribute(ATSUStyle iStyle, ATSUAttributeTag iTag, ByteCount iExpectedValueSize, ATSUAttributeValuePtr oValue, ByteCount *oActualValueSize)
OSStatus ATSUGlyphGetCubicPaths(ATSUStyle iATSUStyle, GlyphID iGlyphID, ATSCubicMoveToUPP iMoveToProc, ATSCubicLineToUPP iLineToProc, ATSCubicCurveToUPP iCurveToProc, ATSCubicClosePathUPP iClosePathProc, void *iCallbackDataPtr, OSStatus *oCallbackResult)
OSStatus ATSUGetFontIDs(ATSUFontID oFontIDs[], ItemCount iArraySize, ItemCount *oFontCount)
UInt16 ATSUCursorMovementType
Definition: ATSUnicode.h:331
OSStatus ATSUCreateTextLayout(ATSUTextLayout *oTextLayout)
struct OpaqueATSUTextLayout * ATSUTextLayout
Definition: ATSUnicode.h:123
OSStatus ATSUOffsetToCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOffset, Boolean iIsLeading, ATSUCursorMovementType iMovementType, ATSUCaret *oMainCaret, ATSUCaret *oSecondCaret, Boolean *oCaretIsSplit)
OSStatus ATSUGetFontFeature(ATSUStyle iStyle, ItemCount iFeatureIndex, ATSUFontFeatureType *oFeatureType, ATSUFontFeatureSelector *oFeatureSelector)
void * ATSUAttributeValuePtr
Definition: ATSUnicode.h:284
OSStatus ATSUCountFontTracking(ATSUFontID iFontID, ATSUVerticalCharacterType iCharacterOrientation, ItemCount *oTrackingCount)
OSStatus ATSUCountFontFeatureSelectors(ATSUFontID iFontID, ATSUFontFeatureType iType, ItemCount *oSelectorCount)
OSStatus ATSUClearSoftLineBreaks(ATSUTextLayout iTextLayout, UniCharArrayOffset iRangeStart, UniCharCount iRangeLength)
OSStatus ATSUGetFontVariationValue(ATSUStyle iStyle, ATSUFontVariationAxis iFontVariationAxis, ATSUFontVariationValue *oFontVariationValue)
OSStatus ATSUGetAllLineControls(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, ATSUAttributeInfo oAttributeInfoArray[], ItemCount iTagValuePairArraySize, ItemCount *oTagValuePairCount)
OSStatus ATSUClearLineControls(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, ItemCount iTagCount, const ATSUAttributeTag iTag[])
OSStatus InvokeATSCubicMoveToUPP(const Float32Point *pt, void *callBackDataPtr, ATSCubicMoveToUPP userUPP)
void DisposeATSCubicCurveToUPP(ATSCubicCurveToUPP userUPP)
OSStatus ATSUGetFontVariationNameCode(ATSUFontID iFontID, ATSUFontVariationAxis iAxis, FontNameCode *oNameCode)
OSStatus ATSUPositionToOffset(ATSUTextLayout iTextLayout, ATSUTextMeasurement iLocationX, ATSUTextMeasurement iLocationY, UniCharArrayOffset *ioPrimaryOffset, Boolean *oIsLeading, UniCharArrayOffset *oSecondaryOffset)
OSStatus ATSUMatchFontsToText(ATSUTextLayout iTextLayout, UniCharArrayOffset iTextStart, UniCharCount iTextLength, ATSUFontID *oFontID, UniCharArrayOffset *oChangedOffset, UniCharCount *oChangedLength)
OSStatus ATSUCopyLineControls(ATSUTextLayout iSourceTextLayout, UniCharArrayOffset iSourceLineStart, ATSUTextLayout iDestTextLayout, UniCharArrayOffset iDestLineStart)
OSStatus InvokeATSQuadraticLineUPP(const Float32Point *pt1, const Float32Point *pt2, void *callBackDataPtr, ATSQuadraticLineUPP userUPP)
FourCharCode ATSUFontVariationAxis
Definition: ATSUnicode.h:116
OSStatus ATSUCountFontNames(ATSUFontID iFontID, ItemCount *oFontNameCount)
OSStatus InvokeATSCubicCurveToUPP(const Float32Point *pt1, const Float32Point *pt2, const Float32Point *pt3, void *callBackDataPtr, ATSCubicCurveToUPP userUPP)
OSStatus ATSUFindFontFromName(Ptr iName, ByteCount iNameLength, FontNameCode iFontNameCode, FontPlatformCode iFontNamePlatform, FontScriptCode iFontNameScript, FontLanguageCode iFontNameLanguage, ATSUFontID *oFontID)
UInt16 ATSUFontFeatureType
Definition: ATSUnicode.h:110
UInt32 ATSULineTruncation
Definition: ATSUnicode.h:345
UInt16 ATSUHeapSpec
Definition: ATSUnicode.h:439
OSStatus ATSUGetFontInstance(ATSUFontID iFontID, ItemCount iFontInstanceIndex, ItemCount iMaximumVariations, ATSUFontVariationAxis oAxes[], ATSUFontVariationValue oValues[], ItemCount *oActualVariationCount)
OSStatus ATSUGlyphGetQuadraticPaths(ATSUStyle iATSUStyle, GlyphID iGlyphID, ATSQuadraticNewPathUPP iNewPathProc, ATSQuadraticLineUPP iLineProc, ATSQuadraticCurveUPP iCurveProc, ATSQuadraticClosePathUPP iClosePathProc, void *iCallbackDataPtr, OSStatus *oCallbackResult)
OSStatus InvokeATSQuadraticCurveUPP(const Float32Point *pt1, const Float32Point *controlPt, const Float32Point *pt2, void *callBackDataPtr, ATSQuadraticCurveUPP userUPP)
UInt16 ATSUStyleComparison
Definition: ATSUnicode.h:382
OSStatus ATSURightwardCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
OSStatus ATSUClearLayoutCache(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart)
OSStatus ATSUSetTextLayoutRefCon(ATSUTextLayout iTextLayout, UInt32 iRefCon)
OSStatus ATSULeftwardCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
void DisposeATSCubicMoveToUPP(ATSCubicMoveToUPP userUPP)
OSStatus ATSUSetCurrentMemorySetting(ATSUMemorySetting iMemorySetting)
OSStatus ATSUSetTransientFontMatching(ATSUTextLayout iTextLayout, Boolean iTransientFontMatching)
OSStatus ATSUGetIndFontTracking(ATSUFontID iFontID, ATSUVerticalCharacterType iCharacterOrientation, ItemCount iTrackIndex, Fixed *oFontTrackingValue, FontNameCode *oNameCode)
OSStatus ATSUGetSoftLineBreaks(ATSUTextLayout iTextLayout, UniCharArrayOffset iRangeStart, UniCharCount iRangeLength, ItemCount iMaximumBreaks, UniCharArrayOffset oBreaks[], ItemCount *oBreakCount)
OSStatus ATSUFindFontName(ATSUFontID iFontID, FontNameCode iFontNameCode, FontPlatformCode iFontNamePlatform, FontScriptCode iFontNameScript, FontLanguageCode iFontNameLanguage, ByteCount iMaximumNameLength, Ptr oName, ByteCount *oActualNameLength, ItemCount *oFontNameIndex)
OSStatus InvokeATSQuadraticClosePathUPP(void *callBackDataPtr, ATSQuadraticClosePathUPP userUPP)
OSStatus ATSUGetFontInstanceNameCode(ATSUFontID iFontID, ItemCount iInstanceIndex, FontNameCode *oNameCode)
OSStatus ATSUGetObjFontFallbacks(ATSUFontFallbacks iFontFallbacks, ItemCount iMaxFontFallbacksCount, ATSUFontID oFonts[], ATSUFontFallbackMethod *oFontFallbackMethod, ItemCount *oActualFallbacksCount)
OSStatus ATSUTextMoved(ATSUTextLayout iTextLayout, ConstUniCharArrayPtr iNewLocation)
OSStatus ATSUGetIndFontVariation(ATSUFontID iFontID, ItemCount iVariationIndex, ATSUFontVariationAxis *oATSUFontVariationAxis, ATSUFontVariationValue *oMinimumValue, ATSUFontVariationValue *oMaximumValue, ATSUFontVariationValue *oDefaultValue)
Boolean InvokeRedrawBackgroundUPP(ATSUTextLayout iLayout, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, ATSTrapezoid iUnhighlightArea[], ItemCount iTrapezoidCount, RedrawBackgroundUPP userUPP)
OSStatus ATSUHighlightText(ATSUTextLayout iTextLayout, ATSUTextMeasurement iTextBasePointX, ATSUTextMeasurement iTextBasePointY, UniCharArrayOffset iHighlightStart, UniCharCount iHighlightLength)
OSStatus ATSUGetIndFontName(ATSUFontID iFontID, ItemCount iFontNameIndex, ByteCount iMaximumNameLength, Ptr oName, ByteCount *oActualNameLength, FontNameCode *oFontNameCode, FontPlatformCode *oFontNamePlatform, FontScriptCode *oFontNameScript, FontLanguageCode *oFontNameLanguage)
OSStatus ATSUCompareStyles(ATSUStyle iFirstStyle, ATSUStyle iSecondStyle, ATSUStyleComparison *oComparison)
void DisposeRedrawBackgroundUPP(RedrawBackgroundUPP userUPP)
void DisposeATSQuadraticLineUPP(ATSQuadraticLineUPP userUPP)
OSStatus ATSUClearStyle(ATSUStyle iStyle)
typedef CALLBACK_API(Boolean, RedrawBackgroundProcPtr)(ATSUTextLayout iLayout
OSStatus ATSUSetFontFeatures(ATSUStyle iStyle, ItemCount iFeatureCount, const ATSUFontFeatureType iType[], const ATSUFontFeatureSelector iSelector[])
ATSQuadraticLineUPP NewATSQuadraticLineUPP(ATSQuadraticLineProcPtr userRoutine)
ATSUMemorySetting ATSUGetCurrentMemorySetting(void)
OSStatus ATSUSetRunStyle(ATSUTextLayout iTextLayout, ATSUStyle iStyle, UniCharArrayOffset iRunStart, UniCharCount iRunLength)
OSStatus ATSUCreateMemorySetting(ATSUHeapSpec iHeapSpec, ATSUMemoryCallbacks *iMemoryCallbacks, ATSUMemorySetting *oMemorySetting)
OSStatus ATSUSetTextHandleLocation(ATSUTextLayout iTextLayout, UniCharArrayHandle iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength)
OSStatus ATSUSetFontFallbacks(ItemCount iFontFallbacksCount, const ATSUFontID iFontIDs[], ATSUFontFallbackMethod iFontFallbackMethod)
OSStatus ATSUSetObjFontFallbacks(ATSUFontFallbacks iFontFallbacks, ItemCount iFontFallbacksCount, const ATSUFontID iFonts[], ATSUFontFallbackMethod iFontFallbackMethod)
OSStatus ATSUCreateStyle(ATSUStyle *oStyle)
void DisposeATSQuadraticCurveUPP(ATSQuadraticCurveUPP userUPP)
ATSCubicMoveToUPP NewATSCubicMoveToUPP(ATSCubicMoveToProcPtr userRoutine)
OSStatus ATSUTextInserted(ATSUTextLayout iTextLayout, UniCharArrayOffset iInsertionLocation, UniCharCount iInsertionLength)
OSStatus ATSUClearFontVariations(ATSUStyle iStyle, ItemCount iAxisCount, const ATSUFontVariationAxis iAxis[])
OSStatus InvokeATSCubicLineToUPP(const Float32Point *pt, void *callBackDataPtr, ATSCubicLineToUPP userUPP)
OSStatus ATSUDrawGlyphInfo(ATSUGlyphInfoArray *iGlyphInfoArray, Float32Point iLocation)
OSStatus InvokeATSCubicClosePathUPP(void *callBackDataPtr, ATSCubicClosePathUPP userUPP)
OSStatus ATSUCountFontFeatureTypes(ATSUFontID iFontID, ItemCount *oTypeCount)
OSStatus ATSUGetContinuousAttributes(ATSUTextLayout iTextLayout, UniCharArrayOffset iOffset, UniCharCount iLength, ATSUStyle oStyle)
OSStatus ATSUSetLineControls(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, ItemCount iAttributeCount, const ATSUAttributeTag iTag[], const ByteCount iValueSize[], const ATSUAttributeValuePtr iValue[])
UInt16 ATSUFontFallbackMethod
Definition: ATSUnicode.h:398
ATSCubicLineToUPP NewATSCubicLineToUPP(ATSCubicLineToProcPtr userRoutine)
OSStatus ATSUDrawText(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineOffset, UniCharCount iLineLength, ATSUTextMeasurement iLocationX, ATSUTextMeasurement iLocationY)
OSStatus ATSUCountFontVariations(ATSUFontID iFontID, ItemCount *oVariationCount)
OSStatus ATSUSetLayoutControls(ATSUTextLayout iTextLayout, ItemCount iAttributeCount, const ATSUAttributeTag iTag[], const ByteCount iValueSize[], const ATSUAttributeValuePtr iValue[])
OSStatus ATSUUnhighlightText(ATSUTextLayout iTextLayout, ATSUTextMeasurement iTextBasePointX, ATSUTextMeasurement iTextBasePointY, UniCharArrayOffset iHighlightStart, UniCharCount iHighlightLength)
OSStatus ATSUGetFontFallbacks(ItemCount iMaxFontFallbacksCount, ATSUFontID oFontIDs[], ATSUFontFallbackMethod *oFontFallbackMethod, ItemCount *oActualFallbacksCount)
struct OpaqueATSUMemorySetting * ATSUMemorySetting
Definition: ATSUnicode.h:454
OSStatus ATSUCreateFontFallbacks(ATSUFontFallbacks *oFontFallback)
OSStatus ATSUClearAttributes(ATSUStyle iStyle, ItemCount iTagCount, const ATSUAttributeTag iTag[])
OSStatus ATSUDisposeMemorySetting(ATSUMemorySetting iMemorySetting)
OSStatus ATSUStyleIsEmpty(ATSUStyle iStyle, Boolean *oIsClear)
OSStatus ATSUGetStyleRefCon(ATSUStyle iStyle, UInt32 *oRefCon)
void DisposeATSQuadraticClosePathUPP(ATSQuadraticClosePathUPP userUPP)
OSStatus ATSUSetTextPointerLocation(ATSUTextLayout iTextLayout, ConstUniCharArrayPtr iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength)
OSStatus ATSUGetTransientFontMatching(ATSUTextLayout iTextLayout, Boolean *oTransientFontMatching)
ATSCubicCurveToUPP NewATSCubicCurveToUPP(ATSCubicCurveToProcPtr userRoutine)
OSStatus ATSUNextCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
Public interface to the Font Manager.
OSErr codes.
Memory Manager Interfaces.
Basic Macintosh data types.
long Fixed
Definition: MacTypes.h:153
unsigned char Boolean
Definition: MacTypes.h:318
Interface to Quickdraw Graphics.
SFNT file layout structures and constants.
Font file structures.
TextEncoding-related types and constants, and prototypes for related functions.
UInt32 UniCharArrayOffset
Definition: TextCommon.h:545
UniCharArrayPtr * UniCharArrayHandle
Definition: TextCommon.h:540
Definition: ATSTypes.h:407
Definition: ATSTypes.h:415
Definition: ATSLayoutTypes.h:134
Definition: ATSUnicode.h:301
Definition: ATSUnicode.h:497
Definition: ATSUnicode.h:318
Definition: ATSTypes.h:400
Definition: ATSUnicode.h:472
Definition: ATSUnicode.h:459
Definition: ATSUnicode.h:601
Definition: MacTypes.h:220
Definition: Quickdraw.h:306
Definition: MacTypes.h:527
Definition: MacMemory.h:101
Definition: ATSUnicode.h:595
Definition: ATSUnicode.h:422