tizen 2.3.1 release
[framework/graphics/freetype.git] / include / internal / services / svpostnm.h
1 /***************************************************************************/
2 /*                                                                         */
3 /*  svpostnm.h                                                             */
4 /*                                                                         */
5 /*    The FreeType PostScript name services (specification).               */
6 /*                                                                         */
7 /*  Copyright 2003, 2007, 2009, 2012 by                                    */
8 /*  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 #ifndef __SVPOSTNM_H__
20 #define __SVPOSTNM_H__
21
22 #include FT_INTERNAL_SERVICE_H
23
24
25 FT_BEGIN_HEADER
26
27   /*
28    *  A trivial service used to retrieve the PostScript name of a given
29    *  font when available.  The `get_name' field should never be NULL.
30    *
31    *  The corresponding function can return NULL to indicate that the
32    *  PostScript name is not available.
33    *
34    *  The name is owned by the face and will be destroyed with it.
35    */
36
37 #define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME  "postscript-font-name"
38
39
40   typedef const char*
41   (*FT_PsName_GetFunc)( FT_Face  face );
42
43
44   FT_DEFINE_SERVICE( PsFontName )
45   {
46     FT_PsName_GetFunc  get_ps_font_name;
47   };
48
49
50 #ifndef FT_CONFIG_OPTION_PIC
51
52 #define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \
53   static const FT_Service_PsFontNameRec  class_ =                    \
54   {                                                                  \
55     get_ps_font_name_                                                \
56   };
57
58 #else /* FT_CONFIG_OPTION_PIC */
59
60 #define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \
61   void                                                               \
62   FT_Init_Class_ ## class_( FT_Library                 library,      \
63                             FT_Service_PsFontNameRec*  clazz )       \
64   {                                                                  \
65     FT_UNUSED( library );                                            \
66                                                                      \
67     clazz->get_ps_font_name = get_ps_font_name_;                     \
68   }
69
70 #endif /* FT_CONFIG_OPTION_PIC */
71
72   /* */
73
74
75 FT_END_HEADER
76
77
78 #endif /* __SVPOSTNM_H__ */
79
80
81 /* END */