Home | History | Annotate | Download | only in services
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  svprop.h                                                               */
      4 /*                                                                         */
      5 /*    The FreeType property service (specification).                       */
      6 /*                                                                         */
      7 /*  Copyright 2012-2018 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 SVPROP_H_
     20 #define SVPROP_H_
     21 
     22 
     23 FT_BEGIN_HEADER
     24 
     25 
     26 #define FT_SERVICE_ID_PROPERTIES  "properties"
     27 
     28 
     29   typedef FT_Error
     30   (*FT_Properties_SetFunc)( FT_Module    module,
     31                             const char*  property_name,
     32                             const void*  value,
     33                             FT_Bool      value_is_string );
     34 
     35   typedef FT_Error
     36   (*FT_Properties_GetFunc)( FT_Module    module,
     37                             const char*  property_name,
     38                             void*        value );
     39 
     40 
     41   FT_DEFINE_SERVICE( Properties )
     42   {
     43     FT_Properties_SetFunc  set_property;
     44     FT_Properties_GetFunc  get_property;
     45   };
     46 
     47 
     48 #ifndef FT_CONFIG_OPTION_PIC
     49 
     50 #define FT_DEFINE_SERVICE_PROPERTIESREC( class_,          \
     51                                          set_property_,   \
     52                                          get_property_ )  \
     53   static const FT_Service_PropertiesRec  class_ =         \
     54   {                                                       \
     55     set_property_,                                        \
     56     get_property_                                         \
     57   };
     58 
     59 #else /* FT_CONFIG_OPTION_PIC */
     60 
     61 #define FT_DEFINE_SERVICE_PROPERTIESREC( class_,                \
     62                                          set_property_,         \
     63                                          get_property_ )        \
     64   void                                                          \
     65   FT_Init_Class_ ## class_( FT_Service_PropertiesRec*  clazz )  \
     66   {                                                             \
     67     clazz->set_property = set_property_;                        \
     68     clazz->get_property = get_property_;                        \
     69   }
     70 
     71 #endif /* FT_CONFIG_OPTION_PIC */
     72 
     73   /* */
     74 
     75 
     76 FT_END_HEADER
     77 
     78 
     79 #endif /* SVPROP_H_ */
     80 
     81 
     82 /* END */
     83