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