/*
     File:       GXFonts.h
 
     Contains:   QuickDraw GX font routine interfaces.
 
     Version:    Technology: Quickdraw GX 1.1
                 Release:    Universal Interfaces 3.4
 
     Copyright:  © 1994-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 __GXFONTS__
#define __GXFONTS__

#ifndef __CONDITIONALMACROS__
#include <ConditionalMacros.h>
#endif

#ifndef __GXMATH__
#include <GXMath.h>
#endif

#ifndef __GXTYPES__
#include <GXTypes.h>
#endif

#ifndef __SCALERSTREAMTYPES__
#include <ScalerStreamTypes.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 defined(__MWERKS__) && TARGET_CPU_68K
    #pragma push
    #pragma pointers_in_D0
#endif
 
#if CALL_NOT_IN_CARBON
/*
 *  GXNewFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFont )
GXNewFont(
  gxFontStorageTag         storage,
  gxFontStorageReference   reference,
  gxFontAttribute          attributes)                        THREEWORDINLINE(0x303C, 0x0201, 0xA832);


/*
 *  GXGetFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontStorageTag )
GXGetFont(
  gxFont                    fontID,
  gxFontStorageReference *  reference,
  gxFontAttribute *         attributes)                       THREEWORDINLINE(0x303C, 0x0202, 0xA832);


/*
 *  GXFindFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFont )
GXFindFont(
  gxFontStorageTag         storage,
  gxFontStorageReference   reference,
  gxFontAttribute *        attributes)                        THREEWORDINLINE(0x303C, 0x0203, 0xA832);


/*
 *  GXSetFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( void )
GXSetFont(
  gxFont                   fontID,
  gxFontStorageTag         storage,
  gxFontStorageReference   reference,
  gxFontAttribute          attributes)                        THREEWORDINLINE(0x303C, 0x0204, 0xA832);


/*
 *  GXDisposeFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( void )
GXDisposeFont(gxFont fontID)                                  THREEWORDINLINE(0x303C, 0x0205, 0xA832);


/*
 *  GXChangedFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( void )
GXChangedFont(gxFont fontID)                                  THREEWORDINLINE(0x303C, 0x0206, 0xA832);


/*
 *  GXGetFontFormat()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontFormatTag )
GXGetFontFormat(gxFont fontID)                                THREEWORDINLINE(0x303C, 0x0207, 0xA832);


/*
 *  GXGetDefaultFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFont )
GXGetDefaultFont(void)                                        THREEWORDINLINE(0x303C, 0x0208, 0xA832);


/*
 *  GXSetDefaultFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFont )
GXSetDefaultFont(gxFont fontID)                               THREEWORDINLINE(0x303C, 0x0209, 0xA832);


/*
 *  GXFindFonts()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXFindFonts(
  gxFont                familyID,
  gxFontName            name,
  gxFontPlatform        platform,
  gxFontScript          script,
  gxFontLanguage        language,
  long                  length,
  const unsigned char   text[],
  long                  index,
  long                  count,
  gxFont                fonts[])                              THREEWORDINLINE(0x303C, 0x020A, 0xA832);


/*
 *  GXCountFontGlyphs()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontGlyphs(gxFont fontID)                              THREEWORDINLINE(0x303C, 0x020B, 0xA832);


/*
 *  GXCountFontTables()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontTables(gxFont fontID)                              THREEWORDINLINE(0x303C, 0x020C, 0xA832);


/*
 *  GXGetFontTable()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXGetFontTable(
  gxFont            fontID,
  long              index,
  void *            tableData,
  gxFontTableTag *  tableTag)                                 THREEWORDINLINE(0x303C, 0x020D, 0xA832);


/*
 *  GXFindFontTable()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXFindFontTable(
  gxFont           fontID,
  gxFontTableTag   tableTag,
  void *           tableData,
  long *           index)                                     THREEWORDINLINE(0x303C, 0x020E, 0xA832);


/*
 *  GXGetFontTableParts()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXGetFontTableParts(
  gxFont            fontID,
  long              index,
  long              offset,
  long              length,
  void *            tableData,
  gxFontTableTag *  tableTag)                                 THREEWORDINLINE(0x303C, 0x020F, 0xA832);


/*
 *  GXFindFontTableParts()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXFindFontTableParts(
  gxFont           fontID,
  gxFontTableTag   tableTag,
  long             offset,
  long             length,
  void *           tableData,
  long *           index)                                     THREEWORDINLINE(0x303C, 0x0210, 0xA832);


/*
 *  GXSetFontTable()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXSetFontTable(
  gxFont           fontID,
  long             index,
  gxFontTableTag   tableTag,
  long             length,
  const void *     tableData)                                 THREEWORDINLINE(0x303C, 0x0211, 0xA832);


/*
 *  GXSetFontTableParts()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXSetFontTableParts(
  gxFont           fontID,
  long             index,
  gxFontTableTag   tableTag,
  long             offset,
  long             oldLength,
  long             newLength,
  const void *     tableData)                                 THREEWORDINLINE(0x303C, 0x0212, 0xA832);


/*
 *  GXDeleteFontTable()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXDeleteFontTable(
  gxFont           fontID,
  long             index,
  gxFontTableTag   tableTag)                                  THREEWORDINLINE(0x303C, 0x0213, 0xA832);


/*
 *  GXCountFontNames()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontNames(gxFont fontID)                               THREEWORDINLINE(0x303C, 0x0214, 0xA832);


/*
 *  GXGetFontName()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXGetFontName(
  gxFont            fontID,
  long              index,
  gxFontName *      name,
  gxFontPlatform *  platform,
  gxFontScript *    script,
  gxFontLanguage *  language,
  unsigned char     text[])                                   THREEWORDINLINE(0x303C, 0x0215, 0xA832);


/*
 *  GXFindFontName()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXFindFontName(
  gxFont           fontID,
  gxFontName       name,
  gxFontPlatform   platform,
  gxFontScript     script,
  gxFontLanguage   language,
  unsigned char    text[],
  long *           index)                                     THREEWORDINLINE(0x303C, 0x0216, 0xA832);


/*
 *  GXSetFontName()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXSetFontName(
  gxFont                fontID,
  gxFontName            name,
  gxFontPlatform        platform,
  gxFontScript          script,
  gxFontLanguage        language,
  long                  length,
  const unsigned char   text[])                               THREEWORDINLINE(0x303C, 0x0217, 0xA832);


/*
 *  GXDeleteFontName()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXDeleteFontName(
  gxFont           fontID,
  long             index,
  gxFontName       name,
  gxFontPlatform   platform,
  gxFontScript     script,
  gxFontLanguage   language)                                  THREEWORDINLINE(0x303C, 0x0218, 0xA832);


/*
 *  GXNewFontNameID()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontName )
GXNewFontNameID(gxFont fontID)                                THREEWORDINLINE(0x303C, 0x0219, 0xA832);


/*
 *  GXCountFontEncodings()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontEncodings(gxFont fontID)                           THREEWORDINLINE(0x303C, 0x021A, 0xA832);


/*
 *  GXGetFontEncoding()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontPlatform )
GXGetFontEncoding(
  gxFont            fontID,
  long              index,
  gxFontScript *    script,
  gxFontLanguage *  language)                                 THREEWORDINLINE(0x303C, 0x021B, 0xA832);


/*
 *  GXFindFontEncoding()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXFindFontEncoding(
  gxFont           fontID,
  gxFontPlatform   platform,
  gxFontScript     script,
  gxFontLanguage   language)                                  THREEWORDINLINE(0x303C, 0x021C, 0xA832);


/*
 *  GXApplyFontEncoding()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXApplyFontEncoding(
  gxFont                fontID,
  long                  index,
  long *                length,
  const unsigned char   text[],
  long                  count,
  unsigned short        glyphs[],
  char                  was16Bit[])                           THREEWORDINLINE(0x303C, 0x021D, 0xA832);


/*
 *  GXCountFontVariations()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontVariations(gxFont fontID)                          THREEWORDINLINE(0x303C, 0x021E, 0xA832);


/*
 *  GXFindFontVariation()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXFindFontVariation(
  gxFont               fontID,
  gxFontVariationTag   variationTag,
  Fixed *              minValue,
  Fixed *              defaultValue,
  Fixed *              maxValue,
  gxFontName *         name)                                  THREEWORDINLINE(0x303C, 0x021F, 0xA832);


/*
 *  GXGetFontVariation()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontVariationTag )
GXGetFontVariation(
  gxFont        fontID,
  long          index,
  Fixed *       minValue,
  Fixed *       defaultValue,
  Fixed *       maxValue,
  gxFontName *  name)                                         THREEWORDINLINE(0x303C, 0x0220, 0xA832);


/*
 *  GXCountFontInstances()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontInstances(gxFont fontID)                           THREEWORDINLINE(0x303C, 0x0221, 0xA832);


/*
 *  GXGetFontInstance()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontName )
GXGetFontInstance(
  gxFont            fontID,
  long              index,
  gxFontVariation   variation[])                              THREEWORDINLINE(0x303C, 0x0222, 0xA832);


/*
 *  GXSetFontInstance()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXSetFontInstance(
  gxFont                  fontID,
  long                    index,
  gxFontName              name,
  const gxFontVariation   variation[])                        THREEWORDINLINE(0x303C, 0x0223, 0xA832);


/*
 *  GXDeleteFontInstance()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXDeleteFontInstance(
  gxFont       fontID,
  long         index,
  gxFontName   name)                                          THREEWORDINLINE(0x303C, 0x0224, 0xA832);


/*
 *  GXCountFontDescriptors()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontDescriptors(gxFont fontID)                         THREEWORDINLINE(0x303C, 0x0225, 0xA832);


/*
 *  GXGetFontDescriptor()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontDescriptorTag )
GXGetFontDescriptor(
  gxFont   fontID,
  long     index,
  Fixed *  descriptorValue)                                   THREEWORDINLINE(0x303C, 0x0226, 0xA832);


/*
 *  GXFindFontDescriptor()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXFindFontDescriptor(
  gxFont                fontID,
  gxFontDescriptorTag   descriptorTag,
  Fixed *               descriptorValue)                      THREEWORDINLINE(0x303C, 0x0227, 0xA832);


/*
 *  GXSetFontDescriptor()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXSetFontDescriptor(
  gxFont                fontID,
  long                  index,
  gxFontDescriptorTag   descriptorTag,
  Fixed                 descriptorValue)                      THREEWORDINLINE(0x303C, 0x0228, 0xA832);


/*
 *  GXDeleteFontDescriptor()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXDeleteFontDescriptor(
  gxFont                fontID,
  long                  index,
  gxFontDescriptorTag   descriptorTag)                        THREEWORDINLINE(0x303C, 0x0229, 0xA832);


/*
 *  GXCountFontFeatures()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXCountFontFeatures(gxFont fontID)                            THREEWORDINLINE(0x303C, 0x022A, 0xA832);


/*
 *  GXGetFontFeature()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontName )
GXGetFontFeature(
  gxFont                 fontID,
  long                   index,
  gxFontFeatureFlag *    flags,
  long *                 settingCount,
  gxFontFeatureSetting   settings[],
  gxFontFeature *        feature)                             THREEWORDINLINE(0x303C, 0x022B, 0xA832);


/*
 *  GXFindFontFeature()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( gxFontName )
GXFindFontFeature(
  gxFont                 fontID,
  gxFontFeature          feature,
  gxFontFeatureFlag *    flags,
  long *                 settingCount,
  gxFontFeatureSetting   settings[],
  long *                 index)                               THREEWORDINLINE(0x303C, 0x022C, 0xA832);


/*
 *  GXGetFontDefaultFeatures()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( long )
GXGetFontDefaultFeatures(
  gxFont         fontID,
  gxRunFeature   features[])                                  THREEWORDINLINE(0x303C, 0x0274, 0xA832);


/*
 *  GXFlattenFont()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         not available
 */
EXTERN_API_C( void )
GXFlattenFont(
  gxFont          source,
  scalerStream *  stream,
  gxSpoolBlock *  block)                                      THREEWORDINLINE(0x303C, 0x022D, 0xA832);



#endif  /* CALL_NOT_IN_CARBON */

 
#if defined(__MWERKS__) && TARGET_CPU_68K
    #pragma pop
#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 /* __GXFONTS__ */

