summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/ATSUnicode.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/ATSUnicode.h')
-rw-r--r--common/quicktime_win32/ATSUnicode.h3059
1 files changed, 3059 insertions, 0 deletions
diff --git a/common/quicktime_win32/ATSUnicode.h b/common/quicktime_win32/ATSUnicode.h
new file mode 100644
index 0000000..35983f9
--- /dev/null
+++ b/common/quicktime_win32/ATSUnicode.h
@@ -0,0 +1,3059 @@
+/*
+ File: ATSUnicode.h
+
+ Contains: Public interfaces for Apple Type Services for Unicode Imaging
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1997-2001 by Apple Computer, Inc., all rights reserved.
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __MACERRORS__
+#include <MacErrors.h>
+#endif
+
+#ifndef __MACMEMORY__
+#include <MacMemory.h>
+#endif
+
+#ifndef __TEXTCOMMON__
+#include <TextCommon.h>
+#endif
+
+#ifndef __ATSLAYOUTTYPES__
+#include <ATSLayoutTypes.h>
+#endif
+
+#ifndef __FONTS__
+#include <Fonts.h>
+#endif
+
+#ifndef __QUICKDRAW__
+#include <Quickdraw.h>
+#endif
+
+#ifndef __SFNTTYPES__
+#include <SFNTTypes.h>
+#endif
+
+#ifndef __SFNTLAYOUTTYPES__
+#include <SFNTLayoutTypes.h>
+#endif
+
+#ifndef __ATSTYPES__
+#include <ATSTypes.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=mac68k
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+/********************************/
+/* Types and related constants */
+/********************************/
+/*
+ UniCharArrayHandle and UniCharArrayOffset are defined in the
+ TextCommon interface file.
+*/
+
+/*
+ ATSUTextMeasurement is specific to ATSUI in that measurement
+ quantities are in fractional Fixed format instead of shorts
+ used in QuickDraw Text. This provides exact outline metrics and
+ line specifications such as line width, ascent, descent, and so on.
+*/
+typedef Fixed ATSUTextMeasurement;
+/*
+ ATSUFontID indicates a particular font family and face.
+ ATSUFontID's are not guaranteed to remain constant across
+ reboots. Clients should use the font's unique name to
+ get a font token to store in documents which is
+ guaranteed to remain constant across reboots.
+*/
+typedef FMFont ATSUFontID;
+/*
+ ATSUFontFeatureType and ATSUFontFeatureSelector are used
+ to identify font features.
+*/
+typedef UInt16 ATSUFontFeatureType;
+typedef UInt16 ATSUFontFeatureSelector;
+/*
+ ATSUFontVariationAxis and ATSUFontVariationValue are used
+ in connection with font variations.
+*/
+typedef FourCharCode ATSUFontVariationAxis;
+typedef Fixed ATSUFontVariationValue;
+/*
+ ATSUTextLayout is used to store the attribute information
+ associated with a contiguous block of UniChar's (UInt16's)
+ in memory. It's typed to be an opaque structure.
+*/
+typedef struct OpaqueATSUTextLayout* ATSUTextLayout;
+/*
+ ATSUStyle is used to store a set of individual attributes,
+ font features, and font variations. It's typed to be
+ an opaque structure.
+*/
+typedef struct OpaqueATSUStyle* ATSUStyle;
+/*
+ ATSUFontFallbacks is used to store the desired font fallback
+ list and associated fallback cache information. It's typed
+ to be an opaque structure.
+*/
+typedef struct OpaqueATSUFontFallbacks* ATSUFontFallbacks;
+/*
+ ATSUAttributeTag is used to indicate the particular type
+ of attribute under consideration: font, size, color,
+ and so on.
+ Each style run may have at most one attribute with a
+ given ATSUAttributeTag (i.e., a style run can't have
+ more than one font or size) but may have none.
+ Note: Apple reserves values 0 to 65,535 (0 to 0x0000FFFF).
+ ATSUI clients may create their own tags with any other value.
+*/
+typedef UInt32 ATSUAttributeTag;
+enum {
+ /* Layout and Line Control Attribute Tags*/
+ kATSULineWidthTag = 1L, /* Type: ATSUTextMeasurement >= 0*/
+ /* Default value: 0*/
+ kATSULineRotationTag = 2L, /* Type: Fixed (fixed value in degrees in right-handed coordinate system)*/
+ /* Default value: 0*/
+ kATSULineDirectionTag = 3L, /* Type: Boolean; values 0 or 1 (see below for value identities)*/
+ /* Default value: GetSysDirection() ? kATSURightToLeftBaseDirection : kATSULeftToRightBaseDirection*/
+ kATSULineJustificationFactorTag = 4L, /* Type: Fract between 0 and 1*/
+ /* Default value: kATSUNoJustification*/
+ kATSULineFlushFactorTag = 5L, /* Type: Fract between 0 and 1 */
+ /* Default value: kATSUStartAlignment*/
+ kATSULineBaselineValuesTag = 6L, /* Type: BslnBaselineRecord*/
+ /* Default value: All zeros. Calculated from other style attributes (e.g., font and point size)*/
+ kATSULineLayoutOptionsTag = 7L, /* Type: ATSLineLayoutOptions (see ATSLayoutTypes.h)*/
+ /* Default value: kATSLineNoLayoutOptions - other options listed in ATSLayoutTypes.h*/
+ kATSULineAscentTag = 8L, /* Type: ATSUTextMeasurement >= 0*/
+ /* Default value: Maximum typographical ascent of all fonts used on line or textLayout*/
+ kATSULineDescentTag = 9L, /* Type: ATSUTextMeasurement >= 0*/
+ /* Default value: Maximum typographical descent+leading of all fonts used on line or textLayout*/
+ kATSULineLangRegionTag = 10L, /* Type: RegionCode - region values listed in script.h interface file*/
+ /* Default value: kTextRegionDontCare*/
+ kATSULineTextLocatorTag = 11L, /* Type: TextBreakLocatorRef*/
+ /* Default value: NULL - set Region derived locator or the default Text Utilities locator*/
+ kATSULineTruncationTag = 12L, /* Type: ATSULineTruncation*/
+ /* Default value: kATSUTruncateNone */
+ kATSULineFontFallbacksTag = 13L, /* Type: ATSUFontFallbacks*/
+ /* Default value: globally set font fallbacks using the ATSUSetFontFallbacks */
+ kATSULayoutOperationOverrideTag = 15L, /* Type: ATSULayoutOperationOverrideSpecifier (MacOS 10.2 or later) */
+ /* Default value: NULL*/
+ kATSUMaxLineTag = 16L, /* This is just for convenience - the upper limit of the ATSUTextLayout attribute tags*/
+ /* Obsolete layout tags */
+ kATSULineLanguageTag = 10L, /* Use kATSULineLangRegionTag */
+ /* Special layout tags */
+ kATSUCGContextTag = 32767L, /* Type: CGContextRef (MacOS X systems only)*/
+ /* Default value: NULL*/
+ /* Run Style Attribute Tags*/
+ /* QuickDraw compatibility tags */
+ kATSUQDBoldfaceTag = 256L, /* Type: Boolean */
+ /* Default value: false*/
+ kATSUQDItalicTag = 257L, /* Type: Boolean */
+ /* Default value: false*/
+ kATSUQDUnderlineTag = 258L, /* Type: Boolean */
+ /* Default value: false*/
+ kATSUQDCondensedTag = 259L, /* Type: Boolean */
+ /* Default value: false*/
+ kATSUQDExtendedTag = 260L, /* Type: Boolean */
+ /* Default value: false*/
+ /* Common run tags */
+ kATSUFontTag = 261L, /* Type: ATSUFontID */
+ /* Default value: GetScriptVariable( smSystemScript, smScriptAppFond )*/
+ kATSUSizeTag = 262L, /* Type: Fixed */
+ /* Default value: GetScriptVariable( smSystemScript, smScriptAppFondSize ) */
+ kATSUColorTag = 263L, /* Type: RGBColor*/
+ /* Default value: (0, 0, 0)*/
+ /* Less common run tags */
+ kATSULangRegionTag = 264L, /* Type: RegionCode - region values listed in script.h interface file*/
+ /* Default value: GetScriptManagerVariable( smRegionCode )*/
+ kATSUVerticalCharacterTag = 265L, /* Type: ATSUVerticalCharacterType */
+ /* Default value: kATSUStronglyHorizontal*/
+ kATSUImposeWidthTag = 266L, /* Type: ATSUTextMeasurement >= 0*/
+ /* Default value: kATSUseGlyphAdvance - all glyphs use their own font defined advance widths*/
+ kATSUBeforeWithStreamShiftTag = 267L, /* Type: Fixed*/
+ /* Default value: 0*/
+ kATSUAfterWithStreamShiftTag = 268L, /* Type: Fixed*/
+ /* Default value: 0*/
+ kATSUCrossStreamShiftTag = 269L, /* Type: Fixed*/
+ /* Default value: 0*/
+ kATSUTrackingTag = 270L, /* Type: Fixed*/
+ /* Default value: kATSNoTracking*/
+ kATSUHangingInhibitFactorTag = 271L, /* Type: Fract between 0 and 1*/
+ /* Default value: 0*/
+ kATSUKerningInhibitFactorTag = 272L, /* Type: Fract between 0 and 1*/
+ /* Default value: 0*/
+ kATSUDecompositionFactorTag = 273L, /* Type: Fixed (-1.0 -> 1.0)*/
+ /* Default value: 0*/
+ kATSUBaselineClassTag = 274L, /* Type: BslnBaselineClass (see SFNTLayoutTypes.h)*/
+ /* Default value: kBSLNRomanBaseline - set to kBSLNNoBaselineOverride to use intrinsic baselines*/
+ kATSUPriorityJustOverrideTag = 275L, /* Type: ATSJustPriorityWidthDeltaOverrides (see ATSLayoutTypes.h)*/
+ /* Default value: all zeros*/
+ kATSUNoLigatureSplitTag = 276L, /* Type: Boolean*/
+ /* Default value: false - ligatures and compound characters have divisable components.*/
+ kATSUNoCaretAngleTag = 277L, /* Type: Boolean*/
+ /* Default value: false - use the character's angularity to determine its boundaries*/
+ kATSUSuppressCrossKerningTag = 278L, /* Type: Boolean*/
+ /* Default value: false - do not suppress automatic cross kerning (defined by font)*/
+ kATSUNoOpticalAlignmentTag = 279L, /* Type: Boolean*/
+ /* Default value: false - do not suppress character's automatic optical positional alignment*/
+ kATSUForceHangingTag = 280L, /* Type: Boolean*/
+ /* Default value: false - do not force the character's to hang beyond the line boundaries*/
+ kATSUNoSpecialJustificationTag = 281L, /* Type: Boolean*/
+ /* Default value: false - perform post-compensation justification if needed*/
+ kATSUStyleTextLocatorTag = 282L, /* Type: TextBreakLocatorRef*/
+ /* Default value: NULL - region derived locator or the default Text Utilities locator*/
+ kATSUStyleRenderingOptionsTag = 283L, /* Type: ATSStyleRenderingOptions (see ATSLayoutTypes.h)*/
+ /* Default value: kATSStyleNoOptions - other options listed in ATSLayoutTypes.h*/
+ kATSUAscentTag = 284L, /* Type: ATSUTextMeasurement >= 0 (MacOS 10.2 or later)*/
+ /* Default value: Ascent value of style's font with current pointSize*/
+ kATSUDescentTag = 285L, /* Type: ATSUTextMeasurement >= 0 (MacOS 10.2 or later)*/
+ /* Default value: Descent value of style's font with current pointSize*/
+ kATSULeadingTag = 286L, /* Type: ATSUTextMeasurement >= 0 (MacOS 10.2 or later)*/
+ /* Default value: Leading value of style's font with current pointSize (usually value 0)*/
+ kATSUGlyphSelectorTag = 287L, /* Type: ATSUGlyphSelector (MacOS 10.2 or later)*/
+ /* Default value: 0 - use the glyphs derived by ATSUI layout*/
+ kATSURGBAlphaColorTag = 288L, /* Type: ATSURGBAlphaColor (MacOS 10.2 or later)*/
+ /* Default value: (0, 0, 0, 1)*/
+ kATSUFontMatrixTag = 289L, /* Type: CGAffineTransform (MacOS 10.2 or later)*/
+ /* Default value: [1, 0, 0, 1, 0, 0] ==> CGAffineTransformIdentity*/
+ kATSUMaxStyleTag = 290L, /* This is just for convenience - the upper limit of the ATSUStyle attribute tags */
+ /* obsolete style tags */
+ kATSULanguageTag = 264L, /* use kATSULangRegionTag */
+ /* max */
+ kATSUMaxATSUITagValue = 65535L /* This is the maximum Apple ATSUI reserved tag value. Client defined tags must be larger.*/
+};
+
+/*
+ ATSUAttributeValuePtr is used to provide generic access to
+ storage of attribute values, which vary in size.
+ ConstATSUAttributeValuePtr is a pointer to a const attribute value.
+*/
+typedef void * ATSUAttributeValuePtr;
+typedef const void * ConstATSUAttributeValuePtr;
+/*
+ ATSUAttributeInfo is used to provide a tag/size pairing.
+ This makes it possible to provide the client information
+ about all the attributes for a given range of text. This
+ structure is only used to return to the client information
+ about a complete set of attributes. An array of
+ ATSUAttributeInfos is passed as a parameter so that the
+ client can find out what attributes are set and what their
+ individual sizes are; with that information, they can then
+ query about the values of the attributes they're interested
+ in. Because arrays of ATSUAttributeInfos are used as parameters
+ to functions, they have to be of a fixed size, hence the
+ value is not included in the structure.
+*/
+struct ATSUAttributeInfo {
+ ATSUAttributeTag fTag;
+ ByteCount fValueSize;
+};
+typedef struct ATSUAttributeInfo ATSUAttributeInfo;
+/*
+ ATSUCaret contains the complete information needed to render a
+ caret. fX and fY is the position of one of the caret's ends
+ relative to the origin position of the line the caret belongs.
+ fDeltaX and fDeltaY is the position of the caret's other end.
+ Hence, to draw a caret, simply call MoveTo(fX, fY) followed by
+ LineTo(fDeltaX, fDeltaY) or equivalent. The ATSUCaret will
+ contain the positions needed to draw carets on angled lines
+ and reflect angled carets and leading/trailing split caret
+ appearances.
+*/
+struct ATSUCaret {
+ Fixed fX;
+ Fixed fY;
+ Fixed fDeltaX;
+ Fixed fDeltaY;
+};
+typedef struct ATSUCaret ATSUCaret;
+/*
+ ATSUCursorMovementType is used to indicate how much to move
+ the cursor when using the ATSUI cusor movement routines.
+ Note that kATSUByCharacterCluster is only available in Mac OS X
+ and in CarbonLib versions 1.3 and later.
+*/
+typedef UInt16 ATSUCursorMovementType;
+enum {
+ kATSUByCharacter = 0,
+ kATSUByTypographicCluster = 1, /* clusters based on characters or ligatures*/
+ kATSUByWord = 2,
+ kATSUByCharacterCluster = 3, /* clusters based on characters only*/
+ kATSUByCluster = 1 /* obsolete name for kATSUByTypographicCluster*/
+};
+
+/*
+ ATSULineTruncation is for identifying where truncation will occur when
+ using a ATSUTextLayout with the ATSULineTruncation layout attribute.
+*/
+typedef UInt32 ATSULineTruncation;
+enum {
+ kATSUTruncateNone = 0, /* truncation specification - add to any desired truncFeat bit options listed below*/
+ kATSUTruncateStart = 1, /* for instance, kATSUTruncateEnd with kATSUTruncFeatNoSquishing is value 0x0000000A*/
+ kATSUTruncateEnd = 2,
+ kATSUTruncateMiddle = 3,
+ kATSUTruncateSpecificationMask = 0x00000007, /* these bits are reserved for the truncation specification (0 - 7)*/
+ /* the following bit-field options can be added to the chosen truncation specification*/
+ kATSUTruncFeatNoSquishing = 0x00000008 /* if specified, do not perform any negative justification in lieu of truncation*/
+};
+
+/*
+ ATSUVerticalCharacterType currently can take two values
+ and is used to indicate whether text is to be laid out
+ as vertical glyphs or horizontal glyphs.
+*/
+typedef UInt16 ATSUVerticalCharacterType;
+enum {
+ kATSUStronglyHorizontal = 0,
+ kATSUStronglyVertical = 1
+};
+
+/*
+ ATSUStyleComparison is an enumeration with four values,
+ and is used by ATSUCompareStyles() to indicate if the
+ first style parameter contains as a proper subset, is
+ equal to, or is contained by the second style parameter.
+*/
+typedef UInt16 ATSUStyleComparison;
+enum {
+ kATSUStyleUnequal = 0,
+ kATSUStyleContains = 1,
+ kATSUStyleEquals = 2,
+ kATSUStyleContainedBy = 3
+};
+
+/*
+ ATSUFontFallbackMethod type defines the method by which ATSUI will try to
+ find an appropriate font for a character if the assigned font does not
+ contain the needed glyph(s) to represent it. This affects ATSUMatchFontsToText
+ and font selection during layout and drawing when ATSUSetTransientFontMatching
+ is set ON.
+*/
+typedef UInt16 ATSUFontFallbackMethod;
+enum {
+ kATSUDefaultFontFallbacks = 0,
+ kATSULastResortOnlyFallback = 1,
+ kATSUSequentialFallbacksPreferred = 2,
+ kATSUSequentialFallbacksExclusive = 3
+};
+
+/*
+ ATSUTabType type defines the characteristic of ATSUI tabs.
+ A Left tab type specifies that the left side of affected text is to be
+ maintained flush against the tab stop. A Right tab type specifies that
+ the right side of affected text is to be maintained flush against the
+ tab stop. A Center tab type specifies that the affected text centered
+ about the tab stop.
+*/
+
+typedef UInt16 ATSUTabType;
+enum {
+ kATSULeftTab = 0,
+ kATSUCenterTab = 1,
+ kATSURightTab = 2,
+ kATSUNumberTabTypes = 3
+};
+
+/*
+ ATSUTab specifies the position and type of tab stop
+ to be applied to a ATSUTextLayout set through the ATSUI routine
+ ATSUSetTabArray and returned through ATSUGetTabArray.
+*/
+struct ATSUTab {
+ ATSUTextMeasurement tabPosition;
+ ATSUTabType tabType;
+};
+typedef struct ATSUTab ATSUTab;
+/*
+ GlyphCollection types represent the specific character collection. If
+ the value is zero, kGlyphCollectionGID, then this indicates that the
+ glyph value represents the actual glyphID of a specific font.
+*/
+
+typedef UInt16 GlyphCollection;
+enum {
+ kGlyphCollectionGID = 0,
+ kGlyphCollectionAdobeCNS1 = 1,
+ kGlyphCollectionAdobeGB1 = 2,
+ kGlyphCollectionAdobeJapan1 = 3,
+ kGlyphCollectionAdobeJapan2 = 4,
+ kGlyphCollectionAdobeKorea1 = 5,
+ kGlyphCollectionUnspecified = 0xFF
+};
+
+/*
+ ATSUGlyphSelector can direct ATSUI to use a specific glyph instead of the one that
+ ATSUI normally derives. The glyph can be specified either as a glyphID (specific
+ to the font used) or CID from a specfic collection defined by the collection entry.
+*/
+struct ATSUGlyphSelector {
+ GlyphCollection collection; /* kGlyphCollectionXXX enum*/
+ GlyphID glyphID; /* GID (when collection==0) or CID*/
+};
+typedef struct ATSUGlyphSelector ATSUGlyphSelector;
+#if CALL_NOT_IN_CARBON
+/*
+ ATSUMemoryCallbacks is a union struct that allows the ATSUI
+ client to specify a specific heap for ATSUI use or allocation
+ callbacks of which ATSUI is to use each time ATSUI performs a
+ memory operation (alloc, grow, free).
+*/
+typedef CALLBACK_API_C( void *, ATSUCustomAllocFunc )(void *refCon, ByteCount howMuch);
+typedef CALLBACK_API_C( void , ATSUCustomFreeFunc )(void *refCon, void *doomedBlock);
+typedef CALLBACK_API_C( void *, ATSUCustomGrowFunc )(void *refCon, void *oldBlock, ByteCount oldSize, ByteCount newSize);
+union ATSUMemoryCallbacks {
+ struct {
+ ATSUCustomAllocFunc Alloc;
+ ATSUCustomFreeFunc Free;
+ ATSUCustomGrowFunc Grow;
+ void * memoryRefCon;
+ } callbacks;
+
+ THz heapToUse;
+};
+typedef union ATSUMemoryCallbacks ATSUMemoryCallbacks;
+/*
+ ATSUHeapSpec provides the ATSUI client a means of specifying the heap
+ from which ATSUI should allocate its dynamic memory or specifying
+ that ATSUI should use the memory callback provided by the client.
+*/
+typedef UInt16 ATSUHeapSpec;
+enum {
+ kATSUUseCurrentHeap = 0,
+ kATSUUseAppHeap = 1,
+ kATSUUseSpecificHeap = 2,
+ kATSUUseCallbacks = 3
+};
+
+
+/*
+ ATSUMemorySetting is used to store the results from a ATSUSetMemoryAlloc
+ or a ATSUGetCurrentMemorySetting call. It can also be used to change the
+ current ATSUMemorySetting by passing it into the ATSUSetCurrentMemorySetting
+ call.
+*/
+typedef struct OpaqueATSUMemorySetting* ATSUMemorySetting;
+#endif /* CALL_NOT_IN_CARBON */
+
+/* Types for ATSUI Low Level API */
+struct ATSUGlyphInfo {
+ GlyphID glyphID;
+ UInt16 reserved;
+ UInt32 layoutFlags;
+ UniCharArrayOffset charIndex;
+ ATSUStyle style;
+ Float32 deltaY;
+ Float32 idealX;
+ SInt16 screenX;
+ SInt16 caretX;
+};
+typedef struct ATSUGlyphInfo ATSUGlyphInfo;
+struct ATSUGlyphInfoArray {
+ ATSUTextLayout layout;
+ ItemCount numGlyphs;
+ ATSUGlyphInfo glyphs[1];
+};
+typedef struct ATSUGlyphInfoArray ATSUGlyphInfoArray;
+/********************/
+/* Other constants */
+/********************/
+/* Line direction types (used for kATSULineDirectionTag values) */
+enum {
+ kATSULeftToRightBaseDirection = 0, /* Impose left-to-right or top-to-bottom dominant direction */
+ kATSURightToLeftBaseDirection = 1 /* Impose right-to-left or bottom-to-top dominant direction */
+};
+
+/* LineFlushFactor convenience defined values */
+#define kATSUStartAlignment ((Fract) 0x00000000L)
+#define kATSUEndAlignment ((Fract) 0x40000000L)
+#define kATSUCenterAlignment ((Fract) 0x20000000L)
+/* LineJustificationFactor convenience defined values */
+#define kATSUNoJustification ((Fract) 0x00000000L)
+#define kATSUFullJustification ((Fract) 0x40000000L)
+/* Other constants */
+enum {
+ kATSUInvalidFontID = 0
+};
+
+
+enum {
+ kATSUUseLineControlWidth = 0x7FFFFFFF
+};
+
+
+enum {
+ kATSUNoSelector = 0x0000FFFF
+};
+
+
+enum {
+ kATSUUseGrafPortPenLoc = (unsigned long)0xFFFFFFFF,
+ kATSUClearAll = (unsigned long)0xFFFFFFFF
+};
+
+
+enum {
+ kATSUFromTextBeginning = (unsigned long)0xFFFFFFFF,
+ kATSUToTextEnd = (unsigned long)0xFFFFFFFF
+};
+
+
+
+/****************/
+/* Functions */
+/****************/
+
+/* ---------------------------------------------------------------------------- */
+/* Clipboard support, flattened style version 0 */
+/* ---------------------------------------------------------------------------- */
+/*
+ Warning: ATSUCopyToHandle & ATSUPasteFromHandle have been deprecated
+ Use their replacements, ATSUFlattenStyleRunsToStream and , instead if available or
+ perform your own flattening
+*/
+/*
+ * ATSUCopyToHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCopyToHandle(
+ ATSUStyle iStyle,
+ Handle oStyleHandle);
+
+
+/*
+ * ATSUPasteFromHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUPasteFromHandle(
+ ATSUStyle iStyle,
+ Handle iStyleHandle);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Memory allocation specification functions (not in Carbon) */
+/* ---------------------------------------------------------------------------- */
+#if CALL_NOT_IN_CARBON
+/*
+ * ATSUCreateMemorySetting()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateMemorySetting(
+ ATSUHeapSpec iHeapSpec,
+ ATSUMemoryCallbacks * iMemoryCallbacks,
+ ATSUMemorySetting * oMemorySetting);
+
+
+/*
+ * ATSUSetCurrentMemorySetting()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetCurrentMemorySetting(ATSUMemorySetting iMemorySetting);
+
+
+/*
+ * ATSUGetCurrentMemorySetting()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( ATSUMemorySetting )
+ATSUGetCurrentMemorySetting(void);
+
+
+/*
+ * ATSUDisposeMemorySetting()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( OSStatus )
+ATSUDisposeMemorySetting(ATSUMemorySetting iMemorySetting);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font fallback object functions */
+/* ---------------------------------------------------------------------------- */
+#endif /* CALL_NOT_IN_CARBON */
+
+/*
+ * ATSUCreateFontFallbacks()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
+ * Mac OS X: in version 10.1 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateFontFallbacks(ATSUFontFallbacks * oFontFallback);
+
+
+/*
+ * ATSUDisposeFontFallbacks()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
+ * Mac OS X: in version 10.1 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUDisposeFontFallbacks(ATSUFontFallbacks iFontFallbacks);
+
+
+/*
+ * ATSUSetObjFontFallbacks()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
+ * Mac OS X: in version 10.1 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetObjFontFallbacks(
+ ATSUFontFallbacks iFontFallbacks,
+ ItemCount iFontFallbacksCount,
+ const ATSUFontID iFonts[],
+ ATSUFontFallbackMethod iFontFallbackMethod);
+
+
+/*
+ * ATSUGetObjFontFallbacks()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later
+ * Mac OS X: in version 10.1 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetObjFontFallbacks(
+ ATSUFontFallbacks iFontFallbacks,
+ ItemCount iMaxFontFallbacksCount,
+ ATSUFontID oFonts[],
+ ATSUFontFallbackMethod * oFontFallbackMethod,
+ ItemCount * oActualFallbacksCount);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Basic style functions */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCreateStyle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateStyle(ATSUStyle * oStyle);
+
+
+/*
+ * ATSUCreateAndCopyStyle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateAndCopyStyle(
+ ATSUStyle iStyle,
+ ATSUStyle * oStyle);
+
+
+/*
+ * ATSUDisposeStyle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUDisposeStyle(ATSUStyle iStyle);
+
+
+/*
+ * ATSUSetStyleRefCon()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetStyleRefCon(
+ ATSUStyle iStyle,
+ UInt32 iRefCon);
+
+
+/*
+ * ATSUGetStyleRefCon()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetStyleRefCon(
+ ATSUStyle iStyle,
+ UInt32 * oRefCon);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Style comparison */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCompareStyles()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCompareStyles(
+ ATSUStyle iFirstStyle,
+ ATSUStyle iSecondStyle,
+ ATSUStyleComparison * oComparison);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Attribute manipulations */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCopyAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCopyAttributes(
+ ATSUStyle iSourceStyle,
+ ATSUStyle iDestinationStyle);
+
+
+/*
+ * ATSUOverwriteAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUOverwriteAttributes(
+ ATSUStyle iSourceStyle,
+ ATSUStyle iDestinationStyle);
+
+
+/*
+ * ATSUUnderwriteAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUUnderwriteAttributes(
+ ATSUStyle iSourceStyle,
+ ATSUStyle iDestinationStyle);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Empty styles */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUClearStyle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearStyle(ATSUStyle iStyle);
+
+
+/*
+ * ATSUStyleIsEmpty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUStyleIsEmpty(
+ ATSUStyle iStyle,
+ Boolean * oIsClear);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Get and set attributes */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCalculateBaselineDeltas()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCalculateBaselineDeltas(
+ ATSUStyle iStyle,
+ BslnBaselineClass iBaselineClass,
+ BslnBaselineRecord oBaselineDeltas);
+
+
+/*
+ * ATSUSetAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetAttributes(
+ ATSUStyle iStyle,
+ ItemCount iAttributeCount,
+ const ATSUAttributeTag iTag[],
+ const ByteCount iValueSize[],
+ const ATSUAttributeValuePtr iValue[]);
+
+
+/*
+ * ATSUGetAttribute()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetAttribute(
+ ATSUStyle iStyle,
+ ATSUAttributeTag iTag,
+ ByteCount iExpectedValueSize,
+ ATSUAttributeValuePtr oValue,
+ ByteCount * oActualValueSize);
+
+
+/*
+ * ATSUGetAllAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetAllAttributes(
+ ATSUStyle iStyle,
+ ATSUAttributeInfo oAttributeInfoArray[],
+ ItemCount iTagValuePairArraySize,
+ ItemCount * oTagValuePairCount);
+
+
+/*
+ * ATSUClearAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearAttributes(
+ ATSUStyle iStyle,
+ ItemCount iTagCount,
+ const ATSUAttributeTag iTag[]);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font features */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUSetFontFeatures()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetFontFeatures(
+ ATSUStyle iStyle,
+ ItemCount iFeatureCount,
+ const ATSUFontFeatureType iType[],
+ const ATSUFontFeatureSelector iSelector[]);
+
+
+/*
+ * ATSUGetFontFeature()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontFeature(
+ ATSUStyle iStyle,
+ ItemCount iFeatureIndex,
+ ATSUFontFeatureType * oFeatureType,
+ ATSUFontFeatureSelector * oFeatureSelector);
+
+
+/*
+ * ATSUGetAllFontFeatures()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetAllFontFeatures(
+ ATSUStyle iStyle,
+ ItemCount iMaximumFeatureCount,
+ ATSUFontFeatureType oFeatureType[],
+ ATSUFontFeatureSelector oFeatureSelector[],
+ ItemCount * oActualFeatureCount);
+
+
+/*
+ * ATSUClearFontFeatures()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearFontFeatures(
+ ATSUStyle iStyle,
+ ItemCount iFeatureCount,
+ const ATSUFontFeatureType iType[],
+ const ATSUFontFeatureSelector iSelector[]);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font variations */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUSetVariations()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetVariations(
+ ATSUStyle iStyle,
+ ItemCount iVariationCount,
+ const ATSUFontVariationAxis iAxes[],
+ const ATSUFontVariationValue iValue[]);
+
+
+/*
+ * ATSUGetFontVariationValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontVariationValue(
+ ATSUStyle iStyle,
+ ATSUFontVariationAxis iFontVariationAxis,
+ ATSUFontVariationValue * oFontVariationValue);
+
+
+/*
+ * ATSUGetAllFontVariations()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetAllFontVariations(
+ ATSUStyle iStyle,
+ ItemCount iVariationCount,
+ ATSUFontVariationAxis oVariationAxes[],
+ ATSUFontVariationValue oFontVariationValues[],
+ ItemCount * oActualVariationCount);
+
+
+/*
+ * ATSUClearFontVariations()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearFontVariations(
+ ATSUStyle iStyle,
+ ItemCount iAxisCount,
+ const ATSUFontVariationAxis iAxis[]);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Basic text-layout functions */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCreateTextLayout()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateTextLayout(ATSUTextLayout * oTextLayout);
+
+
+/*
+ * ATSUCreateAndCopyTextLayout()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateAndCopyTextLayout(
+ ATSUTextLayout iTextLayout,
+ ATSUTextLayout * oTextLayout);
+
+
+/*
+ * ATSUCreateTextLayoutWithTextPtr()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateTextLayoutWithTextPtr(
+ ConstUniCharArrayPtr iText,
+ UniCharArrayOffset iTextOffset,
+ UniCharCount iTextLength,
+ UniCharCount iTextTotalLength,
+ ItemCount iNumberOfRuns,
+ const UniCharCount iRunLengths[],
+ ATSUStyle iStyles[],
+ ATSUTextLayout * oTextLayout);
+
+
+/*
+ * ATSUCreateTextLayoutWithTextHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCreateTextLayoutWithTextHandle(
+ UniCharArrayHandle iText,
+ UniCharArrayOffset iTextOffset,
+ UniCharCount iTextLength,
+ UniCharCount iTextTotalLength,
+ ItemCount iNumberOfRuns,
+ const UniCharCount iRunLengths[],
+ ATSUStyle iStyles[],
+ ATSUTextLayout * oTextLayout);
+
+
+/*
+ * ATSUClearLayoutCache()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearLayoutCache(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart);
+
+
+/*
+ * ATSUDisposeTextLayout()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUDisposeTextLayout(ATSUTextLayout iTextLayout);
+
+
+/*
+ * ATSUSetTextLayoutRefCon()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetTextLayoutRefCon(
+ ATSUTextLayout iTextLayout,
+ UInt32 iRefCon);
+
+
+/*
+ * ATSUGetTextLayoutRefCon()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetTextLayoutRefCon(
+ ATSUTextLayout iTextLayout,
+ UInt32 * oRefCon);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Glyph bounds retrieval */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUGetGlyphBounds()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetGlyphBounds(
+ ATSUTextLayout iTextLayout,
+ ATSUTextMeasurement iTextBasePointX,
+ ATSUTextMeasurement iTextBasePointY,
+ UniCharArrayOffset iBoundsCharStart,
+ UniCharCount iBoundsCharLength,
+ UInt16 iTypeOfBounds,
+ ItemCount iMaxNumberOfBounds,
+ ATSTrapezoid oGlyphBounds[],
+ ItemCount * oActualNumberOfBounds);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Idle processing */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUIdle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUIdle(ATSUTextLayout iTextLayout);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Text location */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUSetTextPointerLocation()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetTextPointerLocation(
+ ATSUTextLayout iTextLayout,
+ ConstUniCharArrayPtr iText,
+ UniCharArrayOffset iTextOffset,
+ UniCharCount iTextLength,
+ UniCharCount iTextTotalLength);
+
+
+/*
+ * ATSUSetTextHandleLocation()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetTextHandleLocation(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayHandle iText,
+ UniCharArrayOffset iTextOffset,
+ UniCharCount iTextLength,
+ UniCharCount iTextTotalLength);
+
+
+/*
+ * ATSUGetTextLocation()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetTextLocation(
+ ATSUTextLayout iTextLayout,
+ void ** oText,
+ Boolean * oTextIsStoredInHandle,
+ UniCharArrayOffset * oOffset,
+ UniCharCount * oTextLength,
+ UniCharCount * oTextTotalLength);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Text manipulation */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUTextDeleted()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUTextDeleted(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iDeletedRangeStart,
+ UniCharCount iDeletedRangeLength);
+
+
+/*
+ * ATSUTextInserted()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUTextInserted(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iInsertionLocation,
+ UniCharCount iInsertionLength);
+
+
+/*
+ * ATSUTextMoved()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUTextMoved(
+ ATSUTextLayout iTextLayout,
+ ConstUniCharArrayPtr iNewLocation);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Layout controls */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCopyLayoutControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCopyLayoutControls(
+ ATSUTextLayout iSourceTextLayout,
+ ATSUTextLayout iDestTextLayout);
+
+
+/*
+ * ATSUSetLayoutControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetLayoutControls(
+ ATSUTextLayout iTextLayout,
+ ItemCount iAttributeCount,
+ const ATSUAttributeTag iTag[],
+ const ByteCount iValueSize[],
+ const ATSUAttributeValuePtr iValue[]);
+
+
+/*
+ * ATSUGetLayoutControl()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetLayoutControl(
+ ATSUTextLayout iTextLayout,
+ ATSUAttributeTag iTag,
+ ByteCount iExpectedValueSize,
+ ATSUAttributeValuePtr oValue,
+ ByteCount * oActualValueSize);
+
+
+/*
+ * ATSUGetAllLayoutControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetAllLayoutControls(
+ ATSUTextLayout iTextLayout,
+ ATSUAttributeInfo oAttributeInfoArray[],
+ ItemCount iTagValuePairArraySize,
+ ItemCount * oTagValuePairCount);
+
+
+/*
+ * ATSUClearLayoutControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearLayoutControls(
+ ATSUTextLayout iTextLayout,
+ ItemCount iTagCount,
+ const ATSUAttributeTag iTag[]);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Single line layout controls */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCopyLineControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCopyLineControls(
+ ATSUTextLayout iSourceTextLayout,
+ UniCharArrayOffset iSourceLineStart,
+ ATSUTextLayout iDestTextLayout,
+ UniCharArrayOffset iDestLineStart);
+
+
+/*
+ * ATSUSetLineControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetLineControls(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ ItemCount iAttributeCount,
+ const ATSUAttributeTag iTag[],
+ const ByteCount iValueSize[],
+ const ATSUAttributeValuePtr iValue[]);
+
+
+/*
+ * ATSUGetLineControl()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetLineControl(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ ATSUAttributeTag iTag,
+ ByteCount iExpectedValueSize,
+ ATSUAttributeValuePtr oValue,
+ ByteCount * oActualValueSize);
+
+
+/*
+ * ATSUGetAllLineControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetAllLineControls(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ ATSUAttributeInfo oAttributeInfoArray[],
+ ItemCount iTagValuePairArraySize,
+ ItemCount * oTagValuePairCount);
+
+
+/*
+ * ATSUClearLineControls()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearLineControls(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ ItemCount iTagCount,
+ const ATSUAttributeTag iTag[]);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Style run processing */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUSetRunStyle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetRunStyle(
+ ATSUTextLayout iTextLayout,
+ ATSUStyle iStyle,
+ UniCharArrayOffset iRunStart,
+ UniCharCount iRunLength);
+
+
+/*
+ * ATSUGetRunStyle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetRunStyle(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOffset,
+ ATSUStyle * oStyle,
+ UniCharArrayOffset * oRunStart,
+ UniCharCount * oRunLength);
+
+
+/*
+ * ATSUGetContinuousAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetContinuousAttributes(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOffset,
+ UniCharCount iLength,
+ ATSUStyle oStyle);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Drawing and measuring */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUDrawText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUDrawText(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineOffset,
+ UniCharCount iLineLength,
+ ATSUTextMeasurement iLocationX,
+ ATSUTextMeasurement iLocationY);
+
+
+/*
+ Warning: ATSUMeasureText has been deprecated
+ Use its replacement, ATSUGetUnjustifiedBounds, instead if available
+*/
+/*
+ * ATSUMeasureText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUMeasureText(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ UniCharCount iLineLength,
+ ATSUTextMeasurement * oTextBefore,
+ ATSUTextMeasurement * oTextAfter,
+ ATSUTextMeasurement * oAscent,
+ ATSUTextMeasurement * oDescent);
+
+
+/*
+ * ATSUGetUnjustifiedBounds()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetUnjustifiedBounds(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ UniCharCount iLineLength,
+ ATSUTextMeasurement * oTextBefore,
+ ATSUTextMeasurement * oTextAfter,
+ ATSUTextMeasurement * oAscent,
+ ATSUTextMeasurement * oDescent);
+
+
+/*
+ * ATSUMeasureTextImage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUMeasureTextImage(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineOffset,
+ UniCharCount iLineLength,
+ ATSUTextMeasurement iLocationX,
+ ATSUTextMeasurement iLocationY,
+ Rect * oTextImageRect);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Highlighting */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUHighlightText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUHighlightText(
+ ATSUTextLayout iTextLayout,
+ ATSUTextMeasurement iTextBasePointX,
+ ATSUTextMeasurement iTextBasePointY,
+ UniCharArrayOffset iHighlightStart,
+ UniCharCount iHighlightLength);
+
+
+/*
+ * ATSUUnhighlightText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUUnhighlightText(
+ ATSUTextLayout iTextLayout,
+ ATSUTextMeasurement iTextBasePointX,
+ ATSUTextMeasurement iTextBasePointY,
+ UniCharArrayOffset iHighlightStart,
+ UniCharCount iHighlightLength);
+
+
+/*
+ * ATSUGetTextHighlight()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetTextHighlight(
+ ATSUTextLayout iTextLayout,
+ ATSUTextMeasurement iTextBasePointX,
+ ATSUTextMeasurement iTextBasePointY,
+ UniCharArrayOffset iHighlightStart,
+ UniCharCount iHighlightLength,
+ RgnHandle oHighlightRegion);
+
+
+/*
+ * ATSUHighlightInactiveText()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUHighlightInactiveText(
+ ATSUTextLayout iTextLayout,
+ ATSUTextMeasurement iTextBasePointX,
+ ATSUTextMeasurement iTextBasePointY,
+ UniCharArrayOffset iHighlightStart,
+ UniCharCount iHighlightLength);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Hit-testing */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUPositionToOffset()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUPositionToOffset(
+ ATSUTextLayout iTextLayout,
+ ATSUTextMeasurement iLocationX,
+ ATSUTextMeasurement iLocationY,
+ UniCharArrayOffset * ioPrimaryOffset,
+ Boolean * oIsLeading,
+ UniCharArrayOffset * oSecondaryOffset);
+
+
+/*
+ * ATSUOffsetToPosition()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUOffsetToPosition(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOffset,
+ Boolean iIsLeading,
+ ATSUCaret * oMainCaret,
+ ATSUCaret * oSecondCaret,
+ Boolean * oCaretIsSplit);
+
+
+/*
+ * ATSUPositionToCursorOffset()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.2.2 and later
+ * CarbonLib: in CarbonLib 1.5 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUPositionToCursorOffset(
+ ATSUTextLayout iTextLayout,
+ ATSUTextMeasurement iLocationX,
+ ATSUTextMeasurement iLocationY,
+ ATSUCursorMovementType iMovementType,
+ UniCharArrayOffset * ioPrimaryOffset,
+ Boolean * oIsLeading,
+ UniCharArrayOffset * oSecondaryOffset);
+
+
+/*
+ * ATSUOffsetToCursorPosition()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.2.2 and later
+ * CarbonLib: in CarbonLib 1.5 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUOffsetToCursorPosition(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOffset,
+ Boolean iIsLeading,
+ ATSUCursorMovementType iMovementType,
+ ATSUCaret * oMainCaret,
+ ATSUCaret * oSecondCaret,
+ Boolean * oCaretIsSplit);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Cursor movement */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUNextCursorPosition()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUNextCursorPosition(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOldOffset,
+ ATSUCursorMovementType iMovementType,
+ UniCharArrayOffset * oNewOffset);
+
+
+/*
+ * ATSUPreviousCursorPosition()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUPreviousCursorPosition(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOldOffset,
+ ATSUCursorMovementType iMovementType,
+ UniCharArrayOffset * oNewOffset);
+
+
+/*
+ * ATSURightwardCursorPosition()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSURightwardCursorPosition(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOldOffset,
+ ATSUCursorMovementType iMovementType,
+ UniCharArrayOffset * oNewOffset);
+
+
+/*
+ * ATSULeftwardCursorPosition()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSULeftwardCursorPosition(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iOldOffset,
+ ATSUCursorMovementType iMovementType,
+ UniCharArrayOffset * oNewOffset);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Line breaking */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUBatchBreakLines()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUBatchBreakLines(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iRangeStart,
+ UniCharCount iRangeLength,
+ ATSUTextMeasurement iLineWidth,
+ ItemCount * oBreakCount);
+
+
+/*
+ * ATSUBreakLine()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUBreakLine(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ ATSUTextMeasurement iLineWidth,
+ Boolean iUseAsSoftLineBreak,
+ UniCharArrayOffset * oLineBreak);
+
+
+/*
+ * ATSUSetSoftLineBreak()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetSoftLineBreak(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineBreak);
+
+
+/*
+ * ATSUGetSoftLineBreaks()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetSoftLineBreaks(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iRangeStart,
+ UniCharCount iRangeLength,
+ ItemCount iMaximumBreaks,
+ UniCharArrayOffset oBreaks[],
+ ItemCount * oBreakCount);
+
+
+/*
+ * ATSUClearSoftLineBreaks()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUClearSoftLineBreaks(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iRangeStart,
+ UniCharCount iRangeLength);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Tab support */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUSetTabArray()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetTabArray(
+ ATSUTextLayout iTextLayout,
+ const ATSUTab iTabs[],
+ ItemCount iTabCount);
+
+
+/*
+ * ATSUGetTabArray()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetTabArray(
+ ATSUTextLayout iTextLayout,
+ ItemCount iMaxTabCount,
+ ATSUTab oTabs[],
+ ItemCount * oTabCount);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font matching */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUSetFontFallbacks()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetFontFallbacks(
+ ItemCount iFontFallbacksCount,
+ const ATSUFontID iFontIDs[],
+ ATSUFontFallbackMethod iFontFallbackMethod);
+
+
+/*
+ * ATSUGetFontFallbacks()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontFallbacks(
+ ItemCount iMaxFontFallbacksCount,
+ ATSUFontID oFontIDs[],
+ ATSUFontFallbackMethod * oFontFallbackMethod,
+ ItemCount * oActualFallbacksCount);
+
+
+/*
+ * ATSUMatchFontsToText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUMatchFontsToText(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iTextStart,
+ UniCharCount iTextLength,
+ ATSUFontID * oFontID,
+ UniCharArrayOffset * oChangedOffset,
+ UniCharCount * oChangedLength);
+
+
+/*
+ * ATSUSetTransientFontMatching()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUSetTransientFontMatching(
+ ATSUTextLayout iTextLayout,
+ Boolean iTransientFontMatching);
+
+
+/*
+ * ATSUGetTransientFontMatching()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetTransientFontMatching(
+ ATSUTextLayout iTextLayout,
+ Boolean * oTransientFontMatching);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font ID's */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUFontCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUFontCount(ItemCount * oFontCount);
+
+
+/*
+ * ATSUGetFontIDs()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontIDs(
+ ATSUFontID oFontIDs[],
+ ItemCount iArraySize,
+ ItemCount * oFontCount);
+
+
+/*
+ * ATSUFONDtoFontID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUFONDtoFontID(
+ short iFONDNumber,
+ Style iFONDStyle,
+ ATSUFontID * oFontID);
+
+
+/*
+ * ATSUFontIDtoFOND()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUFontIDtoFOND(
+ ATSUFontID iFontID,
+ short * oFONDNumber,
+ Style * oFONDStyle);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font names */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCountFontNames()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCountFontNames(
+ ATSUFontID iFontID,
+ ItemCount * oFontNameCount);
+
+
+/*
+ * ATSUGetIndFontName()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetIndFontName(
+ ATSUFontID iFontID,
+ ItemCount iFontNameIndex,
+ ByteCount iMaximumNameLength,
+ Ptr oName,
+ ByteCount * oActualNameLength,
+ FontNameCode * oFontNameCode,
+ FontPlatformCode * oFontNamePlatform,
+ FontScriptCode * oFontNameScript,
+ FontLanguageCode * oFontNameLanguage);
+
+
+/*
+ * ATSUFindFontName()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUFindFontName(
+ ATSUFontID iFontID,
+ FontNameCode iFontNameCode,
+ FontPlatformCode iFontNamePlatform,
+ FontScriptCode iFontNameScript,
+ FontLanguageCode iFontNameLanguage,
+ ByteCount iMaximumNameLength,
+ Ptr oName,
+ ByteCount * oActualNameLength,
+ ItemCount * oFontNameIndex);
+
+
+/*
+ * ATSUFindFontFromName()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUFindFontFromName(
+ Ptr iName,
+ ByteCount iNameLength,
+ FontNameCode iFontNameCode,
+ FontPlatformCode iFontNamePlatform,
+ FontScriptCode iFontNameScript,
+ FontLanguageCode iFontNameLanguage,
+ ATSUFontID * oFontID);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font features */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCountFontFeatureTypes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCountFontFeatureTypes(
+ ATSUFontID iFontID,
+ ItemCount * oTypeCount);
+
+
+/*
+ * ATSUCountFontFeatureSelectors()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCountFontFeatureSelectors(
+ ATSUFontID iFontID,
+ ATSUFontFeatureType iType,
+ ItemCount * oSelectorCount);
+
+
+/*
+ * ATSUGetFontFeatureTypes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontFeatureTypes(
+ ATSUFontID iFontID,
+ ItemCount iMaximumTypes,
+ ATSUFontFeatureType oTypes[],
+ ItemCount * oActualTypeCount);
+
+
+/*
+ * ATSUGetFontFeatureSelectors()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontFeatureSelectors(
+ ATSUFontID iFontID,
+ ATSUFontFeatureType iType,
+ ItemCount iMaximumSelectors,
+ ATSUFontFeatureSelector oSelectors[],
+ Boolean oSelectorIsOnByDefault[],
+ ItemCount * oActualSelectorCount,
+ Boolean * oIsMutuallyExclusive);
+
+
+/*
+ * ATSUGetFontFeatureNameCode()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontFeatureNameCode(
+ ATSUFontID iFontID,
+ ATSUFontFeatureType iType,
+ ATSUFontFeatureSelector iSelector,
+ FontNameCode * oNameCode);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font tracking value & names */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCountFontTracking()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCountFontTracking(
+ ATSUFontID iFontID,
+ ATSUVerticalCharacterType iCharacterOrientation,
+ ItemCount * oTrackingCount);
+
+
+/*
+ * ATSUGetIndFontTracking()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.6 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetIndFontTracking(
+ ATSUFontID iFontID,
+ ATSUVerticalCharacterType iCharacterOrientation,
+ ItemCount iTrackIndex,
+ Fixed * oFontTrackingValue,
+ FontNameCode * oNameCode);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font variations */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCountFontVariations()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCountFontVariations(
+ ATSUFontID iFontID,
+ ItemCount * oVariationCount);
+
+
+/*
+ * ATSUGetIndFontVariation()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetIndFontVariation(
+ ATSUFontID iFontID,
+ ItemCount iVariationIndex,
+ ATSUFontVariationAxis * oATSUFontVariationAxis,
+ ATSUFontVariationValue * oMinimumValue,
+ ATSUFontVariationValue * oMaximumValue,
+ ATSUFontVariationValue * oDefaultValue);
+
+
+/*
+ * ATSUGetFontVariationNameCode()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontVariationNameCode(
+ ATSUFontID iFontID,
+ ATSUFontVariationAxis iAxis,
+ FontNameCode * oNameCode);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font Instances */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUCountFontInstances()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUCountFontInstances(
+ ATSUFontID iFontID,
+ ItemCount * oInstances);
+
+
+/*
+ * ATSUGetFontInstance()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontInstance(
+ ATSUFontID iFontID,
+ ItemCount iFontInstanceIndex,
+ ItemCount iMaximumVariations,
+ ATSUFontVariationAxis oAxes[],
+ ATSUFontVariationValue oValues[],
+ ItemCount * oActualVariationCount);
+
+
+/*
+ * ATSUGetFontInstanceNameCode()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 8.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetFontInstanceNameCode(
+ ATSUFontID iFontID,
+ ItemCount iInstanceIndex,
+ FontNameCode * oNameCode);
+
+
+
+/********************************************************************************/
+/* ATSUI Low-Level API. For more low-level calls, see ATSUnicodeDirectAccess.h */
+/********************************************************************************/
+/* ---------------------------------------------------------------------------- */
+/* GlyphInfo access */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUGetGlyphInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetGlyphInfo(
+ ATSUTextLayout iTextLayout,
+ UniCharArrayOffset iLineStart,
+ UniCharCount iLineLength,
+ ByteCount * ioBufferSize,
+ ATSUGlyphInfoArray * oGlyphInfoPtr);
+
+
+/*
+ * ATSUDrawGlyphInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUDrawGlyphInfo(
+ ATSUGlyphInfoArray * iGlyphInfoArray,
+ Float32Point iLocation);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Font Data Access */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUGlyphGetIdealMetrics()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGlyphGetIdealMetrics(
+ ATSUStyle iATSUStyle,
+ ItemCount iNumOfGlyphs,
+ GlyphID iGlyphIDs[],
+ ByteOffset iInputOffset,
+ ATSGlyphIdealMetrics oIdealMetrics[]);
+
+
+/*
+ * ATSUGetNativeCurveType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGetNativeCurveType(
+ ATSUStyle iATSUStyle,
+ ATSCurveType * oCurveType);
+
+
+/* ---------------------------------------------------------------------------- */
+/* Device specific routines */
+/* ---------------------------------------------------------------------------- */
+/*
+ * ATSUGlyphGetScreenMetrics()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGlyphGetScreenMetrics(
+ ATSUStyle iATSUStyle,
+ ItemCount iNumOfGlyphs,
+ GlyphID iGlyphIDs[],
+ ByteOffset iInputOffset,
+ Boolean iForcingAntiAlias,
+ Boolean iAntiAliasSwitch,
+ ATSGlyphScreenMetrics oScreenMetrics[]);
+
+
+/* ---------------------------------------------------------------------------- */
+/* ATSUGlyphGetQuadraticPaths callbacks */
+/* ---------------------------------------------------------------------------- */
+typedef CALLBACK_API( OSStatus , ATSQuadraticLineProcPtr )(const Float32Point *pt1, const Float32Point *pt2, void *callBackDataPtr);
+typedef CALLBACK_API( OSStatus , ATSQuadraticCurveProcPtr )(const Float32Point *pt1, const Float32Point *controlPt, const Float32Point *pt2, void *callBackDataPtr);
+typedef CALLBACK_API( OSStatus , ATSQuadraticNewPathProcPtr )(void * callBackDataPtr);
+typedef CALLBACK_API( OSStatus , ATSQuadraticClosePathProcPtr )(void * callBackDataPtr);
+typedef TVECTOR_UPP_TYPE(ATSQuadraticLineProcPtr) ATSQuadraticLineUPP;
+typedef TVECTOR_UPP_TYPE(ATSQuadraticCurveProcPtr) ATSQuadraticCurveUPP;
+typedef TVECTOR_UPP_TYPE(ATSQuadraticNewPathProcPtr) ATSQuadraticNewPathUPP;
+typedef TVECTOR_UPP_TYPE(ATSQuadraticClosePathProcPtr) ATSQuadraticClosePathUPP;
+/*
+ * NewATSQuadraticLineUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSQuadraticLineUPP )
+NewATSQuadraticLineUPP(ATSQuadraticLineProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSQuadraticLineProcInfo = 0x00000FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSQuadraticLineUPP) NewATSQuadraticLineUPP(ATSQuadraticLineProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSQuadraticLineUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * NewATSQuadraticCurveUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSQuadraticCurveUPP )
+NewATSQuadraticCurveUPP(ATSQuadraticCurveProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSQuadraticCurveProcInfo = 0x00003FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSQuadraticCurveUPP) NewATSQuadraticCurveUPP(ATSQuadraticCurveProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSQuadraticCurveUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * NewATSQuadraticNewPathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSQuadraticNewPathUPP )
+NewATSQuadraticNewPathUPP(ATSQuadraticNewPathProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSQuadraticNewPathProcInfo = 0x000000F0 }; /* pascal 4_bytes Func(4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSQuadraticNewPathUPP) NewATSQuadraticNewPathUPP(ATSQuadraticNewPathProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSQuadraticNewPathUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * NewATSQuadraticClosePathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSQuadraticClosePathUPP )
+NewATSQuadraticClosePathUPP(ATSQuadraticClosePathProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSQuadraticClosePathProcInfo = 0x000000F0 }; /* pascal 4_bytes Func(4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSQuadraticClosePathUPP) NewATSQuadraticClosePathUPP(ATSQuadraticClosePathProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSQuadraticClosePathUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * DisposeATSQuadraticLineUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSQuadraticLineUPP(ATSQuadraticLineUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSQuadraticLineUPP(ATSQuadraticLineUPP) {}
+ #else
+ #define DisposeATSQuadraticLineUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeATSQuadraticCurveUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSQuadraticCurveUPP(ATSQuadraticCurveUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSQuadraticCurveUPP(ATSQuadraticCurveUPP) {}
+ #else
+ #define DisposeATSQuadraticCurveUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeATSQuadraticNewPathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSQuadraticNewPathUPP(ATSQuadraticNewPathUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSQuadraticNewPathUPP(ATSQuadraticNewPathUPP) {}
+ #else
+ #define DisposeATSQuadraticNewPathUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeATSQuadraticClosePathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSQuadraticClosePathUPP(ATSQuadraticClosePathUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSQuadraticClosePathUPP(ATSQuadraticClosePathUPP) {}
+ #else
+ #define DisposeATSQuadraticClosePathUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeATSQuadraticLineUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSQuadraticLineUPP(
+ const Float32Point * pt1,
+ const Float32Point * pt2,
+ void * callBackDataPtr,
+ ATSQuadraticLineUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSQuadraticLineUPP(const Float32Point * pt1, const Float32Point * pt2, void * callBackDataPtr, ATSQuadraticLineUPP userUPP) { return (*userUPP)(pt1, pt2, callBackDataPtr); }
+ #else
+ #define InvokeATSQuadraticLineUPP(pt1, pt2, callBackDataPtr, userUPP) (*userUPP)(pt1, pt2, callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * InvokeATSQuadraticCurveUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSQuadraticCurveUPP(
+ const Float32Point * pt1,
+ const Float32Point * controlPt,
+ const Float32Point * pt2,
+ void * callBackDataPtr,
+ ATSQuadraticCurveUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSQuadraticCurveUPP(const Float32Point * pt1, const Float32Point * controlPt, const Float32Point * pt2, void * callBackDataPtr, ATSQuadraticCurveUPP userUPP) { return (*userUPP)(pt1, controlPt, pt2, callBackDataPtr); }
+ #else
+ #define InvokeATSQuadraticCurveUPP(pt1, controlPt, pt2, callBackDataPtr, userUPP) (*userUPP)(pt1, controlPt, pt2, callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * InvokeATSQuadraticNewPathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSQuadraticNewPathUPP(
+ void * callBackDataPtr,
+ ATSQuadraticNewPathUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSQuadraticNewPathUPP(void * callBackDataPtr, ATSQuadraticNewPathUPP userUPP) { return (*userUPP)(callBackDataPtr); }
+ #else
+ #define InvokeATSQuadraticNewPathUPP(callBackDataPtr, userUPP) (*userUPP)(callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * InvokeATSQuadraticClosePathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSQuadraticClosePathUPP(
+ void * callBackDataPtr,
+ ATSQuadraticClosePathUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSQuadraticClosePathUPP(void * callBackDataPtr, ATSQuadraticClosePathUPP userUPP) { return (*userUPP)(callBackDataPtr); }
+ #else
+ #define InvokeATSQuadraticClosePathUPP(callBackDataPtr, userUPP) (*userUPP)(callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * ATSUGlyphGetQuadraticPaths()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGlyphGetQuadraticPaths(
+ ATSUStyle iATSUStyle,
+ GlyphID iGlyphID,
+ ATSQuadraticNewPathUPP iNewPathProc,
+ ATSQuadraticLineUPP iLineProc,
+ ATSQuadraticCurveUPP iCurveProc,
+ ATSQuadraticClosePathUPP iClosePathProc,
+ void * iCallbackDataPtr,
+ OSStatus * oCallbackResult);
+
+
+/* ATSUGlyphGetCubicPaths callbacks */
+typedef CALLBACK_API( OSStatus , ATSCubicMoveToProcPtr )(const Float32Point *pt, void *callBackDataPtr);
+typedef CALLBACK_API( OSStatus , ATSCubicLineToProcPtr )(const Float32Point *pt, void *callBackDataPtr);
+typedef CALLBACK_API( OSStatus , ATSCubicCurveToProcPtr )(const Float32Point *pt1, const Float32Point *pt2, const Float32Point *pt3, void *callBackDataPtr);
+typedef CALLBACK_API( OSStatus , ATSCubicClosePathProcPtr )(void * callBackDataPtr);
+typedef TVECTOR_UPP_TYPE(ATSCubicMoveToProcPtr) ATSCubicMoveToUPP;
+typedef TVECTOR_UPP_TYPE(ATSCubicLineToProcPtr) ATSCubicLineToUPP;
+typedef TVECTOR_UPP_TYPE(ATSCubicCurveToProcPtr) ATSCubicCurveToUPP;
+typedef TVECTOR_UPP_TYPE(ATSCubicClosePathProcPtr) ATSCubicClosePathUPP;
+/*
+ * NewATSCubicMoveToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSCubicMoveToUPP )
+NewATSCubicMoveToUPP(ATSCubicMoveToProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSCubicMoveToProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSCubicMoveToUPP) NewATSCubicMoveToUPP(ATSCubicMoveToProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSCubicMoveToUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * NewATSCubicLineToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSCubicLineToUPP )
+NewATSCubicLineToUPP(ATSCubicLineToProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSCubicLineToProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSCubicLineToUPP) NewATSCubicLineToUPP(ATSCubicLineToProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSCubicLineToUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * NewATSCubicCurveToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSCubicCurveToUPP )
+NewATSCubicCurveToUPP(ATSCubicCurveToProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSCubicCurveToProcInfo = 0x00003FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSCubicCurveToUPP) NewATSCubicCurveToUPP(ATSCubicCurveToProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSCubicCurveToUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * NewATSCubicClosePathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ATSCubicClosePathUPP )
+NewATSCubicClosePathUPP(ATSCubicClosePathProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppATSCubicClosePathProcInfo = 0x000000F0 }; /* pascal 4_bytes Func(4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ATSCubicClosePathUPP) NewATSCubicClosePathUPP(ATSCubicClosePathProcPtr userRoutine) { return userRoutine; }
+ #else
+ #define NewATSCubicClosePathUPP(userRoutine) (userRoutine)
+ #endif
+#endif
+
+/*
+ * DisposeATSCubicMoveToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSCubicMoveToUPP(ATSCubicMoveToUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSCubicMoveToUPP(ATSCubicMoveToUPP) {}
+ #else
+ #define DisposeATSCubicMoveToUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeATSCubicLineToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSCubicLineToUPP(ATSCubicLineToUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSCubicLineToUPP(ATSCubicLineToUPP) {}
+ #else
+ #define DisposeATSCubicLineToUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeATSCubicCurveToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSCubicCurveToUPP(ATSCubicCurveToUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSCubicCurveToUPP(ATSCubicCurveToUPP) {}
+ #else
+ #define DisposeATSCubicCurveToUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeATSCubicClosePathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeATSCubicClosePathUPP(ATSCubicClosePathUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeATSCubicClosePathUPP(ATSCubicClosePathUPP) {}
+ #else
+ #define DisposeATSCubicClosePathUPP(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeATSCubicMoveToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSCubicMoveToUPP(
+ const Float32Point * pt,
+ void * callBackDataPtr,
+ ATSCubicMoveToUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSCubicMoveToUPP(const Float32Point * pt, void * callBackDataPtr, ATSCubicMoveToUPP userUPP) { return (*userUPP)(pt, callBackDataPtr); }
+ #else
+ #define InvokeATSCubicMoveToUPP(pt, callBackDataPtr, userUPP) (*userUPP)(pt, callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * InvokeATSCubicLineToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSCubicLineToUPP(
+ const Float32Point * pt,
+ void * callBackDataPtr,
+ ATSCubicLineToUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSCubicLineToUPP(const Float32Point * pt, void * callBackDataPtr, ATSCubicLineToUPP userUPP) { return (*userUPP)(pt, callBackDataPtr); }
+ #else
+ #define InvokeATSCubicLineToUPP(pt, callBackDataPtr, userUPP) (*userUPP)(pt, callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * InvokeATSCubicCurveToUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSCubicCurveToUPP(
+ const Float32Point * pt1,
+ const Float32Point * pt2,
+ const Float32Point * pt3,
+ void * callBackDataPtr,
+ ATSCubicCurveToUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSCubicCurveToUPP(const Float32Point * pt1, const Float32Point * pt2, const Float32Point * pt3, void * callBackDataPtr, ATSCubicCurveToUPP userUPP) { return (*userUPP)(pt1, pt2, pt3, callBackDataPtr); }
+ #else
+ #define InvokeATSCubicCurveToUPP(pt1, pt2, pt3, callBackDataPtr, userUPP) (*userUPP)(pt1, pt2, pt3, callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * InvokeATSCubicClosePathUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+InvokeATSCubicClosePathUPP(
+ void * callBackDataPtr,
+ ATSCubicClosePathUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSStatus) InvokeATSCubicClosePathUPP(void * callBackDataPtr, ATSCubicClosePathUPP userUPP) { return (*userUPP)(callBackDataPtr); }
+ #else
+ #define InvokeATSCubicClosePathUPP(callBackDataPtr, userUPP) (*userUPP)(callBackDataPtr)
+ #endif
+#endif
+
+/*
+ * ATSUGlyphGetCubicPaths()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGlyphGetCubicPaths(
+ ATSUStyle iATSUStyle,
+ GlyphID iGlyphID,
+ ATSCubicMoveToUPP iMoveToProc,
+ ATSCubicLineToUPP iLineToProc,
+ ATSCubicCurveToUPP iCurveToProc,
+ ATSCubicClosePathUPP iClosePathProc,
+ void * iCallbackDataPtr,
+ OSStatus * oCallbackResult);
+
+
+/*
+ * ATSUGlyphGetCurvePaths()
+ *
+ * Availability:
+ * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+ATSUGlyphGetCurvePaths(
+ ATSUStyle iATSUStyle,
+ GlyphID iGlyphID,
+ ByteCount * ioBufferSize,
+ ATSUCurvePaths * oPaths);
+
+
+
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif