| /***************************************************************************/ |
| /* */ |
| /* svprop.h */ |
| /* */ |
| /* The FreeType property service (specification). */ |
| /* */ |
| /* Copyright 2012 by */ |
| /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
| /* */ |
| /* This file is part of the FreeType project, and may only be used, */ |
| /* modified, and distributed under the terms of the FreeType project */ |
| /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
| /* this file you indicate that you have read the license and */ |
| /* understand and accept it fully. */ |
| /* */ |
| /***************************************************************************/ |
| |
| |
| #ifndef __SVPROP_H__ |
| #define __SVPROP_H__ |
| |
| |
| FT_BEGIN_HEADER |
| |
| |
| #define FT_SERVICE_ID_PROPERTIES "properties" |
| |
| |
| typedef FT_Error |
| (*FT_Properties_SetFunc)( FT_Module module, |
| const char* property_name, |
| const void* value ); |
| |
| typedef FT_Error |
| (*FT_Properties_GetFunc)( FT_Module module, |
| const char* property_name, |
| void* value ); |
| |
| |
| FT_DEFINE_SERVICE( Properties ) |
| { |
| FT_Properties_SetFunc set_property; |
| FT_Properties_GetFunc get_property; |
| }; |
| |
| |
| #ifndef FT_CONFIG_OPTION_PIC |
| |
| #define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ |
| set_property_, \ |
| get_property_ ) \ |
| static const FT_Service_PropertiesRec class_ = \ |
| { \ |
| set_property_, \ |
| get_property_ \ |
| }; |
| |
| #else /* FT_CONFIG_OPTION_PIC */ |
| |
| #define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ |
| set_property_, \ |
| get_property_ ) \ |
| void \ |
| FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \ |
| { \ |
| clazz->set_property = set_property_; \ |
| clazz->get_property = get_property_; \ |
| } |
| |
| #endif /* FT_CONFIG_OPTION_PIC */ |
| |
| /* */ |
| |
| |
| FT_END_HEADER |
| |
| |
| #endif /* __SVPROP_H__ */ |
| |
| |
| /* END */ |