Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  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 */
  275.