Home | History | Annotate | Download | only in services
      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 */
     82