PageRenderTime 31ms CodeModel.GetById 22ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/freetype2/include/freetype/ftbdf.h

http://github.com/zpao/v8monkey
C Header | 209 lines | 37 code | 26 blank | 146 comment | 0 complexity | dc58cd2f08b7b77ef3c103084406c344 MD5 | raw file
  1/***************************************************************************/
  2/*                                                                         */
  3/*  ftbdf.h                                                                */
  4/*                                                                         */
  5/*    FreeType API for accessing BDF-specific strings (specification).     */
  6/*                                                                         */
  7/*  Copyright 2002, 2003, 2004, 2006, 2009 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 __FTBDF_H__
 20#define __FTBDF_H__
 21
 22#include <ft2build.h>
 23#include FT_FREETYPE_H
 24
 25#ifdef FREETYPE_H
 26#error "freetype.h of FreeType 1 has been loaded!"
 27#error "Please fix the directory search order for header files"
 28#error "so that freetype.h of FreeType 2 is found first."
 29#endif
 30
 31
 32FT_BEGIN_HEADER
 33
 34
 35  /*************************************************************************/
 36  /*                                                                       */
 37  /* <Section>                                                             */
 38  /*    bdf_fonts                                                          */
 39  /*                                                                       */
 40  /* <Title>                                                               */
 41  /*    BDF and PCF Files                                                  */
 42  /*                                                                       */
 43  /* <Abstract>                                                            */
 44  /*    BDF and PCF specific API.                                          */
 45  /*                                                                       */
 46  /* <Description>                                                         */
 47  /*    This section contains the declaration of functions specific to BDF */
 48  /*    and PCF fonts.                                                     */
 49  /*                                                                       */
 50  /*************************************************************************/
 51
 52
 53  /**********************************************************************
 54   *
 55   * @enum:
 56   *    FT_PropertyType
 57   *
 58   * @description:
 59   *    A list of BDF property types.
 60   *
 61   * @values:
 62   *    BDF_PROPERTY_TYPE_NONE ::
 63   *      Value~0 is used to indicate a missing property.
 64   *
 65   *    BDF_PROPERTY_TYPE_ATOM ::
 66   *      Property is a string atom.
 67   *
 68   *    BDF_PROPERTY_TYPE_INTEGER ::
 69   *      Property is a 32-bit signed integer.
 70   *
 71   *    BDF_PROPERTY_TYPE_CARDINAL ::
 72   *      Property is a 32-bit unsigned integer.
 73   */
 74  typedef enum  BDF_PropertyType_
 75  {
 76    BDF_PROPERTY_TYPE_NONE     = 0,
 77    BDF_PROPERTY_TYPE_ATOM     = 1,
 78    BDF_PROPERTY_TYPE_INTEGER  = 2,
 79    BDF_PROPERTY_TYPE_CARDINAL = 3
 80
 81  } BDF_PropertyType;
 82
 83
 84  /**********************************************************************
 85   *
 86   * @type:
 87   *    BDF_Property
 88   *
 89   * @description:
 90   *    A handle to a @BDF_PropertyRec structure to model a given
 91   *    BDF/PCF property.
 92   */
 93  typedef struct BDF_PropertyRec_*  BDF_Property;
 94
 95
 96 /**********************************************************************
 97  *
 98  * @struct:
 99  *    BDF_PropertyRec
100  *
101  * @description:
102  *    This structure models a given BDF/PCF property.
103  *
104  * @fields:
105  *    type ::
106  *      The property type.
107  *
108  *    u.atom ::
109  *      The atom string, if type is @BDF_PROPERTY_TYPE_ATOM.
110  *
111  *    u.integer ::
112  *      A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER.
113  *
114  *    u.cardinal ::
115  *      An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL.
116  */
117  typedef struct  BDF_PropertyRec_
118  {
119    BDF_PropertyType  type;
120    union {
121      const char*     atom;
122      FT_Int32        integer;
123      FT_UInt32       cardinal;
124
125    } u;
126
127  } BDF_PropertyRec;
128
129
130 /**********************************************************************
131  *
132  * @function:
133  *    FT_Get_BDF_Charset_ID
134  *
135  * @description:
136  *    Retrieve a BDF font character set identity, according to
137  *    the BDF specification.
138  *
139  * @input:
140  *    face ::
141  *       A handle to the input face.
142  *
143  * @output:
144  *    acharset_encoding ::
145  *       Charset encoding, as a C~string, owned by the face.
146  *
147  *    acharset_registry ::
148  *       Charset registry, as a C~string, owned by the face.
149  *
150  * @return:
151  *   FreeType error code.  0~means success.
152  *
153  * @note:
154  *   This function only works with BDF faces, returning an error otherwise.
155  */
156  FT_EXPORT( FT_Error )
157  FT_Get_BDF_Charset_ID( FT_Face       face,
158                         const char*  *acharset_encoding,
159                         const char*  *acharset_registry );
160
161
162 /**********************************************************************
163  *
164  * @function:
165  *    FT_Get_BDF_Property
166  *
167  * @description:
168  *    Retrieve a BDF property from a BDF or PCF font file.
169  *
170  * @input:
171  *    face :: A handle to the input face.
172  *
173  *    name :: The property name.
174  *
175  * @output:
176  *    aproperty :: The property.
177  *
178  * @return:
179  *   FreeType error code.  0~means success.
180  *
181  * @note:
182  *   This function works with BDF _and_ PCF fonts.  It returns an error
183  *   otherwise.  It also returns an error if the property is not in the
184  *   font.
185  *
186  *   A `property' is a either key-value pair within the STARTPROPERTIES
187  *   ... ENDPROPERTIES block of a BDF font or a key-value pair from the
188  *   `info->props' array within a `FontRec' structure of a PCF font.
189  *
190  *   Integer properties are always stored as `signed' within PCF fonts;
191  *   consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value
192  *   for BDF fonts only.
193  *
194  *   In case of error, `aproperty->type' is always set to
195  *   @BDF_PROPERTY_TYPE_NONE.
196  */
197  FT_EXPORT( FT_Error )
198  FT_Get_BDF_Property( FT_Face           face,
199                       const char*       prop_name,
200                       BDF_PropertyRec  *aproperty );
201
202 /* */
203
204FT_END_HEADER
205
206#endif /* __FTBDF_H__ */
207
208
209/* END */