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 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 #ifndef FT_CONFIG_OPTION_PIC
     50 
     51 #define FT_DEFINE_SERVICE_PSFONTNAMEREC(class_, get_ps_font_name_) \
     52   static const FT_Service_PsFontNameRec class_ =                   \
     53   {                                                                \
     54     get_ps_font_name_                                              \
     55   };
     56 
     57 #else /* FT_CONFIG_OPTION_PIC */
     58 
     59 #define FT_DEFINE_SERVICE_PSFONTNAMEREC(class_, get_ps_font_name_) \
     60   void                                                             \
     61   FT_Init_Class_##class_( FT_Library library,                      \
     62                           FT_Service_PsFontNameRec* clazz)         \
     63   {                                                                \
     64     FT_UNUSED(library);                                            \
     65     clazz->get_ps_font_name = get_ps_font_name_;                   \
     66   }
     67 
     68 #endif /* FT_CONFIG_OPTION_PIC */
     69 
     70   /* */
     71 
     72 
     73 FT_END_HEADER
     74 
     75 
     76 #endif /* __SVPOSTNM_H__ */
     77 
     78 
     79 /* END */
     80