diff options
Diffstat (limited to 'common/quicktime_win32/ATSUnicode.h')
| -rw-r--r-- | common/quicktime_win32/ATSUnicode.h | 3059 |
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 |