Home | History | Annotate | Download | only in include
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  ftmac.h                                                                */
      4 /*                                                                         */
      5 /*    Additional Mac-specific API.                                         */
      6 /*                                                                         */
      7 /*  Copyright 1996-2015 by                                                 */
      8 /*  Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.     */
      9 /*                                                                         */
     10 /*  This file is part of the FreeType project, and may only be used,       */
     11 /*  modified, and distributed under the terms of the FreeType project      */
     12 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
     13 /*  this file you indicate that you have read the license and              */
     14 /*  understand and accept it fully.                                        */
     15 /*                                                                         */
     16 /***************************************************************************/
     17 
     18 
     19 /***************************************************************************/
     20 /*                                                                         */
     21 /* NOTE: Include this file after FT_FREETYPE_H and after any               */
     22 /*       Mac-specific headers (because this header uses Mac types such as  */
     23 /*       Handle, FSSpec, FSRef, etc.)                                      */
     24 /*                                                                         */
     25 /***************************************************************************/
     26 
     27 
     28 #ifndef __FTMAC_H__
     29 #define __FTMAC_H__
     30 
     31 
     32 #include <ft2build.h>
     33 
     34 
     35 FT_BEGIN_HEADER
     36 
     37 
     38 /* gcc-3.4.1 and later can warn about functions tagged as deprecated */
     39 #ifndef FT_DEPRECATED_ATTRIBUTE
     40 #if defined(__GNUC__)                                               && \
     41     ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
     42 #define FT_DEPRECATED_ATTRIBUTE  __attribute__((deprecated))
     43 #else
     44 #define FT_DEPRECATED_ATTRIBUTE
     45 #endif
     46 #endif
     47 
     48 
     49   /*************************************************************************/
     50   /*                                                                       */
     51   /* <Section>                                                             */
     52   /*    mac_specific                                                       */
     53   /*                                                                       */
     54   /* <Title>                                                               */
     55   /*    Mac Specific Interface                                             */
     56   /*                                                                       */
     57   /* <Abstract>                                                            */
     58   /*    Only available on the Macintosh.                                   */
     59   /*                                                                       */
     60   /* <Description>                                                         */
     61   /*    The following definitions are only available if FreeType is        */
     62   /*    compiled on a Macintosh.                                           */
     63   /*                                                                       */
     64   /*************************************************************************/
     65 
     66 
     67   /*************************************************************************/
     68   /*                                                                       */
     69   /* <Function>                                                            */
     70   /*    FT_New_Face_From_FOND                                              */
     71   /*                                                                       */
     72   /* <Description>                                                         */
     73   /*    Create a new face object from a FOND resource.                     */
     74   /*                                                                       */
     75   /* <InOut>                                                               */
     76   /*    library    :: A handle to the library resource.                    */
     77   /*                                                                       */
     78   /* <Input>                                                               */
     79   /*    fond       :: A FOND resource.                                     */
     80   /*                                                                       */
     81   /*    face_index :: Only supported for the -1 `sanity check' special     */
     82   /*                  case.                                                */
     83   /*                                                                       */
     84   /* <Output>                                                              */
     85   /*    aface      :: A handle to a new face object.                       */
     86   /*                                                                       */
     87   /* <Return>                                                              */
     88   /*    FreeType error code.  0~means success.                             */
     89   /*                                                                       */
     90   /* <Notes>                                                               */
     91   /*    This function can be used to create @FT_Face objects from fonts    */
     92   /*    that are installed in the system as follows.                       */
     93   /*                                                                       */
     94   /*    {                                                                  */
     95   /*      fond = GetResource( 'FOND', fontName );                          */
     96   /*      error = FT_New_Face_From_FOND( library, fond, 0, &face );        */
     97   /*    }                                                                  */
     98   /*                                                                       */
     99   FT_EXPORT( FT_Error )
    100   FT_New_Face_From_FOND( FT_Library  library,
    101                          Handle      fond,
    102                          FT_Long     face_index,
    103                          FT_Face    *aface )
    104                        FT_DEPRECATED_ATTRIBUTE;
    105 
    106 
    107   /*************************************************************************/
    108   /*                                                                       */
    109   /* <Function>                                                            */
    110   /*    FT_GetFile_From_Mac_Name                                           */
    111   /*                                                                       */
    112   /* <Description>                                                         */
    113   /*    Return an FSSpec for the disk file containing the named font.      */
    114   /*                                                                       */
    115   /* <Input>                                                               */
    116   /*    fontName   :: Mac OS name of the font (e.g., Times New Roman       */
    117   /*                  Bold).                                               */
    118   /*                                                                       */
    119   /* <Output>                                                              */
    120   /*    pathSpec   :: FSSpec to the file.  For passing to                  */
    121   /*                  @FT_New_Face_From_FSSpec.                            */
    122   /*                                                                       */
    123   /*    face_index :: Index of the face.  For passing to                   */
    124   /*                  @FT_New_Face_From_FSSpec.                            */
    125   /*                                                                       */
    126   /* <Return>                                                              */
    127   /*    FreeType error code.  0~means success.                             */
    128   /*                                                                       */
    129   FT_EXPORT( FT_Error )
    130   FT_GetFile_From_Mac_Name( const char*  fontName,
    131                             FSSpec*      pathSpec,
    132                             FT_Long*     face_index )
    133                           FT_DEPRECATED_ATTRIBUTE;
    134 
    135 
    136   /*************************************************************************/
    137   /*                                                                       */
    138   /* <Function>                                                            */
    139   /*    FT_GetFile_From_Mac_ATS_Name                                       */
    140   /*                                                                       */
    141   /* <Description>                                                         */
    142   /*    Return an FSSpec for the disk file containing the named font.      */
    143   /*                                                                       */
    144   /* <Input>                                                               */
    145   /*    fontName   :: Mac OS name of the font in ATS framework.            */
    146   /*                                                                       */
    147   /* <Output>                                                              */
    148   /*    pathSpec   :: FSSpec to the file. For passing to                   */
    149   /*                  @FT_New_Face_From_FSSpec.                            */
    150   /*                                                                       */
    151   /*    face_index :: Index of the face. For passing to                    */
    152   /*                  @FT_New_Face_From_FSSpec.                            */
    153   /*                                                                       */
    154   /* <Return>                                                              */
    155   /*    FreeType error code.  0~means success.                             */
    156   /*                                                                       */
    157   FT_EXPORT( FT_Error )
    158   FT_GetFile_From_Mac_ATS_Name( const char*  fontName,
    159                                 FSSpec*      pathSpec,
    160                                 FT_Long*     face_index )
    161                               FT_DEPRECATED_ATTRIBUTE;
    162 
    163 
    164   /*************************************************************************/
    165   /*                                                                       */
    166   /* <Function>                                                            */
    167   /*    FT_GetFilePath_From_Mac_ATS_Name                                   */
    168   /*                                                                       */
    169   /* <Description>                                                         */
    170   /*    Return a pathname of the disk file and face index for given font   */
    171   /*    name that is handled by ATS framework.                             */
    172   /*                                                                       */
    173   /* <Input>                                                               */
    174   /*    fontName    :: Mac OS name of the font in ATS framework.           */
    175   /*                                                                       */
    176   /* <Output>                                                              */
    177   /*    path        :: Buffer to store pathname of the file.  For passing  */
    178   /*                   to @FT_New_Face.  The client must allocate this     */
    179   /*                   buffer before calling this function.                */
    180   /*                                                                       */
    181   /*    maxPathSize :: Lengths of the buffer `path' that client allocated. */
    182   /*                                                                       */
    183   /*    face_index  :: Index of the face.  For passing to @FT_New_Face.    */
    184   /*                                                                       */
    185   /* <Return>                                                              */
    186   /*    FreeType error code.  0~means success.                             */
    187   /*                                                                       */
    188   FT_EXPORT( FT_Error )
    189   FT_GetFilePath_From_Mac_ATS_Name( const char*  fontName,
    190                                     UInt8*       path,
    191                                     UInt32       maxPathSize,
    192                                     FT_Long*     face_index )
    193                                   FT_DEPRECATED_ATTRIBUTE;
    194 
    195 
    196   /*************************************************************************/
    197   /*                                                                       */
    198   /* <Function>                                                            */
    199   /*    FT_New_Face_From_FSSpec                                            */
    200   /*                                                                       */
    201   /* <Description>                                                         */
    202   /*    Create a new face object from a given resource and typeface index  */
    203   /*    using an FSSpec to the font file.                                  */
    204   /*                                                                       */
    205   /* <InOut>                                                               */
    206   /*    library    :: A handle to the library resource.                    */
    207   /*                                                                       */
    208   /* <Input>                                                               */
    209   /*    spec       :: FSSpec to the font file.                             */
    210   /*                                                                       */
    211   /*    face_index :: The index of the face within the resource.  The      */
    212   /*                  first face has index~0.                              */
    213   /* <Output>                                                              */
    214   /*    aface      :: A handle to a new face object.                       */
    215   /*                                                                       */
    216   /* <Return>                                                              */
    217   /*    FreeType error code.  0~means success.                             */
    218   /*                                                                       */
    219   /* <Note>                                                                */
    220   /*    @FT_New_Face_From_FSSpec is identical to @FT_New_Face except       */
    221   /*    it accepts an FSSpec instead of a path.                            */
    222   /*                                                                       */
    223   FT_EXPORT( FT_Error )
    224   FT_New_Face_From_FSSpec( FT_Library     library,
    225                            const FSSpec  *spec,
    226                            FT_Long        face_index,
    227                            FT_Face       *aface )
    228                          FT_DEPRECATED_ATTRIBUTE;
    229 
    230 
    231   /*************************************************************************/
    232   /*                                                                       */
    233   /* <Function>                                                            */
    234   /*    FT_New_Face_From_FSRef                                             */
    235   /*                                                                       */
    236   /* <Description>                                                         */
    237   /*    Create a new face object from a given resource and typeface index  */
    238   /*    using an FSRef to the font file.                                   */
    239   /*                                                                       */
    240   /* <InOut>                                                               */
    241   /*    library    :: A handle to the library resource.                    */
    242   /*                                                                       */
    243   /* <Input>                                                               */
    244   /*    spec       :: FSRef to the font file.                              */
    245   /*                                                                       */
    246   /*    face_index :: The index of the face within the resource.  The      */
    247   /*                  first face has index~0.                              */
    248   /* <Output>                                                              */
    249   /*    aface      :: A handle to a new face object.                       */
    250   /*                                                                       */
    251   /* <Return>                                                              */
    252   /*    FreeType error code.  0~means success.                             */
    253   /*                                                                       */
    254   /* <Note>                                                                */
    255   /*    @FT_New_Face_From_FSRef is identical to @FT_New_Face except        */
    256   /*    it accepts an FSRef instead of a path.                             */
    257   /*                                                                       */
    258   FT_EXPORT( FT_Error )
    259   FT_New_Face_From_FSRef( FT_Library    library,
    260                           const FSRef  *ref,
    261                           FT_Long       face_index,
    262                           FT_Face      *aface )
    263                         FT_DEPRECATED_ATTRIBUTE;
    264 
    265   /* */
    266 
    267 
    268 FT_END_HEADER
    269 
    270 
    271 #endif /* __FTMAC_H__ */
    272 
    273 
    274 /* END */
    275