<STRUCT>
<NAME>PangoAttribute</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrClass</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrString</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrInt</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrFloat</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrColor</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrFontDesc</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrShape</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrList</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAttrIterator</NAME>
</STRUCT>
<ENUM>
<NAME>PangoAttrType</NAME>
typedef enum
{
  PANGO_ATTR_LANG,		/* PangoAttrString */
  PANGO_ATTR_FAMILY,		/* PangoAttrString */
  PANGO_ATTR_STYLE,		/* PangoAttrInt */
  PANGO_ATTR_WEIGHT,		/* PangoAttrInt */
  PANGO_ATTR_VARIANT,		/* PangoAttrInt */
  PANGO_ATTR_STRETCH,		/* PangoAttrInt */
  PANGO_ATTR_SIZE,		/* PangoAttrSize */
  PANGO_ATTR_FONT_DESC,		/* PangoAttrFontDesc */
  PANGO_ATTR_FOREGROUND,	/* PangoAttrColor */
  PANGO_ATTR_BACKGROUND,	/* PangoAttrColor */
  PANGO_ATTR_UNDERLINE,		/* PangoAttrInt */
  PANGO_ATTR_STRIKETHROUGH,	/* PangoAttrInt */
  PANGO_ATTR_RISE,		/* PangoAttrInt */
  PANGO_ATTR_SHAPE,		/* PangoAttrShape */
  PANGO_ATTR_SCALE              /* PangoAttrFloat */
} PangoAttrType;
</ENUM>
<ENUM>
<NAME>PangoUnderline</NAME>
typedef enum {
  PANGO_UNDERLINE_NONE,
  PANGO_UNDERLINE_SINGLE,
  PANGO_UNDERLINE_DOUBLE,
  PANGO_UNDERLINE_LOW
} PangoUnderline;
</ENUM>
<STRUCT>
<NAME>PangoAttribute</NAME>
struct PangoAttribute
{
  const PangoAttrClass *klass;
  guint start_index;
  guint end_index;
};
</STRUCT>
<STRUCT>
<NAME>PangoAttrClass</NAME>
struct PangoAttrClass
{
  PangoAttrType type;
  PangoAttribute * (*copy) (const PangoAttribute *attr);
  void             (*destroy) (PangoAttribute *attr);
  gboolean         (*equal) (const PangoAttribute *attr1, const PangoAttribute *attr2);
};
</STRUCT>
<STRUCT>
<NAME>PangoAttrString</NAME>
struct PangoAttrString
{
  PangoAttribute attr;
  char *value;
};
</STRUCT>
<STRUCT>
<NAME>PangoAttrInt</NAME>
struct PangoAttrInt
{
  PangoAttribute attr;
  int value;
};
</STRUCT>
<STRUCT>
<NAME>PangoAttrFloat</NAME>
struct PangoAttrFloat
{
  PangoAttribute attr;
  double value;
};
</STRUCT>
<STRUCT>
<NAME>PangoAttrColor</NAME>
struct PangoAttrColor
{
  PangoAttribute attr;
  guint16 red;
  guint16 green;
  guint16 blue;
};
</STRUCT>
<STRUCT>
<NAME>PangoAttrShape</NAME>
struct PangoAttrShape
{
  PangoAttribute attr;
  PangoRectangle ink_rect;
  PangoRectangle logical_rect;
};
</STRUCT>
<STRUCT>
<NAME>PangoAttrFontDesc</NAME>
struct PangoAttrFontDesc
{
  PangoAttribute attr;
  PangoFontDescription desc;
};
</STRUCT>
<FUNCTION>
<NAME>pango_attr_type_register</NAME>
<RETURNS>PangoAttrType  </RETURNS>
const gchar          *name
</FUNCTION>
<FUNCTION>
<NAME>pango_attribute_copy</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
const PangoAttribute *attr
</FUNCTION>
<FUNCTION>
<NAME>pango_attribute_destroy</NAME>
<RETURNS>void  </RETURNS>
PangoAttribute       *attr
</FUNCTION>
<FUNCTION>
<NAME>pango_attribute_equal</NAME>
<RETURNS>gboolean  </RETURNS>
const PangoAttribute *attr1,const PangoAttribute *attr2
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_lang_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
const char                 *lang
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_family_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
const char                 *family
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_foreground_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
guint16                     red,guint16                     green,guint16                     blue
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_background_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
guint16                     red,guint16                     green,guint16                     blue
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_size_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
int                         size
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_style_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
PangoStyle                  style
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_weight_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
PangoWeight                 weight
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_variant_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
PangoVariant                variant
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_stretch_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
PangoStretch                stretch
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_font_desc_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
const PangoFontDescription *desc
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_underline_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
PangoUnderline              underline
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_strikethrough_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
gboolean                    strikethrough
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_rise_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
int                         rise
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_shape_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
const PangoRectangle       *ink_rect,const PangoRectangle       *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_scale_new</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
double                      scale_factor
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_new</NAME>
<RETURNS>PangoAttrList  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_ref</NAME>
<RETURNS>void  </RETURNS>
PangoAttrList  *list
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_unref</NAME>
<RETURNS>void  </RETURNS>
PangoAttrList  *list
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_copy</NAME>
<RETURNS>PangoAttrList  *</RETURNS>
PangoAttrList  *list
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_insert</NAME>
<RETURNS>void  </RETURNS>
PangoAttrList  *list,PangoAttribute *attr
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_insert_before</NAME>
<RETURNS>void  </RETURNS>
PangoAttrList  *list,PangoAttribute *attr
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_change</NAME>
<RETURNS>void  </RETURNS>
PangoAttrList  *list,PangoAttribute *attr
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_splice</NAME>
<RETURNS>void  </RETURNS>
PangoAttrList  *list,PangoAttrList  *other,gint            pos,gint            len
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_list_get_iterator</NAME>
<RETURNS>PangoAttrIterator  *</RETURNS>
PangoAttrList  *list
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_iterator_range</NAME>
<RETURNS>void  </RETURNS>
PangoAttrIterator     *iterator,gint                  *start,gint                  *end
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_iterator_next</NAME>
<RETURNS>gboolean  </RETURNS>
PangoAttrIterator     *iterator
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_iterator_copy</NAME>
<RETURNS>PangoAttrIterator  *</RETURNS>
PangoAttrIterator     *iterator
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_iterator_destroy</NAME>
<RETURNS>void  </RETURNS>
PangoAttrIterator     *iterator
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_iterator_get</NAME>
<RETURNS>PangoAttribute  *</RETURNS>
PangoAttrIterator     *iterator,PangoAttrType          type
</FUNCTION>
<FUNCTION>
<NAME>pango_attr_iterator_get_font</NAME>
<RETURNS>void  </RETURNS>
PangoAttrIterator     *iterator,PangoFontDescription  *base,PangoFontDescription  *current,GSList               **extra_attrs
</FUNCTION>
<FUNCTION>
<NAME>pango_parse_markup</NAME>
<RETURNS>gboolean  </RETURNS>
const char                 *markup_text,int                         length,gunichar                    accel_marker,PangoAttrList             **attr_list,char                      **text,gunichar                   *accel_char,GError                    **error
</FUNCTION>
<STRUCT>
<NAME>PangoContext</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoContextClass</NAME>
</STRUCT>
<MACRO>
<NAME>PANGO_TYPE_CONTEXT</NAME>
#define PANGO_TYPE_CONTEXT              (pango_context_get_type ())
</MACRO>
<MACRO>
<NAME>PANGO_CONTEXT</NAME>
#define PANGO_CONTEXT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_CONTEXT, PangoContext))
</MACRO>
<MACRO>
<NAME>PANGO_CONTEXT_CLASS</NAME>
#define PANGO_CONTEXT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_CONTEXT, PangoContextClass))
</MACRO>
<MACRO>
<NAME>PANGO_IS_CONTEXT</NAME>
#define PANGO_IS_CONTEXT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_CONTEXT))
</MACRO>
<MACRO>
<NAME>PANGO_IS_CONTEXT_CLASS</NAME>
#define PANGO_IS_CONTEXT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_CONTEXT))
</MACRO>
<MACRO>
<NAME>PANGO_CONTEXT_GET_CLASS</NAME>
#define PANGO_CONTEXT_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_CONTEXT, PangoContextClass))
</MACRO>
<FUNCTION>
<NAME>pango_context_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_context_new</NAME>
<RETURNS>PangoContext  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_context_add_font_map</NAME>
<RETURNS>void  </RETURNS>
PangoContext                 *context,PangoFontMap                 *font_map
</FUNCTION>
<FUNCTION>
<NAME>pango_context_list_fonts</NAME>
<RETURNS>void  </RETURNS>
PangoContext                 *context,const char                   *family,PangoFontDescription       ***descs,int                          *n_descs
</FUNCTION>
<FUNCTION>
<NAME>pango_context_list_families</NAME>
<RETURNS>void  </RETURNS>
PangoContext                 *context,gchar                      ***families,int                          *n_families
</FUNCTION>
<FUNCTION>
<NAME>pango_context_load_font</NAME>
<RETURNS>PangoFont  *</RETURNS>
PangoContext                 *context,const PangoFontDescription   *desc
</FUNCTION>
<FUNCTION>
<NAME>pango_context_set_font_description</NAME>
<RETURNS>void  </RETURNS>
PangoContext               *context,const PangoFontDescription *desc
</FUNCTION>
<FUNCTION>
<NAME>pango_context_get_font_description</NAME>
<RETURNS>PangoFontDescription  *</RETURNS>
PangoContext               *context
</FUNCTION>
<FUNCTION>
<NAME>pango_context_get_lang</NAME>
<RETURNS>char  *</RETURNS>
PangoContext               *context
</FUNCTION>
<FUNCTION>
<NAME>pango_context_set_lang</NAME>
<RETURNS>void  </RETURNS>
PangoContext               *context,const char                 *lang
</FUNCTION>
<FUNCTION>
<NAME>pango_context_set_base_dir</NAME>
<RETURNS>void  </RETURNS>
PangoContext               *context,PangoDirection              direction
</FUNCTION>
<FUNCTION>
<NAME>pango_context_get_base_dir</NAME>
<RETURNS>PangoDirection  </RETURNS>
PangoContext               *context
</FUNCTION>
<FUNCTION>
<NAME>pango_itemize</NAME>
<RETURNS>GList  *</RETURNS>
PangoContext      *context,const char        *text,int                start_index,int                length,PangoAttrList     *attrs,PangoAttrIterator *cached_iter
</FUNCTION>
<STRUCT>
<NAME>PangoCoverage</NAME>
</STRUCT>
<ENUM>
<NAME>PangoCoverageLevel</NAME>
typedef enum {
  PANGO_COVERAGE_NONE,
  PANGO_COVERAGE_FALLBACK,
  PANGO_COVERAGE_APPROXIMATE,
  PANGO_COVERAGE_EXACT
} PangoCoverageLevel;
</ENUM>
<FUNCTION>
<NAME>pango_coverage_new</NAME>
<RETURNS>PangoCoverage  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_ref</NAME>
<RETURNS>PangoCoverage  *</RETURNS>
PangoCoverage      *coverage
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_unref</NAME>
<RETURNS>void  </RETURNS>
PangoCoverage      *coverage
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_copy</NAME>
<RETURNS>PangoCoverage  *</RETURNS>
PangoCoverage      *coverage
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_get</NAME>
<RETURNS>PangoCoverageLevel  </RETURNS>
PangoCoverage      *coverage,int                 index
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_set</NAME>
<RETURNS>void  </RETURNS>
PangoCoverage      *coverage,int                 index,PangoCoverageLevel  level
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_max</NAME>
<RETURNS>void  </RETURNS>
PangoCoverage      *coverage,PangoCoverage      *other
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_to_bytes</NAME>
<RETURNS>void  </RETURNS>
PangoCoverage  *coverage,guchar        **bytes,int            *n_bytes
</FUNCTION>
<FUNCTION>
<NAME>pango_coverage_from_bytes</NAME>
<RETURNS>PangoCoverage  *</RETURNS>
guchar         *bytes,int             n_bytes
</FUNCTION>
<MACRO>
<NAME>PANGO_ENGINE_TYPE_LANG</NAME>
#define PANGO_ENGINE_TYPE_LANG "PangoEngineLang"
</MACRO>
<MACRO>
<NAME>PANGO_ENGINE_TYPE_SHAPE</NAME>
#define PANGO_ENGINE_TYPE_SHAPE "PangoEngineShape"
</MACRO>
<MACRO>
<NAME>PANGO_RENDER_TYPE_NONE</NAME>
#define PANGO_RENDER_TYPE_NONE "PangoRenderNone"
</MACRO>
<STRUCT>
<NAME>PangoEngineInfo</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoEngineRange</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoEngine</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoEngineRange</NAME>
struct PangoEngineRange 
{
  guint32 start;
  guint32 end;
  gchar *langs;
};
</STRUCT>
<STRUCT>
<NAME>PangoEngineInfo</NAME>
struct PangoEngineInfo
{
  gchar *id;
  gchar *engine_type;
  gchar *render_type;
  PangoEngineRange *ranges;
  gint n_ranges;
};
</STRUCT>
<STRUCT>
<NAME>PangoEngine</NAME>
struct PangoEngine
{
  gchar *id;
  gchar *type;
  gint length;
};
</STRUCT>
<STRUCT>
<NAME>PangoEngineLang</NAME>
struct PangoEngineLang
{
  PangoEngine engine;
  void (*script_break) (const char    *text,
			int            len,
			PangoAnalysis *analysis,
			PangoLogAttr  *attrs);
};
</STRUCT>
<STRUCT>
<NAME>PangoEngineShape</NAME>
struct PangoEngineShape
{
  PangoEngine engine;
  void (*script_shape) (PangoFont        *font,
			const char       *text,
			int               length,
			PangoAnalysis    *analysis,
			PangoGlyphString *glyphs);
  PangoCoverage *(*get_coverage) (PangoFont        *font,
				  const char       *lang);
};
</STRUCT>
<FUNCTION>
<NAME>script_engine_list</NAME>
<RETURNS>void  </RETURNS>
PangoEngineInfo **engines,int              *n_engines
</FUNCTION>
<FUNCTION>
<NAME>script_engine_load</NAME>
<RETURNS>PangoEngine  *</RETURNS>
const char       *id
</FUNCTION>
<FUNCTION>
<NAME>script_engine_unload</NAME>
<RETURNS>void  </RETURNS>
PangoEngine      *engine
</FUNCTION>
<STRUCT>
<NAME>PangoFontDescription</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoFontMetrics</NAME>
</STRUCT>
<ENUM>
<NAME>PangoStyle</NAME>
typedef enum {
  PANGO_STYLE_NORMAL,
  PANGO_STYLE_OBLIQUE,
  PANGO_STYLE_ITALIC
} PangoStyle;
</ENUM>
<ENUM>
<NAME>PangoVariant</NAME>
typedef enum {
  PANGO_VARIANT_NORMAL,
  PANGO_VARIANT_SMALL_CAPS
} PangoVariant;
</ENUM>
<ENUM>
<NAME>PangoWeight</NAME>
typedef enum {
  PANGO_WEIGHT_ULTRALIGHT = 200,
  PANGO_WEIGHT_LIGHT = 300,
  PANGO_WEIGHT_NORMAL = 400,
  PANGO_WEIGHT_BOLD = 700,
  PANGO_WEIGHT_ULTRABOLD = 800,
  PANGO_WEIGHT_HEAVY = 900
} PangoWeight;
</ENUM>
<ENUM>
<NAME>PangoStretch</NAME>
typedef enum {
  PANGO_STRETCH_ULTRA_CONDENSED,
  PANGO_STRETCH_EXTRA_CONDENSED,
  PANGO_STRETCH_CONDENSED,
  PANGO_STRETCH_SEMI_CONDENSED,
  PANGO_STRETCH_NORMAL,
  PANGO_STRETCH_SEMI_EXPANDED,
  PANGO_STRETCH_EXPANDED,
  PANGO_STRETCH_EXTRA_EXPANDED,
  PANGO_STRETCH_ULTRA_EXPANDED
} PangoStretch;
</ENUM>
<STRUCT>
<NAME>PangoFontDescription</NAME>
struct PangoFontDescription
{
  char *family_name;

  PangoStyle style;
  PangoVariant variant;
  PangoWeight weight;
  PangoStretch stretch;

  int size;
};
</STRUCT>
<STRUCT>
<NAME>PangoFontMetrics</NAME>
struct PangoFontMetrics
{
  int ascent;
  int descent;
};
</STRUCT>
<FUNCTION>
<NAME>pango_font_description_copy</NAME>
<RETURNS>PangoFontDescription  *</RETURNS>
const PangoFontDescription  *desc
</FUNCTION>
<FUNCTION>
<NAME>pango_font_description_equal</NAME>
<RETURNS>gboolean  </RETURNS>
const PangoFontDescription  *desc1,const PangoFontDescription  *desc2
</FUNCTION>
<FUNCTION>
<NAME>pango_font_description_free</NAME>
<RETURNS>void  </RETURNS>
PangoFontDescription        *desc
</FUNCTION>
<FUNCTION>
<NAME>pango_font_descriptions_free</NAME>
<RETURNS>void  </RETURNS>
PangoFontDescription       **descs,int                          n_descs
</FUNCTION>
<FUNCTION>
<NAME>pango_font_description_from_string</NAME>
<RETURNS>PangoFontDescription  *</RETURNS>
const char                  *str
</FUNCTION>
<FUNCTION>
<NAME>pango_font_description_to_string</NAME>
<RETURNS>char  *</RETURNS>
const PangoFontDescription  *desc
</FUNCTION>
<STRUCT>
<NAME>PangoFontClass</NAME>
</STRUCT>
<MACRO>
<NAME>PANGO_TYPE_FONT</NAME>
#define PANGO_TYPE_FONT              (pango_font_get_type ())
</MACRO>
<MACRO>
<NAME>PANGO_FONT</NAME>
#define PANGO_FONT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT, PangoFont))
</MACRO>
<MACRO>
<NAME>PANGO_FONT_CLASS</NAME>
#define PANGO_FONT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT, PangoFontClass))
</MACRO>
<MACRO>
<NAME>PANGO_IS_FONT</NAME>
#define PANGO_IS_FONT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT))
</MACRO>
<MACRO>
<NAME>PANGO_IS_FONT_CLASS</NAME>
#define PANGO_IS_FONT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT))
</MACRO>
<MACRO>
<NAME>PANGO_FONT_GET_CLASS</NAME>
#define PANGO_FONT_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT, PangoFontClass))
</MACRO>
<STRUCT>
<NAME>PangoFont</NAME>
struct PangoFont
{
  GObject parent_instance;
};
</STRUCT>
<STRUCT>
<NAME>PangoFontClass</NAME>
struct PangoFontClass
{
  GObjectClass parent_class;
  
  PangoFontDescription *(*describe)           (PangoFont      *font);
  PangoCoverage *       (*get_coverage)       (PangoFont      *font,
					      const char      *lang);
  PangoEngineShape *    (*find_shaper)        (PangoFont      *font,
					       const char     *lang,
					       guint32         ch);
  void                  (*get_glyph_extents)  (PangoFont      *font,
					       PangoGlyph      glyph,
					       PangoRectangle *ink_rect,
					       PangoRectangle *logical_rect);
  void                  (*get_metrics)        (PangoFont        *font,
					       const gchar      *lang,
					       PangoFontMetrics *metrics);
};
</STRUCT>
<FUNCTION>
<NAME>pango_font_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_font_describe</NAME>
<RETURNS>PangoFontDescription  *</RETURNS>
PangoFont        *font
</FUNCTION>
<FUNCTION>
<NAME>pango_font_get_coverage</NAME>
<RETURNS>PangoCoverage  *</RETURNS>
PangoFont        *font,const char       *lang
</FUNCTION>
<FUNCTION>
<NAME>pango_font_find_shaper</NAME>
<RETURNS>PangoEngineShape  *</RETURNS>
PangoFont        *font,const char       *lang,guint32           ch
</FUNCTION>
<FUNCTION>
<NAME>pango_font_get_metrics</NAME>
<RETURNS>void  </RETURNS>
PangoFont        *font,const gchar      *lang,PangoFontMetrics *metrics
</FUNCTION>
<FUNCTION>
<NAME>pango_font_get_glyph_extents</NAME>
<RETURNS>void  </RETURNS>
PangoFont        *font,PangoGlyph        glyph,PangoRectangle   *ink_rect,PangoRectangle   *logical_rect
</FUNCTION>
<MACRO>
<NAME>PANGO_TYPE_FONT_MAP</NAME>
#define PANGO_TYPE_FONT_MAP              (pango_font_map_get_type ())
</MACRO>
<MACRO>
<NAME>PANGO_FONT_MAP</NAME>
#define PANGO_FONT_MAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_MAP, PangoFontMap))
</MACRO>
<MACRO>
<NAME>PANGO_FONT_MAP_CLASS</NAME>
#define PANGO_FONT_MAP_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
</MACRO>
<MACRO>
<NAME>PANGO_IS_FONT_MAP</NAME>
#define PANGO_IS_FONT_MAP(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_MAP))
</MACRO>
<MACRO>
<NAME>PANGO_IS_FONT_MAP_CLASS</NAME>
#define PANGO_IS_FONT_MAP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_MAP))
</MACRO>
<MACRO>
<NAME>PANGO_FONT_MAP_GET_CLASS</NAME>
#define PANGO_FONT_MAP_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
</MACRO>
<STRUCT>
<NAME>PangoFontMap</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoFontMapClass</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoFontMap</NAME>
struct PangoFontMap
{
  GObject parent_instance;
};
</STRUCT>
<STRUCT>
<NAME>PangoFontMapClass</NAME>
struct PangoFontMapClass
{
  GObjectClass parent_class;
  
  PangoFont *(*load_font)     (PangoFontMap               *fontmap,
			       const PangoFontDescription *desc);
  void       (*list_fonts)    (PangoFontMap               *fontmap,
			       const gchar                *family,
			       PangoFontDescription     ***descs,
			       int                        *n_descs);
  void       (*list_families) (PangoFontMap               *fontmap,
			       gchar                    ***families,
			       int                        *n_families);
};
</STRUCT>
<FUNCTION>
<NAME>pango_font_map_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_font_map_load_font</NAME>
<RETURNS>PangoFont  *</RETURNS>
PangoFontMap                 *fontmap,const PangoFontDescription   *desc
</FUNCTION>
<FUNCTION>
<NAME>pango_font_map_list_fonts</NAME>
<RETURNS>void  </RETURNS>
PangoFontMap                 *fontmap,const gchar                  *family,PangoFontDescription       ***descs,int                          *n_descs
</FUNCTION>
<FUNCTION>
<NAME>pango_font_map_list_families</NAME>
<RETURNS>void  </RETURNS>
PangoFontMap                 *fontmap,gchar                      ***families,int                          *n_families
</FUNCTION>
<FUNCTION>
<NAME>pango_font_map_free_families</NAME>
<RETURNS>void  </RETURNS>
gchar                       **families,int                           n_families
</FUNCTION>
<STRUCT>
<NAME>PangoGlyphGeometry</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoGlyphVisAttr</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoGlyphInfo</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoGlyphString</NAME>
</STRUCT>
<TYPEDEF>
<NAME>PangoGlyphUnit</NAME>
typedef gint32 PangoGlyphUnit;
</TYPEDEF>
<STRUCT>
<NAME>PangoGlyphGeometry</NAME>
struct PangoGlyphGeometry
{
  PangoGlyphUnit width;
  PangoGlyphUnit x_offset;  
  PangoGlyphUnit y_offset;
};
</STRUCT>
<STRUCT>
<NAME>PangoGlyphVisAttr</NAME>
struct PangoGlyphVisAttr
{
  guint is_cluster_start : 1;
};
</STRUCT>
<STRUCT>
<NAME>PangoGlyphInfo</NAME>
struct PangoGlyphInfo
{
  PangoGlyph    glyph;
  PangoGlyphGeometry geometry;
  PangoGlyphVisAttr  attr;
};
</STRUCT>
<STRUCT>
<NAME>PangoGlyphString</NAME>
struct PangoGlyphString {
  gint num_glyphs;

  PangoGlyphInfo *glyphs;

  /* This is a memory inefficient way of representing the information
   * here - each value gives the byte index within the text
   * corresponding to the glyph string of the start of the cluster to
   * which the glyph belongs.
   */
  gint *log_clusters;

  /*< private >*/
  gint space;
};
</STRUCT>
<FUNCTION>
<NAME>pango_glyph_string_new</NAME>
<RETURNS>PangoGlyphString  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_glyph_string_set_size</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *string,gint              new_len
</FUNCTION>
<FUNCTION>
<NAME>pango_glyph_string_free</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *string
</FUNCTION>
<FUNCTION>
<NAME>pango_glyph_string_extents</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *glyphs,PangoFont        *font,PangoRectangle   *ink_rect,PangoRectangle   *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_glyph_string_extents_range</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *glyphs,int               start,int               end,PangoFont        *font,PangoRectangle   *ink_rect,PangoRectangle   *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_glyph_string_get_logical_widths</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *glyphs,const char       *text,int               length,int               embedding_level,int              *logical_widths
</FUNCTION>
<FUNCTION>
<NAME>pango_glyph_string_index_to_x</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *glyphs,char             *text,int               length,PangoAnalysis    *analysis,int               index,gboolean          trailing,int              *x_pos
</FUNCTION>
<FUNCTION>
<NAME>pango_glyph_string_x_to_index</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *glyphs,char             *text,int               length,PangoAnalysis    *analysis,int               x_pos,int              *index,int              *trailing
</FUNCTION>
<FUNCTION>
<NAME>pango_justify</NAME>
<RETURNS>void  </RETURNS>
PangoGlyphString *glyphs,gint              new_line_width,gint              min_kashida_width
</FUNCTION>
<STRUCT>
<NAME>PangoAnalysis</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoItem</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoAnalysis</NAME>
struct PangoAnalysis
{
  PangoEngineShape *shape_engine;
  PangoEngineLang  *lang_engine;
  PangoFont        *font;
  guint8 level;
};
</STRUCT>
<STRUCT>
<NAME>PangoItem</NAME>
struct PangoItem
{
  gint offset;
  gint length;
  gint num_chars;
  GSList *extra_attrs;
  PangoAnalysis analysis;
};
</STRUCT>
<FUNCTION>
<NAME>pango_item_new</NAME>
<RETURNS>PangoItem  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_item_copy</NAME>
<RETURNS>PangoItem  *</RETURNS>
PangoItem *item
</FUNCTION>
<FUNCTION>
<NAME>pango_item_free</NAME>
<RETURNS>void  </RETURNS>
PangoItem *item
</FUNCTION>
<STRUCT>
<NAME>PangoLayout</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoLayoutClass</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoLayoutLine</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoLayoutRun</NAME>
</STRUCT>
<ENUM>
<NAME>PangoAlignment</NAME>
typedef enum {
  PANGO_ALIGN_LEFT,
  PANGO_ALIGN_CENTER,
  PANGO_ALIGN_RIGHT
} PangoAlignment;
</ENUM>
<STRUCT>
<NAME>PangoLayoutLine</NAME>
struct PangoLayoutLine
{
  PangoLayout *layout;
  gint         length;		/* length of line in bytes*/
  GSList      *runs;
};
</STRUCT>
<STRUCT>
<NAME>PangoLayoutRun</NAME>
struct PangoLayoutRun
{
  PangoItem        *item;
  PangoGlyphString *glyphs;
};
</STRUCT>
<MACRO>
<NAME>PANGO_TYPE_LAYOUT</NAME>
#define PANGO_TYPE_LAYOUT              (pango_layout_get_type ())
</MACRO>
<MACRO>
<NAME>PANGO_LAYOUT</NAME>
#define PANGO_LAYOUT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_LAYOUT, PangoLayout))
</MACRO>
<MACRO>
<NAME>PANGO_LAYOUT_CLASS</NAME>
#define PANGO_LAYOUT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_LAYOUT, PangoLayoutClass))
</MACRO>
<MACRO>
<NAME>PANGO_IS_LAYOUT</NAME>
#define PANGO_IS_LAYOUT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_LAYOUT))
</MACRO>
<MACRO>
<NAME>PANGO_IS_LAYOUT_CLASS</NAME>
#define PANGO_IS_LAYOUT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_LAYOUT))
</MACRO>
<MACRO>
<NAME>PANGO_LAYOUT_GET_CLASS</NAME>
#define PANGO_LAYOUT_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_LAYOUT, PangoLayoutClass))
</MACRO>
<FUNCTION>
<NAME>pango_layout_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_new</NAME>
<RETURNS>PangoLayout  *</RETURNS>
PangoContext   *context
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_context</NAME>
<RETURNS>PangoContext   *</RETURNS>
PangoLayout    *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_attributes</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,PangoAttrList  *attrs
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_attributes</NAME>
<RETURNS>PangoAttrList  *</RETURNS>
PangoLayout    *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_text</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,const char     *text,int             length
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_text</NAME>
<RETURNS>const char     *</RETURNS>
PangoLayout    *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_markup</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,const char     *markup,int             length
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_markup_with_accel</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,const char     *markup,int             length,gunichar        accel_marker,gunichar       *accel_char
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_font_description</NAME>
<RETURNS>void  </RETURNS>
PangoLayout                *layout,const PangoFontDescription *desc
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_width</NAME>
<RETURNS>void  </RETURNS>
PangoLayout                *layout,int                         width
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_width</NAME>
<RETURNS>int  </RETURNS>
PangoLayout                *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_indent</NAME>
<RETURNS>void  </RETURNS>
PangoLayout                *layout,int                         indent
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_indent</NAME>
<RETURNS>int  </RETURNS>
PangoLayout                *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_spacing</NAME>
<RETURNS>void  </RETURNS>
PangoLayout                *layout,int                         spacing
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_spacing</NAME>
<RETURNS>int  </RETURNS>
PangoLayout                *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_justify</NAME>
<RETURNS>void  </RETURNS>
PangoLayout                *layout,gboolean                    justify
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_justify</NAME>
<RETURNS>gboolean  </RETURNS>
PangoLayout                *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_alignment</NAME>
<RETURNS>void  </RETURNS>
PangoLayout                *layout,PangoAlignment              alignment
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_alignment</NAME>
<RETURNS>PangoAlignment  </RETURNS>
PangoLayout                *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_set_tabs</NAME>
<RETURNS>void  </RETURNS>
PangoLayout                *layout,PangoTabArray              *tabs
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_tabs</NAME>
<RETURNS>PangoTabArray *</RETURNS>
PangoLayout                *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_context_changed</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_log_attrs</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,PangoLogAttr  **attrs,gint           *n_attrs
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_index_to_pos</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,int             index,PangoRectangle *pos
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_cursor_pos</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,int             index,PangoRectangle *strong_pos,PangoRectangle *weak_pos
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_move_cursor_visually</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,int             old_index,int             old_trailing,int             direction,int            *new_index,int            *new_trailing
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_xy_to_index</NAME>
<RETURNS>gboolean  </RETURNS>
PangoLayout    *layout,int             x,int             y,int            *index,gboolean       *trailing
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,PangoRectangle *ink_rect,PangoRectangle *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_pixel_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,PangoRectangle *ink_rect,PangoRectangle *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_size</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,int            *width,int            *height
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_pixel_size</NAME>
<RETURNS>void  </RETURNS>
PangoLayout    *layout,int            *width,int            *height
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_line_count</NAME>
<RETURNS>int  </RETURNS>
PangoLayout    *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_line</NAME>
<RETURNS>PangoLayoutLine  *</RETURNS>
PangoLayout    *layout,int             line
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_get_lines</NAME>
<RETURNS>GSList  *</RETURNS>
PangoLayout    *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_line_ref</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutLine  *line
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_line_unref</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutLine  *line
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_line_x_to_index</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutLine  *line,int               x_pos,int              *index,int              *trailing
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_line_index_to_x</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutLine  *line,int               index,gboolean          trailing,int              *x_pos
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_line_get_x_ranges</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutLine  *line,int               start_index,int               end_index,int             **ranges,int              *n_ranges
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_line_get_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutLine  *line,PangoRectangle   *ink_rect,PangoRectangle   *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_line_get_pixel_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutLine *layout_line,PangoRectangle  *ink_rect,PangoRectangle  *logical_rect
</FUNCTION>
<STRUCT>
<NAME>PangoLayoutIter</NAME>
</STRUCT>
<FUNCTION>
<NAME>pango_layout_get_iter</NAME>
<RETURNS>PangoLayoutIter  *</RETURNS>
PangoLayout     *layout
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_free</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_index</NAME>
<RETURNS>int  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_run</NAME>
<RETURNS>PangoLayoutRun   *</RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_line</NAME>
<RETURNS>PangoLayoutLine  *</RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_at_last_line</NAME>
<RETURNS>gboolean  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_next_char</NAME>
<RETURNS>gboolean  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_next_cluster</NAME>
<RETURNS>gboolean  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_next_run</NAME>
<RETURNS>gboolean  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_next_line</NAME>
<RETURNS>gboolean  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_char_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutIter *iter,PangoRectangle  *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_cluster_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutIter *iter,PangoRectangle  *ink_rect,PangoRectangle  *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_run_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutIter *iter,PangoRectangle  *ink_rect,PangoRectangle  *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_line_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutIter *iter,PangoRectangle  *ink_rect,PangoRectangle  *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_line_yrange</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutIter *iter,int             *y0,int             *y1
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_layout_extents</NAME>
<RETURNS>void  </RETURNS>
PangoLayoutIter *iter,PangoRectangle  *ink_rect,PangoRectangle  *logical_rect
</FUNCTION>
<FUNCTION>
<NAME>pango_layout_iter_get_baseline</NAME>
<RETURNS>int  </RETURNS>
PangoLayoutIter *iter
</FUNCTION>
<STRUCT>
<NAME>PangoMap</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoMapEntry</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoMapEntry</NAME>
struct PangoMapEntry 
{
  PangoEngineInfo *info;
  gboolean is_exact;
};
</STRUCT>
<STRUCT>
<NAME>PangoIncludedModule</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoIncludedModule</NAME>
struct PangoIncludedModule
{
  void (*list) (PangoEngineInfo **engines, int *n_engines);
  PangoEngine *(*load) (const char *id);
  void (*unload) (PangoEngine *engine);
};
</STRUCT>
<FUNCTION>
<NAME>pango_find_map</NAME>
<RETURNS>PangoMap  *</RETURNS>
const char          *lang,guint                engine_type_id,guint                render_type_id
</FUNCTION>
<FUNCTION>
<NAME>pango_map_get_entry</NAME>
<RETURNS>PangoMapEntry  *</RETURNS>
PangoMap            *map,guint32              wc
</FUNCTION>
<FUNCTION>
<NAME>pango_map_get_engine</NAME>
<RETURNS>PangoEngine  *</RETURNS>
PangoMap            *map,guint32              wc
</FUNCTION>
<FUNCTION>
<NAME>pango_module_register</NAME>
<RETURNS>void  </RETURNS>
PangoIncludedModule *module
</FUNCTION>
<STRUCT>
<NAME>PangoTabArray</NAME>
</STRUCT>
<ENUM>
<NAME>PangoTabAlign</NAME>
typedef enum
{
  PANGO_TAB_LEFT

  /* These are not supported now, but may be in the
   * future.
   *
   *  PANGO_TAB_RIGHT,
   *  PANGO_TAB_CENTER,
   *  PANGO_TAB_NUMERIC
   */
} PangoTabAlign;
</ENUM>
<FUNCTION>
<NAME>pango_tab_array_new</NAME>
<RETURNS>PangoTabArray   *</RETURNS>
gint           initial_size,gboolean       positions_in_pixels
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_new_with_positions</NAME>
<RETURNS>PangoTabArray   *</RETURNS>
gint           size,gboolean       positions_in_pixels,PangoTabAlign  first_alignment,gint           first_position,...
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_copy</NAME>
<RETURNS>PangoTabArray   *</RETURNS>
PangoTabArray *src
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_free</NAME>
<RETURNS>void  </RETURNS>
PangoTabArray *tab_array
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_get_size</NAME>
<RETURNS>gint  </RETURNS>
PangoTabArray *tab_array
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_resize</NAME>
<RETURNS>void  </RETURNS>
PangoTabArray *tab_array,gint           new_size
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_set_tab</NAME>
<RETURNS>void  </RETURNS>
PangoTabArray *tab_array,gint           tab_index,PangoTabAlign  alignment,gint           location
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_get_tab</NAME>
<RETURNS>void  </RETURNS>
PangoTabArray *tab_array,gint           tab_index,PangoTabAlign *alignment,gint          *location
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_get_tabs</NAME>
<RETURNS>void  </RETURNS>
PangoTabArray *tab_array,PangoTabAlign **alignments,gint          **locations
</FUNCTION>
<FUNCTION>
<NAME>pango_tab_array_get_positions_in_pixels</NAME>
<RETURNS>gboolean  </RETURNS>
PangoTabArray *tab_array
</FUNCTION>
<STRUCT>
<NAME>PangoLangRange</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoLogAttr</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoEngineLang</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoEngineShape</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoFont</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoRectangle</NAME>
</STRUCT>
<TYPEDEF>
<NAME>PangoGlyph</NAME>
typedef guint32 PangoGlyph;
</TYPEDEF>
<STRUCT>
<NAME>PangoRectangle</NAME>
struct PangoRectangle
{
  int x;
  int y;
  int width;
  int height;
};
</STRUCT>
<MACRO>
<NAME>PANGO_SCALE</NAME>
#define PANGO_SCALE 1024
</MACRO>
<MACRO>
<NAME>PANGO_PIXELS</NAME>
#define PANGO_PIXELS(d) (((d) >= 0) ?                             \
                         ((d) + PANGO_SCALE / 2) / PANGO_SCALE :  \
                         ((d) - PANGO_SCALE / 2) / PANGO_SCALE)
</MACRO>
<MACRO>
<NAME>PANGO_ASCENT</NAME>
#define PANGO_ASCENT(rect) (-(rect).y)
</MACRO>
<MACRO>
<NAME>PANGO_DESCENT</NAME>
#define PANGO_DESCENT(rect) ((rect).y + (rect).height)
</MACRO>
<MACRO>
<NAME>PANGO_LBEARING</NAME>
#define PANGO_LBEARING(rect) ((rect).x)
</MACRO>
<MACRO>
<NAME>PANGO_RBEARING</NAME>
#define PANGO_RBEARING(rect) ((rect).x + (rect).width)
</MACRO>
<ENUM>
<NAME>PangoDirection</NAME>
typedef enum {
  PANGO_DIRECTION_LTR,
  PANGO_DIRECTION_RTL,
  PANGO_DIRECTION_TTB_LTR,
  PANGO_DIRECTION_TTB_RTL
} PangoDirection;
</ENUM>
<STRUCT>
<NAME>PangoLangRange</NAME>
struct PangoLangRange
{
  gint start;
  gint length;
  gchar *lang;
};
</STRUCT>
<STRUCT>
<NAME>PangoLogAttr</NAME>
struct PangoLogAttr
{
  guint is_break : 1;  /* Break in front of character */
  guint is_white : 1;
  guint is_char_stop : 1;
  guint is_word_stop : 1;
};
</STRUCT>
<FUNCTION>
<NAME>pango_break</NAME>
<RETURNS>void  </RETURNS>
const gchar   *text,gint           length,PangoAnalysis *analysis,PangoLogAttr  *attrs
</FUNCTION>
<FUNCTION>
<NAME>pango_get_log_attrs</NAME>
<RETURNS>void  </RETURNS>
const char    *text,int            length,int            level,const char    *language,PangoLogAttr  *log_attrs
</FUNCTION>
<FUNCTION>
<NAME>pango_shape</NAME>
<RETURNS>void  </RETURNS>
const gchar      *text,gint              length,PangoAnalysis    *analysis,PangoGlyphString *glyphs
</FUNCTION>
<FUNCTION>
<NAME>pango_reorder_items</NAME>
<RETURNS>GList  *</RETURNS>
GList *logical_items
</FUNCTION>
<MACRO>
<NAME>PANGO_RENDER_TYPE_FT2</NAME>
#define PANGO_RENDER_TYPE_FT2 "PangoRenderFT2"
</MACRO>
<FUNCTION>
<NAME>pango_ft2_get_context</NAME>
<RETURNS>PangoContext   *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_load_font</NAME>
<RETURNS>PangoFont      *</RETURNS>
PangoFontMap     *fontmap,FT_Open_Args    **open_args,FT_Long	      *face_indices,int               n_fonts,int               size
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_render</NAME>
<RETURNS>void  </RETURNS>
FT_Bitmap        *bitmap,PangoFont        *font,PangoGlyphString *glyphs,gint              x,gint              y
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_render_layout_line</NAME>
<RETURNS>void  </RETURNS>
FT_Bitmap        *bitmap,PangoLayoutLine  *line,int               x,int               y
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_render_layout</NAME>
<RETURNS>void  </RETURNS>
FT_Bitmap        *bitmap,PangoLayout      *layout,int               x,int               y
</FUNCTION>
<TYPEDEF>
<NAME>PangoFT2Subfont</NAME>
typedef guint16 PangoFT2Subfont;
</TYPEDEF>
<MACRO>
<NAME>PANGO_FT2_MAKE_GLYPH</NAME>
#define PANGO_FT2_MAKE_GLYPH(subfont,index) ((subfont)<<16 | (index))
</MACRO>
<MACRO>
<NAME>PANGO_FT2_GLYPH_SUBFONT</NAME>
#define PANGO_FT2_GLYPH_SUBFONT(glyph) ((glyph)>>16)
</MACRO>
<MACRO>
<NAME>PANGO_FT2_GLYPH_INDEX</NAME>
#define PANGO_FT2_GLYPH_INDEX(glyph) ((glyph) & 0xFFFF)
</MACRO>
<FUNCTION>
<NAME>pango_ft2_n_subfonts</NAME>
<RETURNS>int  </RETURNS>
PangoFont          *font
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_has_glyph</NAME>
<RETURNS>gboolean  </RETURNS>
PangoFont          *font,PangoGlyph          glyph
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_get_unknown_glyph</NAME>
<RETURNS>PangoGlyph  </RETURNS>
PangoFont          *font
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_font_get_kerning</NAME>
<RETURNS>int  </RETURNS>
PangoFont          *font,PangoGlyph          left,PangoGlyph          right
</FUNCTION>
<STRUCT>
<NAME>PangoFT2FontCache</NAME>
</STRUCT>
<FUNCTION>
<NAME>pango_ft2_font_cache_new</NAME>
<RETURNS>PangoFT2FontCache  *</RETURNS>
FT_Library         library
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_font_cache_free</NAME>
<RETURNS>void  </RETURNS>
PangoFT2FontCache *cache
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_font_cache_load</NAME>
<RETURNS>FT_Face  </RETURNS>
PangoFT2FontCache *cache,FT_Open_Args      *args,FT_Long            face_index
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_font_cache_unload</NAME>
<RETURNS>void  </RETURNS>
PangoFT2FontCache *cache,FT_Face            face
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_font_map_for_display</NAME>
<RETURNS>PangoFontMap       *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_shutdown_display</NAME>
<RETURNS>void  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_font_map_get_font_cache</NAME>
<RETURNS>PangoFT2FontCache  *</RETURNS>
PangoFontMap      *font_map
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_font_subfont_open_args</NAME>
<RETURNS>void  </RETURNS>
PangoFont         *font,PangoFT2Subfont    subfont_id,FT_Open_Args     **open_args,FT_Long           *face_index
</FUNCTION>
<FUNCTION>
<NAME>pango_ft2_fontmap_dump</NAME>
<RETURNS>void  </RETURNS>
int           indent,PangoFontMap *fontmap
</FUNCTION>
<MACRO>
<NAME>STRICT</NAME>
#define STRICT
</MACRO>
<MACRO>
<NAME>PANGO_RENDER_TYPE_WIN32</NAME>
#define PANGO_RENDER_TYPE_WIN32 "PangoRenderWin32"
</MACRO>
<FUNCTION>
<NAME>pango_win32_get_context</NAME>
<RETURNS>PangoContext  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_load_font</NAME>
<RETURNS>PangoFont  *</RETURNS>
LOGFONT          *lfps,int               n_fonts
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_render</NAME>
<RETURNS>void  </RETURNS>
HDC               hdc,PangoFont        *font,PangoGlyphString *glyphs,gint              x,gint              y
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_render_layout_line</NAME>
<RETURNS>void  </RETURNS>
HDC               hdc,PangoLayoutLine  *line,int               x,int               y
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_render_layout</NAME>
<RETURNS>void  </RETURNS>
HDC               hdc,PangoLayout      *layout,int               x,int               y
</FUNCTION>
<ENUM>
<NAME>PangoWin32UnicodeSubrange</NAME>
typedef enum
{
  PANGO_WIN32_U_BASIC_LATIN = 0,
  PANGO_WIN32_U_LATIN_1_SUPPLEMENT = 1,
  PANGO_WIN32_U_LATIN_EXTENDED_A = 2,
  PANGO_WIN32_U_LATIN_EXTENDED_B = 3,
  PANGO_WIN32_U_IPA_EXTENSIONS = 4,
  PANGO_WIN32_U_SPACING_MODIFIER_LETTERS = 5,
  PANGO_WIN32_U_COMBINING_DIACRITICAL_MARKS = 6,
  PANGO_WIN32_U_BASIC_GREEK = 7,
  PANGO_WIN32_U_GREEK_SYMBOLS_AND_COPTIC = 8,
  PANGO_WIN32_U_CYRILLIC = 9,
  PANGO_WIN32_U_ARMENIAN = 10,
  PANGO_WIN32_U_HEBREW_EXTENDED = 12,
  PANGO_WIN32_U_BASIC_HEBREW = 11,
  PANGO_WIN32_U_BASIC_ARABIC = 13,
  PANGO_WIN32_U_ARABIC_EXTENDED = 14,
  PANGO_WIN32_U_DEVANAGARI = 15,
  PANGO_WIN32_U_BENGALI = 16,
  PANGO_WIN32_U_GURMUKHI = 17,
  PANGO_WIN32_U_GUJARATI = 18,
  PANGO_WIN32_U_ORIYA = 19,
  PANGO_WIN32_U_TAMIL = 20,
  PANGO_WIN32_U_TELUGU = 21,
  PANGO_WIN32_U_KANNADA = 22,
  PANGO_WIN32_U_MALAYALAM = 23,
  PANGO_WIN32_U_THAI = 24,
  PANGO_WIN32_U_LAO = 25,
  PANGO_WIN32_U_GEORGIAN_EXTENDED = 27,
  PANGO_WIN32_U_BASIC_GEORGIAN = 26,
  PANGO_WIN32_U_HANGUL_JAMO = 28,
  PANGO_WIN32_U_LATIN_EXTENDED_ADDITIONAL = 29,
  PANGO_WIN32_U_GREEK_EXTENDED = 30,
  PANGO_WIN32_U_GENERAL_PUNCTUATION = 31,
  PANGO_WIN32_U_SUPERSCRIPTS_AND_SUBSCRIPTS = 32,
  PANGO_WIN32_U_CURRENCY_SYMBOLS = 33,
  PANGO_WIN32_U_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS = 34,
  PANGO_WIN32_U_LETTERLIKE_SYMBOLS = 35,
  PANGO_WIN32_U_NUMBER_FORMS = 36,
  PANGO_WIN32_U_ARROWS = 37,
  PANGO_WIN32_U_MATHEMATICAL_OPERATORS = 38,
  PANGO_WIN32_U_MISCELLANEOUS_TECHNICAL = 39,
  PANGO_WIN32_U_CONTROL_PICTURES = 40,
  PANGO_WIN32_U_OPTICAL_CHARACTER_RECOGNITION = 41,
  PANGO_WIN32_U_ENCLOSED_ALPHANUMERICS = 42,
  PANGO_WIN32_U_BOX_DRAWING = 43,
  PANGO_WIN32_U_BLOCK_ELEMENTS = 44,
  PANGO_WIN32_U_GEOMETRIC_SHAPES = 45,
  PANGO_WIN32_U_MISCELLANEOUS_SYMBOLS = 46,
  PANGO_WIN32_U_DINGBATS = 47,
  PANGO_WIN32_U_CJK_SYMBOLS_AND_PUNCTUATION = 48,
  PANGO_WIN32_U_HIRAGANA = 49,
  PANGO_WIN32_U_KATAKANA = 50,
  PANGO_WIN32_U_BOPOMOFO = 51,
  PANGO_WIN32_U_HANGUL_COMPATIBILITY_JAMO = 52,
  PANGO_WIN32_U_CJK_MISCELLANEOUS = 53,
  PANGO_WIN32_U_ENCLOSED_CJK = 54,
  PANGO_WIN32_U_CJK_COMPATIBILITY = 55,
  PANGO_WIN32_U_HANGUL = 56,
  PANGO_WIN32_U_HANGUL_SUPPLEMENTARY_A = 57,
  PANGO_WIN32_U_HANGUL_SUPPLEMENTARY_B = 58,
  PANGO_WIN32_U_CJK_UNIFIED_IDEOGRAPHS = 59,
  PANGO_WIN32_U_PRIVATE_USE_AREA = 60,
  PANGO_WIN32_U_CJK_COMPATIBILITY_IDEOGRAPHS = 61,
  PANGO_WIN32_U_ALPHABETIC_PRESENTATION_FORMS = 62,
  PANGO_WIN32_U_ARABIC_PRESENTATION_FORMS_A = 63,
  PANGO_WIN32_U_COMBINING_HALF_MARKS = 64,
  PANGO_WIN32_U_CJK_COMPATIBILITY_FORMS = 65,
  PANGO_WIN32_U_SMALL_FORM_VARIANTS = 66,
  PANGO_WIN32_U_ARABIC_PRESENTATION_FORMS_B = 67,
  PANGO_WIN32_U_SPECIALS = 69,
  PANGO_WIN32_U_HALFWIDTH_AND_FULLWIDTH_FORMS = 68,
  PANGO_WIN32_U_LAST_PLUS_ONE
} PangoWin32UnicodeSubrange;
</ENUM>
<FUNCTION>
<NAME>pango_win32_unicode_classify</NAME>
<RETURNS>PangoWin32UnicodeSubrange  </RETURNS>
wchar_t wc
</FUNCTION>
<TYPEDEF>
<NAME>PangoWin32Subfont</NAME>
typedef guint16 PangoWin32Subfont;
</TYPEDEF>
<MACRO>
<NAME>PANGO_WIN32_MAKE_GLYPH</NAME>
#define PANGO_WIN32_MAKE_GLYPH(subfont,index) ((subfont)<<16 | (index))
</MACRO>
<MACRO>
<NAME>PANGO_WIN32_GLYPH_SUBFONT</NAME>
#define PANGO_WIN32_GLYPH_SUBFONT(glyph) ((glyph)>>16)
</MACRO>
<MACRO>
<NAME>PANGO_WIN32_GLYPH_INDEX</NAME>
#define PANGO_WIN32_GLYPH_INDEX(glyph) ((glyph) & 0xffff)
</MACRO>
<FUNCTION>
<NAME>pango_win32_list_subfonts</NAME>
<RETURNS>int  </RETURNS>
PangoFont                 *font,PangoWin32UnicodeSubrange  subrange,PangoWin32Subfont        **subfont_ids
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_has_glyph</NAME>
<RETURNS>gboolean  </RETURNS>
PangoFont                 *font,PangoGlyph                 glyph
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_get_unknown_glyph</NAME>
<RETURNS>PangoGlyph  </RETURNS>
PangoFont                *font
</FUNCTION>
<STRUCT>
<NAME>PangoWin32FontCache</NAME>
</STRUCT>
<FUNCTION>
<NAME>pango_win32_font_cache_new</NAME>
<RETURNS>PangoWin32FontCache  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_font_cache_free</NAME>
<RETURNS>void  </RETURNS>
PangoWin32FontCache *cache
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_font_cache_load</NAME>
<RETURNS>HFONT  </RETURNS>
PangoWin32FontCache *cache,const LOGFONT       *logfont
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_font_cache_unload</NAME>
<RETURNS>void  </RETURNS>
PangoWin32FontCache *cache,HFONT                hfont
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_font_map_for_display</NAME>
<RETURNS>PangoFontMap         *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_shutdown_display</NAME>
<RETURNS>void  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_font_map_get_font_cache</NAME>
<RETURNS>PangoWin32FontCache  *</RETURNS>
PangoFontMap       *font_map
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_font_subfont_logfont</NAME>
<RETURNS>LOGFONT              *</RETURNS>
PangoFont          *font,PangoWin32Subfont   subfont_id
</FUNCTION>
<FUNCTION>
<NAME>pango_win32_fontmap_dump</NAME>
<RETURNS>void  </RETURNS>
int                 indent,PangoFontMap       *fontmap
</FUNCTION>
<MACRO>
<NAME>PANGO_RENDER_TYPE_X</NAME>
#define PANGO_RENDER_TYPE_X "PangoRenderX"
</MACRO>
<USER_FUNCTION>
<NAME>PangoGetGCFunc</NAME>
<RETURNS>GC </RETURNS>
PangoContext *context, PangoAttrColor *color, GC base_gc
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PangoFreeGCFunc</NAME>
<RETURNS>void </RETURNS>
PangoContext *context, GC gc
</USER_FUNCTION>
<FUNCTION>
<NAME>pango_x_get_context</NAME>
<RETURNS>PangoContext  *</RETURNS>
Display          *display
</FUNCTION>
<FUNCTION>
<NAME>pango_x_context_set_funcs</NAME>
<RETURNS>void  </RETURNS>
PangoContext     *context,PangoGetGCFunc    get_gc_func,PangoFreeGCFunc   free_gc_func
</FUNCTION>
<FUNCTION>
<NAME>pango_x_load_font</NAME>
<RETURNS>PangoFont  *</RETURNS>
Display          *display,gchar            *spec
</FUNCTION>
<FUNCTION>
<NAME>pango_x_render</NAME>
<RETURNS>void  </RETURNS>
Display          *display,Drawable          d,GC                gc,PangoFont        *font,PangoGlyphString *glyphs,gint              x,gint              y
</FUNCTION>
<FUNCTION>
<NAME>pango_x_render_layout_line</NAME>
<RETURNS>void  </RETURNS>
Display          *display,Drawable          drawable,GC                gc,PangoLayoutLine  *line,int               x,int               y
</FUNCTION>
<FUNCTION>
<NAME>pango_x_render_layout</NAME>
<RETURNS>void  </RETURNS>
Display          *display,Drawable          drawable,GC                gc,PangoLayout      *layout,int               x,int               y
</FUNCTION>
<TYPEDEF>
<NAME>PangoXSubfont</NAME>
typedef guint16 PangoXSubfont;
</TYPEDEF>
<MACRO>
<NAME>PANGO_X_MAKE_GLYPH</NAME>
#define PANGO_X_MAKE_GLYPH(subfont,index) ((subfont)<<16 | (index))
</MACRO>
<MACRO>
<NAME>PANGO_X_GLYPH_SUBFONT</NAME>
#define PANGO_X_GLYPH_SUBFONT(glyph) ((glyph)>>16)
</MACRO>
<MACRO>
<NAME>PANGO_X_GLYPH_INDEX</NAME>
#define PANGO_X_GLYPH_INDEX(glyph) ((glyph) & 0xffff)
</MACRO>
<FUNCTION>
<NAME>pango_x_list_subfonts</NAME>
<RETURNS>int  </RETURNS>
PangoFont      *font,char          **charsets,int             n_charsets,PangoXSubfont **subfont_ids,int           **subfont_charsets
</FUNCTION>
<FUNCTION>
<NAME>pango_x_has_glyph</NAME>
<RETURNS>gboolean  </RETURNS>
PangoFont      *font,PangoGlyph      glyph
</FUNCTION>
<FUNCTION>
<NAME>pango_x_get_unknown_glyph</NAME>
<RETURNS>PangoGlyph  </RETURNS>
PangoFont      *font
</FUNCTION>
<STRUCT>
<NAME>PangoXFontCache</NAME>
</STRUCT>
<FUNCTION>
<NAME>pango_x_font_cache_new</NAME>
<RETURNS>PangoXFontCache  *</RETURNS>
Display         *display
</FUNCTION>
<FUNCTION>
<NAME>pango_x_font_cache_free</NAME>
<RETURNS>void  </RETURNS>
PangoXFontCache *cache
</FUNCTION>
<FUNCTION>
<NAME>pango_x_font_cache_load</NAME>
<RETURNS>XFontStruct  *</RETURNS>
PangoXFontCache *cache,char            *xlfd
</FUNCTION>
<FUNCTION>
<NAME>pango_x_font_cache_unload</NAME>
<RETURNS>void  </RETURNS>
PangoXFontCache *cache,XFontStruct     *fs
</FUNCTION>
<FUNCTION>
<NAME>pango_x_font_map_for_display</NAME>
<RETURNS>PangoFontMap  *</RETURNS>
Display     *display
</FUNCTION>
<FUNCTION>
<NAME>pango_x_shutdown_display</NAME>
<RETURNS>void  </RETURNS>
Display     *display
</FUNCTION>
<FUNCTION>
<NAME>pango_x_font_map_get_font_cache</NAME>
<RETURNS>PangoXFontCache  *</RETURNS>
PangoFontMap *font_map
</FUNCTION>
<FUNCTION>
<NAME>pango_x_font_subfont_xlfd</NAME>
<RETURNS>char  *</RETURNS>
PangoFont     *font,PangoXSubfont  subfont_id
</FUNCTION>
<FUNCTION>
<NAME>pango_x_find_first_subfont</NAME>
<RETURNS>gboolean  </RETURNS>
PangoFont     *font,char         **charsets,int            n_charsets,PangoXSubfont *rfont
</FUNCTION>
<FUNCTION>
<NAME>pango_x_fallback_shape</NAME>
<RETURNS>void  </RETURNS>
PangoFont        *font,PangoGlyphString *glyphs,const char       *text,int               n_chars
</FUNCTION>
<FUNCTION>
<NAME>pango_x_apply_ligatures</NAME>
<RETURNS>gboolean  </RETURNS>
PangoFont     *font,PangoXSubfont  subfont,gunichar     **glyphs,int           *n_glyphs,int          **clusters
</FUNCTION>
<MACRO>
<NAME>ZERO_WIDTH_NON_JOINER</NAME>
#define ZERO_WIDTH_NON_JOINER 0x200c
</MACRO>
<MACRO>
<NAME>ZERO_WIDTH_JOINER</NAME>
#define ZERO_WIDTH_JOINER     0x200d
</MACRO>
<STRUCT>
<NAME>PangoIndicScript</NAME>
</STRUCT>
<STRUCT>
<NAME>PangoIndicScript</NAME>
struct PangoIndicScript {
  /* Compulsory */
  gchar *name;
  /* Compulsory */
  gboolean (*is_prefixing_vowel)  (gunichar  what);
  /* Compulsory */
  gboolean (*is_vowel_sign)       (gunichar  what);
  /* Optional */
  gunichar (*vowel_sign_to_matra) (gunichar  what);
  /* Optional */
  gboolean (*is_vowel_half)       (gunichar  what);
  
  /* Optional */
  gboolean (*vowel_split)         (gunichar  what, 
                                   gunichar *prefix, 
                                   gunichar *suffix);
};
</STRUCT>
<FUNCTION>
<NAME>pango_indic_shift_vowels</NAME>
<RETURNS>void  </RETURNS>
PangoIndicScript *script,gunichar         *chars,gunichar         *end
</FUNCTION>
<FUNCTION>
<NAME>pango_indic_compact</NAME>
<RETURNS>void  </RETURNS>
PangoIndicScript *script,int              *num,gunichar         *chars,int              *cluster
</FUNCTION>
<FUNCTION>
<NAME>pango_indic_convert_vowels</NAME>
<RETURNS>void  </RETURNS>
PangoIndicScript *script,gboolean          in_middle,int              *num,gunichar         *chars,gboolean         has_standalone_vowels
</FUNCTION>
<FUNCTION>
<NAME>pango_indic_split_out_characters</NAME>
<RETURNS>void  </RETURNS>
PangoIndicScript *script,const gchar *text,int n_chars,gunichar **wc,int *n_glyph,PangoGlyphString *glyphs
</FUNCTION>
