misc/libfreetype/include/freetype/ftmac.h
changeset 5172 88f2e05288ba
equal deleted inserted replaced
5171:f9283dc4860d 5172:88f2e05288ba
       
     1 /***************************************************************************/
       
     2 /*                                                                         */
       
     3 /*  ftmac.h                                                                */
       
     4 /*                                                                         */
       
     5 /*    Additional Mac-specific API.                                         */
       
     6 /*                                                                         */
       
     7 /*  Copyright 1996-2001, 2004, 2006, 2007 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 <freetype/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 which 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 */