ftmac.h revision ec0bab5697bb31ba980810145f62e3799946ec60
1b4542e99ca8562aa584e15df8ef35356ff8c10feElliott Hughes/***************************************************************************/
2427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*                                                                         */
3427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*  ftmac.h                                                                */
4427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*                                                                         */
5427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*    Additional Mac-specific API.                                         */
6427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*                                                                         */
7427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*  Copyright 1996-2001, 2004, 2006, 2007, 2013 by                         */
8427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*  Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.     */
9427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*                                                                         */
10427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*  This file is part of the FreeType project, and may only be used,       */
11b4542e99ca8562aa584e15df8ef35356ff8c10feElliott Hughes/*  modified, and distributed under the terms of the FreeType project      */
12b4542e99ca8562aa584e15df8ef35356ff8c10feElliott Hughes/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13b4542e99ca8562aa584e15df8ef35356ff8c10feElliott Hughes/*  this file you indicate that you have read the license and              */
14b4542e99ca8562aa584e15df8ef35356ff8c10feElliott Hughes/*  understand and accept it fully.                                        */
15b4542e99ca8562aa584e15df8ef35356ff8c10feElliott Hughes/*                                                                         */
16427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/***************************************************************************/
17427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
18427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
19427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/***************************************************************************/
20427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*                                                                         */
21427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/* NOTE: Include this file after FT_FREETYPE_H and after any               */
22427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*       Mac-specific headers (because this header uses Mac types such as  */
23427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*       Handle, FSSpec, FSRef, etc.)                                      */
24427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/*                                                                         */
25427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/***************************************************************************/
26427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
27427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
28427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes#ifndef __FTMAC_H__
29427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes#define __FTMAC_H__
30427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
31427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
32427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes#include <ft2build.h>
33427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
34427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
35427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott HughesFT_BEGIN_HEADER
36427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
37427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes
38427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes/* gcc-3.4.1 and later can warn about functions tagged as deprecated */
39427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes#ifndef FT_DEPRECATED_ATTRIBUTE
40427d76ccc44aea287b51b233f0254a6107b2b3d1Elliott Hughes#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
268FT_END_HEADER
269
270
271#endif /* __FTMAC_H__ */
272
273
274/* END */
275