* Sync up to trunk HEAD (r62502).
[reactos.git] / lib / 3rdparty / freetype / include / internal / services / svprop.h
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
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
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
75 FT_END_HEADER
76
77
78 #endif /* __SVPROP_H__ */
79
80
81 /* END */