|
|
/*
File: ATSFont.h Contains: Public interface to the font access and data management functions of ATS. Version: QuickTime 7.3 Copyright: (c) 2007 (C) 2000-2002 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 __ATSFONT__
#define __ATSFONT__
#ifndef __MACTYPES__
#include <MacTypes.h>
#endif
#ifndef __CFSTRING__
#include <CFString.h>
#endif
#ifndef __CFMESSAGEPORT__
#include <CFMessagePort.h>
#endif
#ifndef __FILES__
#include <Files.h>
#endif
#ifndef __TEXTCOMMON__
#include <TextCommon.h>
#endif
#ifndef __ATSTYPES__
#include <ATSTypes.h>
#endif
#ifndef __SFNTTYPES__
#include <SFNTTypes.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
#if PRAGMA_ENUM_ALWAYSINT
#if defined(__fourbyteints__) && !__fourbyteints__
#define __ATSFONT__RESTORE_TWOBYTEINTS
#pragma fourbyteints on
#endif
#pragma enumsalwaysint on
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=int
#elif PRAGMA_ENUM_PACK
#if __option(pack_enums)
#define __ATSFONT__RESTORE_PACKED_ENUMS
#pragma options(!pack_enums)
#endif
#endif
enum { kATSOptionFlagsDefault = kNilOptions, kATSOptionFlagsComposeFontPostScriptName = 1 << 0, /* ATSFontGetPostScriptName */ kATSOptionFlagsUseDataForkAsResourceFork = 1 << 8, /* ATSFontActivateFromFileSpecification */ kATSOptionFlagsUseResourceFork = 2 << 8, kATSOptionFlagsUseDataFork = 3 << 8 };
enum { kATSIterationCompleted = -980L, kATSInvalidFontFamilyAccess = -981L, kATSInvalidFontAccess = -982L, kATSIterationScopeModified = -983L, kATSInvalidFontTableAccess = -984L, kATSInvalidFontContainerAccess = -985L };
/* Activation Option Flags */ typedef UInt32 ATSFontContext; enum { kATSFontContextUnspecified = 0, kATSFontContextGlobal = 1, kATSFontContextLocal = 2 };
enum { kATSOptionFlagsDoNotNotify = 0x00000001 << 8, /* Do not notify after global activation/deactivation */ kATSOptionFlagsIterationScopeMask = 0x00000007 << 12, /* Mask option bits 12-14 for iteration scopes */ kATSOptionFlagsDefaultScope = 0x00000000 << 12, kATSOptionFlagsUnRestrictedScope = 0x00000001 << 12, kATSOptionFlagsRestrictedScope = 0x00000002 << 12, kATSOptionFlagsProcessSubdirectories = 0x00000001 << 6 };
/* Iteration Option Flags */ enum { kATSOptionFlagsIterateByPrecedenceMask = 0x00000001 << 5 };
typedef UInt32 ATSFontFormat; enum { kATSFontFormatUnspecified = 0 };
typedef CALLBACK_API_C( OSStatus , ATSFontFamilyApplierFunction )(ATSFontFamilyRef iFamily, void *iRefCon); typedef CALLBACK_API_C( OSStatus , ATSFontApplierFunction )(ATSFontRef iFont, void *iRefCon); typedef struct ATSFontFamilyIterator_* ATSFontFamilyIterator; typedef struct ATSFontIterator_* ATSFontIterator; enum { kATSFontFilterCurrentVersion = 0 };
enum ATSFontFilterSelector { kATSFontFilterSelectorUnspecified = 0, kATSFontFilterSelectorGeneration = 3, kATSFontFilterSelectorFontFamily = 7, kATSFontFilterSelectorFontFamilyApplierFunction = 8, kATSFontFilterSelectorFontApplierFunction = 9 }; typedef enum ATSFontFilterSelector ATSFontFilterSelector;
struct ATSFontFilter { UInt32 version; ATSFontFilterSelector filterSelector; union { ATSGeneration generationFilter; ATSFontFamilyRef fontFamilyFilter; ATSFontFamilyApplierFunction fontFamilyApplierFunctionFilter; ATSFontApplierFunction fontApplierFunctionFilter; } filter; }; typedef struct ATSFontFilter ATSFontFilter; /* Notification related */ typedef struct ATSFontNotificationRef_* ATSFontNotificationRef; typedef struct ATSFontNotificationInfoRef_* ATSFontNotificationInfoRef;
/*
* ATSFontNotifyOption * * Discussion: * Options used with ATSFontNotificationSubscribe. Any of the * options that follow may be used together in order to alter the * default behavior of ATS notifications. */ enum ATSFontNotifyOption {
/*
* Default behavior of ATSFontNotificationSubscribe. */ kATSFontNotifyOptionDefault = 0,
/*
* Normally applications will only receive ATS notifications while in * the foreground. If suspended, the notification will be delivered * when then application comes to the foreground. This is the * default. You should set this option if you are a server or tool * that performs font management functions and require immediate * notification when something changes. */ kATSFontNotifyOptionReceiveWhileSuspended = 1L << 0 }; typedef enum ATSFontNotifyOption ATSFontNotifyOption;
/*
* ATSFontNotifyAction * * Discussion: * Used with ATSFontNotify. The following is a list of actions you * might wish the ATS server to perform and notify clients if * appropriate. */ enum ATSFontNotifyAction {
/*
* Used after a batch (de)activation of fonts occurs. Typically the * caller has exercised multiple global (De)Activation calls with the * kATSOptionFlagsDoNotNotify set. Once all calls are completed, one * may use ATSFontNotify with this action to ask ATS to notify all * clients. */ kATSFontNotifyActionFontsChanged = 1,
/*
* The ATS system with the help of the Finder keeps track of changes * to any of the fonts directories ( System, Local, Network, User, & * Classic). However, one may wish to add/remove fonts to these * locations programmatically. This action is used to let ATS * server to rescan these directories and post notifications if * necessary. */ kATSFontNotifyActionDirectoriesChanged = 2 }; typedef enum ATSFontNotifyAction ATSFontNotifyAction;
/*
* ATSNotificationCallback * * Discussion: * Callback delivered for ATS notifications. * * Parameters: * * info: * Parameter is placed here for future improvements. Initially * the contents of this parameter will be NULL. * * refCon: * User data/state to be supplied to callback function */ typedef CALLBACK_API_C( void , ATSNotificationCallback )(ATSFontNotificationInfoRef info, void *refCon); /* ----------------------------------------------------------------------------------------- */ /* Font container */ /* ----------------------------------------------------------------------------------------- */ /*
* ATSGetGeneration() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ATSGeneration ) ATSGetGeneration(void);
/*
* ATSFontActivateFromFileSpecification() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontActivateFromFileSpecification( const FSSpec * iFile, ATSFontContext iContext, ATSFontFormat iFormat, void * iReserved, ATSOptionFlags iOptions, ATSFontContainerRef * oContainer);
/*
* ATSFontActivateFromMemory() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontActivateFromMemory( LogicalAddress iData, ByteCount iLength, ATSFontContext iContext, ATSFontFormat iFormat, void * iReserved, ATSOptionFlags iOptions, ATSFontContainerRef * oContainer);
/*
* ATSFontDeactivate() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontDeactivate( ATSFontContainerRef iContainer, void * iRefCon, ATSOptionFlags iOptions);
/* ----------------------------------------------------------------------------------------- */ /* Font family */ /* ----------------------------------------------------------------------------------------- */ /*
* ATSFontFamilyApplyFunction() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFamilyApplyFunction( ATSFontFamilyApplierFunction iFunction, void * iRefCon);
/*
* ATSFontFamilyIteratorCreate() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFamilyIteratorCreate( ATSFontContext iContext, const ATSFontFilter * iFilter, /* can be NULL */ void * iRefCon, ATSOptionFlags iOptions, ATSFontFamilyIterator * ioIterator);
/*
* ATSFontFamilyIteratorRelease() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFamilyIteratorRelease(ATSFontFamilyIterator * ioIterator);
/*
* ATSFontFamilyIteratorReset() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFamilyIteratorReset( ATSFontContext iContext, const ATSFontFilter * iFilter, /* can be NULL */ void * iRefCon, ATSOptionFlags iOptions, ATSFontFamilyIterator * ioIterator);
/*
* ATSFontFamilyIteratorNext() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFamilyIteratorNext( ATSFontFamilyIterator iIterator, ATSFontFamilyRef * oFamily);
/*
* ATSFontFamilyFindFromName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ATSFontFamilyRef ) ATSFontFamilyFindFromName( CFStringRef iName, ATSOptionFlags iOptions);
/*
* ATSFontFamilyGetGeneration() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ATSGeneration ) ATSFontFamilyGetGeneration(ATSFontFamilyRef iFamily);
/*
* ATSFontFamilyGetName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFamilyGetName( ATSFontFamilyRef iFamily, ATSOptionFlags iOptions, CFStringRef * oName);
/*
* ATSFontFamilyGetEncoding() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( TextEncoding ) ATSFontFamilyGetEncoding(ATSFontFamilyRef iFamily);
/* ----------------------------------------------------------------------------------------- */ /* Font */ /* ----------------------------------------------------------------------------------------- */ /*
* ATSFontApplyFunction() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontApplyFunction( ATSFontApplierFunction iFunction, void * iRefCon);
/*
* ATSFontIteratorCreate() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontIteratorCreate( ATSFontContext iContext, const ATSFontFilter * iFilter, /* can be NULL */ void * iRefCon, ATSOptionFlags iOptions, ATSFontIterator * ioIterator);
/*
* ATSFontIteratorRelease() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontIteratorRelease(ATSFontIterator * ioIterator);
/*
* ATSFontIteratorReset() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontIteratorReset( ATSFontContext iContext, const ATSFontFilter * iFilter, /* can be NULL */ void * iRefCon, ATSOptionFlags iOptions, ATSFontIterator * ioIterator);
/*
* ATSFontIteratorNext() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontIteratorNext( ATSFontIterator iIterator, ATSFontRef * oFont);
/*
* ATSFontFindFromName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ATSFontRef ) ATSFontFindFromName( CFStringRef iName, ATSOptionFlags iOptions);
/*
* ATSFontFindFromPostScriptName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ATSFontRef ) ATSFontFindFromPostScriptName( CFStringRef iName, ATSOptionFlags iOptions);
/*
* ATSFontFindFromContainer() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFindFromContainer( ATSFontContainerRef iContainer, ATSOptionFlags iOptions, ItemCount iCount, ATSFontRef ioArray[], ItemCount * oCount);
/*
* ATSFontGetGeneration() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ATSGeneration ) ATSFontGetGeneration(ATSFontRef iFont);
/*
* ATSFontGetName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetName( ATSFontRef iFont, ATSOptionFlags iOptions, CFStringRef * oName);
/*
* ATSFontGetPostScriptName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetPostScriptName( ATSFontRef iFont, ATSOptionFlags iOptions, CFStringRef * oName);
/*
* ATSFontGetTableDirectory() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetTableDirectory( ATSFontRef iFont, ByteCount iBufferSize, void * ioBuffer, ByteCount * oSize); /* can be NULL */
/*
* ATSFontGetTable() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetTable( ATSFontRef iFont, FourCharCode iTag, ByteOffset iOffset, ByteCount iBufferSize, void * ioBuffer, ByteCount * oSize); /* can be NULL */
/*
* ATSFontGetHorizontalMetrics() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetHorizontalMetrics( ATSFontRef iFont, ATSOptionFlags iOptions, ATSFontMetrics * oMetrics);
/*
* ATSFontGetVerticalMetrics() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetVerticalMetrics( ATSFontRef iFont, ATSOptionFlags iOptions, ATSFontMetrics * oMetrics);
/* ----------------------------------------------------------------------------------------- */ /* Compatibility */ /* ----------------------------------------------------------------------------------------- */ /*
* ATSFontFamilyFindFromQuickDrawName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( ATSFontFamilyRef ) ATSFontFamilyFindFromQuickDrawName(ConstStr255Param iName);
/*
* ATSFontFamilyGetQuickDrawName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontFamilyGetQuickDrawName( ATSFontFamilyRef iFamily, Str255 oName);
/*
* ATSFontGetFileSpecification() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetFileSpecification( ATSFontRef iFont, FSSpec * oFile);
/*
* ATSFontGetFontFamilyResource() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSStatus ) ATSFontGetFontFamilyResource( ATSFontRef iFont, ByteCount iBufferSize, void * ioBuffer, ByteCount * oSize); /* can be NULL */
/* ----------------------------------------------------------------------------------------- */ /* Notification */ /* ----------------------------------------------------------------------------------------- */ /*
* ATSFontNotify() * * Summary: * Used to alert ATS that an action which may require notification * to clients has occurred. * * Parameters: * * action: * Action that should be taken by the ATS Server * * info: * Any required or optional information that may be required by * the action taken. * * Result: * noErr Action successfully reported paramErr Invalid action passed * * 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 ) ATSFontNotify( ATSFontNotifyAction action, void * info); /* can be NULL */
/*
* ATSFontNotificationSubscribe() * * Summary: * Ask the ATS System to notify caller when certain events have * occurred. Note that your application must have a CFRunLoop in * order to receive notifications. Any Appkit or Carbon event loop * based application will have one by default. * * Parameters: * * callback: * Function that will be called by the ATS system whenever an * event of interest takes place. * * options: * Set the wanted ATSFontNotificationOptions to modify the default * behavior of ATS Notifications. * * iRefcon: * User data/state which will be passed to the callback funtion * * oNotificationRef: * You may use this reference to un-subscribe to this notification. * * Result: * noErr Subscribed successfully paramErr NULL callback was passed. * memFullErr Could not allocate enough memory for internal data * structures. * * 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 ) ATSFontNotificationSubscribe( ATSNotificationCallback callback, ATSFontNotifyOption options, void * iRefcon, /* can be NULL */ ATSFontNotificationRef * oNotificationRef); /* can be NULL */
/*
* ATSFontNotificationUnsubscribe() * * Summary: * Release subscription and stop receiving notifications for a given * reference. * * Parameters: * * notificationRef: * Notification reference for which you want to stop receiving * notifications. Note, if more than one notification has been * requested of ATS, you will still receive notifications on those * requests. * * Result: * noErr Unsubscribed successfully paramErr NULL/invalid * notificationRef passed * * 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 ) ATSFontNotificationUnsubscribe(ATSFontNotificationRef notificationRef);
/* ----------------------------------------------------------------------------------------- */ /* Font query message hooks */ /* ----------------------------------------------------------------------------------------- */
/*
* ATSFontQuerySourceContext * * Summary: * A parameter block for client information to be retained by ATS * and passed back to an ATSFontQueryCallback function. */ struct ATSFontQuerySourceContext {
/*
* A 32-bit unsigned integer that indicates the version of this * structure. This should be set to 0. */ UInt32 version;
/*
* A pointer-sized client datum that should be passed back to an * ATSFontQueryCallback function. */ void * refCon;
/*
* The callback used to add a retain to the refCon. */ CFAllocatorRetainCallBack retain;
/*
* The callback used to remove a retain to the refCon. */ CFAllocatorReleaseCallBack release; }; typedef struct ATSFontQuerySourceContext ATSFontQuerySourceContext;
/*
* ATSFontQueryMessageID * * Discussion: * Constants for ATS font query message types. */ enum ATSFontQueryMessageID {
/*
* The message ID for a font request query. The data for a message * with this ID is a flattened CFDictionaryRef with keys and values * as decribed below. A query dictionary may have any or all of these * entries. */ kATSQueryActivateFontMessage = FOUR_CHAR_CODE('atsa') }; typedef enum ATSFontQueryMessageID ATSFontQueryMessageID;
/*
* ATSFontQueryCallback * * Summary: * Callback for receiving font-related queries from ATS. * * Parameters: * * msgid: * An ATSFontQueryMessageID that identifies the message type. * * data: * A CFPropertyListRef that represents the query. The content is * message type-specific. * * refCon: * A pointer-sized client datum that was optionally provided to * ATSCreateFontQueryRunLoopSource. * * Result: * A CFPropertyListRef that represents the message type-specific * response to the query. May be NULL. */ typedef CALLBACK_API_C( CFPropertyListRef , ATSFontQueryCallback )(ATSFontQueryMessageID msgid, CFPropertyListRef data, void *refCon); /*
* ATSCreateFontQueryRunLoopSource() * * Summary: * Creates a CFRunLoopSourceRef that will be used to convey font * queries from ATS. * * Parameters: * * queryOrder: * A CFIndex that specifies the priority of this query receiver * relative to others. When ATS makes a font query, it will send * the query to each receiver in priority order, from highest to * lowest. "Normal" priority is 0. * * sourceOrder: * The order of the created run loop source. * * callout: * A function pointer of type ATSFontQueryCallback that will be * called to process a font query. * * context: * An ATSFontQuerySourceContext parameter block that provides a * pointer-sized client datum which will be retained by ATS and * passed to the callout function. May be NULL. * * Result: * A CFRunLoopSourceRef. To stop receiving queries, invalidate this * run loop source. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.2 and later */ EXTERN_API_C( CFRunLoopSourceRef ) ATSCreateFontQueryRunLoopSource( CFIndex queryOrder, CFIndex sourceOrder, ATSFontQueryCallback callout, const ATSFontQuerySourceContext * context); /* can be NULL */
/* ----------------------------------------------------------------------------------------- */ /* Font request query message content */ /* ----------------------------------------------------------------------------------------- */ /* Keys in a font request query dictionary. */ /* These keys appear in the dictionary for a kATSQueryActivateFontMessage query. */
/*
* kATSQueryClientPID * * Discussion: * The process ID of the application making the query. The * corresponding value is a CFNumberRef that contains a pid_t. */ #define kATSQueryClientPID CFSTR("ATS client pid")
/*
* kATSQueryQDFamilyName * * Discussion: * The Quickdraw-style family name of the font being requested, e.g. * the name passed to GetFNum. The corresponding value is a * CFStringRef. */ #define kATSQueryQDFamilyName CFSTR("font family name")
/*
* kATSQueryFontName * * Discussion: * The name of the font being requested. The corresponding value is * a CFStringRef suitable as an argument to ATSFontFindFromName(). * This should match a candidate font's unique or full name. */ #define kATSQueryFontName CFSTR("font name")
/*
* kATSQueryFontPostScriptName * * Discussion: * The PostScript name of the font being requested. The * corresponding value is a CFStringRef suitable as an argument to * ATSFontFindFromPostScriptName(). This should match either the * PostScript name derived from the font's FOND resource or its sfnt * name table, with preference given to the FOND PostScript name. */ #define kATSQueryFontPostScriptName CFSTR("font PS name")
/*
* kATSQueryFontNameTableEntries * * Discussion: * A descriptor for sfnt name table entries that the requested font * must have. The corresponding value is a CFArrayRef of * CFDictionaryRefs that describe name table entries. A font must * have all of the specified entries to be considered a match. */ #define kATSQueryFontNameTableEntries CFSTR("font name table entries")
/* Keys in a font raw name descriptor dictionary. */
/*
* kATSFontNameTableCode * * Discussion: * The font name's name code. The corresponding value is a * CFNumberRef. If missing, assume kFontNoNameCode. */ #define kATSFontNameTableCode CFSTR("font name code")
/*
* kATSFontNameTablePlatform * * Discussion: * The font name's platform code. The corresponding value is a * CFNumberRef. If missing, assume kFontNoPlatformCode. */ #define kATSFontNameTablePlatform CFSTR("font platform code")
/*
* kATSFontNameTableScript * * Discussion: * The font name's script code. The corresponding value is a * CFNumberRef. If missing, assume kFontNoScriptCode. */ #define kATSFontNameTableScript CFSTR("font script code")
/*
* kATSFontNameTableLanguage * * Discussion: * The font name's language code. The corresponding value is a * CFNumberRef. If missing, assume kFontNoLanguageCode. */ #define kATSFontNameTableLanguage CFSTR("font language code")
/*
* kATSFontNameTableBytes * * Discussion: * The raw bytes of the font name. The corresponding value is a * CFDataRef that contains the raw name bytes. */ #define kATSFontNameTableBytes CFSTR("font name table bytes")
#if PRAGMA_ENUM_ALWAYSINT
#pragma enumsalwaysint reset
#ifdef __ATSFONT__RESTORE_TWOBYTEINTS
#pragma fourbyteints off
#endif
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=reset
#elif defined(__ATSFONT__RESTORE_PACKED_ENUMS)
#pragma options(pack_enums)
#endif
#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
#endif /* __ATSFONT__ */
|