1727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/***************************************************************************/ 2727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* */ 3727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* svprop.h */ 4727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* */ 5727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* The FreeType property service (specification). */ 6727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* */ 7727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* Copyright 2012 by */ 8727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* */ 10727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* This file is part of the FreeType project, and may only be used, */ 11727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* modified, and distributed under the terms of the FreeType project */ 12727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* this file you indicate that you have read the license and */ 14727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* understand and accept it fully. */ 15727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* */ 16727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/***************************************************************************/ 17727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 18727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 19727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#ifndef __SVPROP_H__ 20727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define __SVPROP_H__ 21727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 22727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 23727dee178a392d20eb050d0c446f2fcc29058fa1Victoria LeaseFT_BEGIN_HEADER 24727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 25727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 26727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_SERVICE_ID_PROPERTIES "properties" 27727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 28727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 29727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef FT_Error 30727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease (*FT_Properties_SetFunc)( FT_Module module, 31727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease const char* property_name, 32727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease const void* value ); 33727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 34727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef FT_Error 35727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease (*FT_Properties_GetFunc)( FT_Module module, 36727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease const char* property_name, 37727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease void* value ); 38727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 39727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 40727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_DEFINE_SERVICE( Properties ) 41727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease { 42727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_Properties_SetFunc set_property; 43727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_Properties_GetFunc get_property; 44727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease }; 45727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 46727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 47727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#ifndef FT_CONFIG_OPTION_PIC 48727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 49727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ 50727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease set_property_, \ 51727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_property_ ) \ 52727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease static const FT_Service_PropertiesRec class_ = \ 53727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease { \ 54727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease set_property_, \ 55727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_property_ \ 56727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease }; 57727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 58727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#else /* FT_CONFIG_OPTION_PIC */ 59727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 60727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ 61727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease set_property_, \ 62727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease get_property_ ) \ 63727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease void \ 64727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \ 65727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease { \ 66727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease clazz->set_property = set_property_; \ 67727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease clazz->get_property = get_property_; \ 68727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease } 69727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 70727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#endif /* FT_CONFIG_OPTION_PIC */ 71727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 72727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* */ 73727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 74727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 75727dee178a392d20eb050d0c446f2fcc29058fa1Victoria LeaseFT_END_HEADER 76727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 77727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 78727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#endif /* __SVPROP_H__ */ 79727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 80727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 81727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* END */ 82