15.12. Data Definitions for libpango-1.0

This section defines global identifiers and their values that are associated with interfaces contained in libpango-1.0. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.

This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.

This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.

15.12.1. pango-1.0/pango/pango-utils.h


extern char *pango_trim_string(const char *);
extern gboolean pango_scan_word(const char **, GString *);
extern gboolean pango_skip_space(const char **);
extern gboolean pango_parse_stretch(const char *, PangoStretch *,
				    gboolean);
extern gboolean pango_scan_int(const char **, int *);
extern gboolean pango_parse_weight(const char *, PangoWeight *, gboolean);
extern gint pango_read_line(FILE *, GString *);
extern gboolean pango_log2vis_get_embedding_levels(gunichar *, gint,
						   PangoDirection *,
						   guint8 *);
extern const char *pango_language_get_sample_string(PangoLanguage *);
extern gboolean pango_parse_style(const char *, PangoStyle *, gboolean);
extern gboolean pango_scan_string(const char **, GString *);
extern gboolean pango_parse_variant(const char *, PangoVariant *,
				    gboolean);
extern char **pango_split_file_list(const char *);

15.12.2. pango-1.0/pango/pango.h


#define PANGO_CONTEXT_CLASS(klass)	 \
	(G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_CONTEXT, \
	PangoContextClass))
#define PANGO_LAYOUT_CLASS(klass)	 \
	(G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_LAYOUT, \
	PangoLayoutClass))
#define PANGO_RENDERER_CLASS(klass)	 \
	(G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_RENDERER, \
	PangoRendererClass))
#define PANGO_IS_CONTEXT_CLASS(klass)	 \
	(G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_CONTEXT))
#define PANGO_IS_LAYOUT_CLASS(klass)	 \
	(G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_LAYOUT))
#define PANGO_IS_RENDERER_CLASS(klass)	 \
	(G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_RENDERER))
#define PANGO_CONTEXT(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_CONTEXT, \
	PangoContext))
#define PANGO_FONT(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT, PangoFont))
#define PANGO_FONTSET(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONTSET, \
	PangoFontset))
#define PANGO_FONT_FACE(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FACE, \
	PangoFontFace))
#define PANGO_FONT_FAMILY(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FAMILY, \
	PangoFontFamily))
#define PANGO_FONT_MAP(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_MAP, \
	PangoFontMap))
#define PANGO_LAYOUT(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_LAYOUT, \
	PangoLayout))
#define PANGO_RENDERER(object)	 \
	(G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_RENDERER, \
	PangoRenderer))
#define PANGO_IS_CONTEXT(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_CONTEXT))
#define PANGO_IS_FONT(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT))
#define PANGO_IS_FONTSET(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONTSET))
#define PANGO_IS_FONT_FACE(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FACE))
#define PANGO_IS_FONT_FAMILY(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FAMILY))
#define PANGO_IS_FONT_MAP(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_MAP))
#define PANGO_IS_LAYOUT(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_LAYOUT))
#define PANGO_IS_RENDERER(object)	 \
	(G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_RENDERER))
#define PANGO_CONTEXT_GET_CLASS(obj)	 \
	(G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_CONTEXT, \
	PangoContextClass))
#define PANGO_LAYOUT_GET_CLASS(obj)	 \
	(G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_LAYOUT, \
	PangoLayoutClass))
#define PANGO_RENDERER_GET_CLASS(obj)	 \
	(G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_RENDERER, \
	PangoRendererClass))
#define PANGO_PIXELS(d)	(((int)(d) + 512) >> 10)
#define pango_language_to_string(language)	((const char *)language)
#define PANGO_SCALE_XX_SMALL	((double)0.5787037037037)
#define PANGO_SCALE_X_SMALL	((double)0.6444444444444)
#define PANGO_SCALE_SMALL	((double)0.8333333333333)
#define PANGO_SCALE_MEDIUM	((double)1.0)
#define PANGO_SCALE_LARGE	((double)1.2)
#define PANGO_SCALE_X_LARGE	((double)1.4399999999999)
#define PANGO_SCALE_XX_LARGE	((double)1.728)
#define PANGO_RBEARING(rect)	((rect).x + (rect).width)
#define PANGO_LBEARING(rect)	((rect).x)
#define PANGO_DESCENT(rect)	((rect).y + (rect).height)
#define PANGO_ASCENT(rect)	(-(rect).y)
#define PANGO_TYPE_ALIGNMENT	(pango_alignment_get_type())
#define PANGO_TYPE_ATTR_TYPE	(pango_attr_type_get_type())
#define PANGO_TYPE_CONTEXT	(pango_context_get_type ())
#define PANGO_TYPE_COVERAGE_LEVEL	(pango_coverage_level_get_type())
#define PANGO_TYPE_DIRECTION	(pango_direction_get_type())
#define PANGO_TYPE_ELLIPSIZE_MODE	(pango_ellipsize_mode_get_type())
#define PANGO_TYPE_FONTSET	(pango_fontset_get_type ())
#define PANGO_TYPE_FONT_DESCRIPTION	(pango_font_description_get_type ())
#define PANGO_TYPE_FONT_FACE	(pango_font_face_get_type ())
#define PANGO_TYPE_FONT_FAMILY	(pango_font_family_get_type ())
#define PANGO_TYPE_FONT	(pango_font_get_type ())
#define PANGO_TYPE_FONT_MAP	(pango_font_map_get_type ())
#define PANGO_TYPE_FONT_MASK	(pango_font_mask_get_type())
#define PANGO_TYPE_FONT_METRICS	(pango_font_metrics_get_type ())
#define PANGO_TYPE_GLYPH_STRING	(pango_glyph_string_get_type ())
#define PANGO_TYPE_LANGUAGE	(pango_language_get_type ())
#define PANGO_TYPE_LAYOUT	(pango_layout_get_type ())
#define PANGO_TYPE_LAYOUT_ITER	(pango_layout_iter_get_type ())
#define PANGO_TYPE_MATRIX	(pango_matrix_get_type ())
#define PANGO_TYPE_RENDERER	(pango_renderer_get_type())
#define PANGO_TYPE_RENDER_PART	(pango_render_part_get_type())
#define PANGO_TYPE_SCRIPT	(pango_script_get_type())
#define PANGO_TYPE_STRETCH	(pango_stretch_get_type())
#define PANGO_TYPE_STYLE	(pango_style_get_type())
#define PANGO_TYPE_TAB_ALIGN	(pango_tab_align_get_type())
#define PANGO_TYPE_TAB_ARRAY	(pango_tab_array_get_type ())
#define PANGO_TYPE_UNDERLINE	(pango_underline_get_type())
#define PANGO_TYPE_VARIANT	(pango_variant_get_type())
#define PANGO_TYPE_WEIGHT	(pango_weight_get_type())
#define PANGO_TYPE_WRAP_MODE	(pango_wrap_mode_get_type())
#define PANGO_SCALE	1024
#define PANGO_TYPE_ATTR_LIST	pango_attr_list_get_type ()
#define PANGO_TYPE_COLOR	pango_color_get_type ()
#define PANGO_MATRIX_INIT	{ 1., 0., 0., 1., 0., 0. }

typedef struct _PangoFontFace PangoFontFace;
typedef enum {
    PANGO_WRAP_WORD = 0,
    PANGO_WRAP_CHAR = 1,
    PANGO_WRAP_WORD_CHAR = 2
} PangoWrapMode;
typedef struct _PangoLayout PangoLayout;
typedef struct _PangoScriptIter PangoScriptIter;
typedef enum {
    PANGO_SCRIPT_INVALID_CODE = -1,
    PANGO_SCRIPT_COMMON = 0,
    PANGO_SCRIPT_INHERITED = 1,
    PANGO_SCRIPT_ARABIC = 2,
    PANGO_SCRIPT_ARMENIAN = 3,
    PANGO_SCRIPT_BENGALI = 4,
    PANGO_SCRIPT_BOPOMOFO = 5,
    PANGO_SCRIPT_CHEROKEE = 6,
    PANGO_SCRIPT_COPTIC = 7,
    PANGO_SCRIPT_CYRILLIC = 8,
    PANGO_SCRIPT_DESERET = 9,
    PANGO_SCRIPT_DEVANAGARI = 10,
    PANGO_SCRIPT_ETHIOPIC = 11,
    PANGO_SCRIPT_GEORGIAN = 12,
    PANGO_SCRIPT_GOTHIC = 13,
    PANGO_SCRIPT_GREEK = 14,
    PANGO_SCRIPT_GUJARATI = 15,
    PANGO_SCRIPT_GURMUKHI = 16,
    PANGO_SCRIPT_HAN = 17,
    PANGO_SCRIPT_HANGUL = 18,
    PANGO_SCRIPT_HEBREW = 19,
    PANGO_SCRIPT_HIRAGANA = 20,
    PANGO_SCRIPT_KANNADA = 21,
    PANGO_SCRIPT_KATAKANA = 22,
    PANGO_SCRIPT_KHMER = 23,
    PANGO_SCRIPT_LAO = 24,
    PANGO_SCRIPT_LATIN = 25,
    PANGO_SCRIPT_MALAYALAM = 26,
    PANGO_SCRIPT_MONGOLIAN = 27,
    PANGO_SCRIPT_MYANMAR = 28,
    PANGO_SCRIPT_OGHAM = 29,
    PANGO_SCRIPT_OLD_ITALIC = 30,
    PANGO_SCRIPT_ORIYA = 31,
    PANGO_SCRIPT_RUNIC = 32,
    PANGO_SCRIPT_SINHALA = 33,
    PANGO_SCRIPT_SYRIAC = 34,
    PANGO_SCRIPT_TAMIL = 35,
    PANGO_SCRIPT_TELUGU = 36,
    PANGO_SCRIPT_THAANA = 37,
    PANGO_SCRIPT_THAI = 38,
    PANGO_SCRIPT_TIBETAN = 39,
    PANGO_SCRIPT_CANADIAN_ABORIGINAL = 40,
    PANGO_SCRIPT_YI = 41,
    PANGO_SCRIPT_TAGALOG = 42,
    PANGO_SCRIPT_HANUNOO = 43,
    PANGO_SCRIPT_BUHID = 44,
    PANGO_SCRIPT_TAGBANWA = 45,
    PANGO_SCRIPT_BRAILLE = 46,
    PANGO_SCRIPT_CYPRIOT = 47,
    PANGO_SCRIPT_LIMBU = 48,
    PANGO_SCRIPT_OSMANYA = 49,
    PANGO_SCRIPT_SHAVIAN = 50,
    PANGO_SCRIPT_LINEAR_B = 51,
    PANGO_SCRIPT_TAI_LE = 52,
    PANGO_SCRIPT_UGARITIC = 53
} PangoScript;
typedef struct _PangoFont PangoFont;
typedef struct _PangoContext PangoContext;
typedef struct _PangoFontDescription PangoFontDescription;
typedef enum {
    PANGO_ATTR_INVALID = 0,
    PANGO_ATTR_LANGUAGE = 1,
    PANGO_ATTR_FAMILY = 2,
    PANGO_ATTR_STYLE = 3,
    PANGO_ATTR_WEIGHT = 4,
    PANGO_ATTR_VARIANT = 5,
    PANGO_ATTR_STRETCH = 6,
    PANGO_ATTR_SIZE = 7,
    PANGO_ATTR_FONT_DESC = 8,
    PANGO_ATTR_FOREGROUND = 9,
    PANGO_ATTR_BACKGROUND = 10,
    PANGO_ATTR_UNDERLINE = 11,
    PANGO_ATTR_STRIKETHROUGH = 12,
    PANGO_ATTR_RISE = 13,
    PANGO_ATTR_SHAPE = 14,
    PANGO_ATTR_SCALE = 15,
    PANGO_ATTR_FALLBACK = 16,
    PANGO_ATTR_LETTER_SPACING = 17,
    PANGO_ATTR_UNDERLINE_COLOR = 18,
    PANGO_ATTR_STRIKETHROUGH_COLOR = 19,
    PANGO_ATTR_ABSOLUTE_SIZE = 20
} PangoAttrType;
typedef struct _PangoAttribute {
    const PangoAttrClass *klass;
    guint start_index;
    guint end_index;
} PangoAttribute;
typedef struct _PangoAttrClass {
    PangoAttrType type;
    PangoAttribute *(*copy) (const PangoAttribute *);
    void (*destroy) (PangoAttribute *);
     gboolean(*equal) (const PangoAttribute *, const PangoAttribute *);
} PangoAttrClass;
typedef struct _PangoLanguage PangoLanguage;
typedef struct _PangoLogAttr {
    guint is_line_break:1;
    guint is_mandatory_break:1;
    guint is_char_break:1;
    guint is_white:1;
    guint is_cursor_position:1;
    guint is_word_start:1;
    guint is_word_end:1;
    guint is_sentence_boundary:1;
    guint is_sentence_start:1;
    guint is_sentence_end:1;
    guint backspace_deletes_character:1;
} PangoLogAttr;
typedef struct _PangoColor {
    guint16 red;
    guint16 green;
    guint16 blue;
} PangoColor;
typedef struct _PangoMatrix {
    double xx;
    double xy;
    double yx;
    double yy;
    double x0;
    double y0;
} PangoMatrix;
typedef struct _PangoEngineShape PangoEngineShape;
typedef struct _PangoEngineLang PangoEngineLang;
typedef struct _PangoAnalysis {
    PangoEngineShape *shape_engine;
    PangoEngineLang *lang_engine;
    PangoFont *font;
    guint8 level;
    PangoLanguage *language;
    GSList *extra_attrs;
} PangoAnalysis;
typedef struct _PangoItem {
    gint offset;
    gint length;
    gint num_chars;
    PangoAnalysis analysis;
} PangoItem;
typedef guint32 PangoGlyph;
typedef gint32 PangoGlyphUnit;
typedef struct _PangoGlyphGeometry {
    PangoGlyphUnit width;
    PangoGlyphUnit x_offset;
    PangoGlyphUnit y_offset;
} PangoGlyphGeometry;
typedef struct _PangoGlyphVisAttr {
    guint is_cluster_start:1;
} PangoGlyphVisAttr;
typedef struct _PangoGlyphInfo {
    PangoGlyph glyph;
    PangoGlyphGeometry geometry;
    PangoGlyphVisAttr attr;
} PangoGlyphInfo;
typedef struct _PangoGlyphString {
    gint num_glyphs;
    PangoGlyphInfo *glyphs;
    gint *log_clusters;
    gint space;
} PangoGlyphString;
typedef struct _PangoGlyphItem {
    PangoItem *item;
    PangoGlyphString *glyphs;
} PangoGlyphItem;
typedef PangoGlyphItem PangoLayoutRun;
typedef struct _PangoLayoutIter PangoLayoutIter;
typedef enum {
    PANGO_UNDERLINE_NONE = 0,
    PANGO_UNDERLINE_SINGLE = 1,
    PANGO_UNDERLINE_DOUBLE = 2,
    PANGO_UNDERLINE_LOW = 3,
    PANGO_UNDERLINE_ERROR = 4
} PangoUnderline;
typedef struct _PangoRendererPrivate PangoRendererPrivate;
typedef struct _PangoRenderer {
    GObject parent_instance;
    PangoUnderline underline;
    gboolean strikethrough;
    int active_count;
    PangoMatrix *matrix;
    PangoRendererPrivate *priv;
} PangoRenderer;
typedef enum {
    PANGO_RENDER_PART_FOREGROUND = 0,
    PANGO_RENDER_PART_BACKGROUND = 1,
    PANGO_RENDER_PART_UNDERLINE = 2,
    PANGO_RENDER_PART_STRIKETHROUGH = 3
} PangoRenderPart;
typedef struct _PangoAttrList PangoAttrList;
typedef struct _PangoLayoutLine {
    PangoLayout *layout;
    gint start_index;
    gint length;
    GSList *runs;
    guint is_paragraph_start:1;
    guint resolved_dir:3;
} PangoLayoutLine;
typedef enum {
    PANGO_STRETCH_ULTRA_CONDENSED = 0,
    PANGO_STRETCH_EXTRA_CONDENSED = 1,
    PANGO_STRETCH_CONDENSED = 2,
    PANGO_STRETCH_SEMI_CONDENSED = 3,
    PANGO_STRETCH_NORMAL = 4,
    PANGO_STRETCH_SEMI_EXPANDED = 5,
    PANGO_STRETCH_EXPANDED = 6,
    PANGO_STRETCH_EXTRA_EXPANDED = 7,
    PANGO_STRETCH_ULTRA_EXPANDED = 8
} PangoStretch;
typedef struct _PangoRectangle {
    int x;
    int y;
    int width;
    int height;
} PangoRectangle;
typedef struct _PangoFontFamily PangoFontFamily;
typedef struct _PangoFontMetrics PangoFontMetrics;
typedef struct _PangoTabArray PangoTabArray;
typedef enum {
    PANGO_TAB_LEFT = 0
} PangoTabAlign;
typedef enum {
    PANGO_ALIGN_LEFT = 0,
    PANGO_ALIGN_CENTER = 1,
    PANGO_ALIGN_RIGHT = 2
} PangoAlignment;
typedef struct _PangoAttrIterator PangoAttrIterator;
typedef enum {
    PANGO_FONT_MASK_FAMILY = 1,
    PANGO_FONT_MASK_STYLE = 2,
    PANGO_FONT_MASK_VARIANT = 4,
    PANGO_FONT_MASK_WEIGHT = 8,
    PANGO_FONT_MASK_STRETCH = 16,
    PANGO_FONT_MASK_SIZE = 32
} PangoFontMask;
typedef enum {
    PANGO_DIRECTION_LTR = 0,
    PANGO_DIRECTION_RTL = 1,
    PANGO_DIRECTION_TTB_LTR = 2,
    PANGO_DIRECTION_TTB_RTL = 3,
    PANGO_DIRECTION_WEAK_LTR = 4,
    PANGO_DIRECTION_WEAK_RTL = 5,
    PANGO_DIRECTION_NEUTRAL = 6
} PangoDirection;
typedef enum {
    PANGO_ELLIPSIZE_NONE = 0,
    PANGO_ELLIPSIZE_START = 1,
    PANGO_ELLIPSIZE_MIDDLE = 2,
    PANGO_ELLIPSIZE_END = 3
} PangoEllipsizeMode;
typedef struct _PangoCoverage PangoCoverage;
typedef enum {
    PANGO_STYLE_NORMAL = 0,
    PANGO_STYLE_OBLIQUE = 1,
    PANGO_STYLE_ITALIC = 2
} PangoStyle;
typedef enum {
    PANGO_COVERAGE_NONE = 0,
    PANGO_COVERAGE_FALLBACK = 1,
    PANGO_COVERAGE_APPROXIMATE = 2,
    PANGO_COVERAGE_EXACT = 3
} PangoCoverageLevel;
typedef struct _PangoFontMap PangoFontMap;
typedef gboolean(*PangoAttrFilterFunc) (PangoAttribute *, gpointer);
typedef struct _PangoFontset PangoFontset;
typedef enum {
    PANGO_WEIGHT_ULTRALIGHT = 200,
    PANGO_WEIGHT_LIGHT = 300,
    PANGO_WEIGHT_NORMAL = 400,
    PANGO_WEIGHT_SEMIBOLD = 600,
    PANGO_WEIGHT_BOLD = 700,
    PANGO_WEIGHT_ULTRABOLD = 800,
    PANGO_WEIGHT_HEAVY = 900
} PangoWeight;
typedef gboolean(*PangoFontsetForeachFunc) (PangoFontset *, PangoFont *,
					    gpointer);
typedef enum {
    PANGO_VARIANT_NORMAL = 0,
    PANGO_VARIANT_SMALL_CAPS = 1
} PangoVariant;
typedef gpointer(*PangoAttrDataCopyFunc) (gconstpointer);
typedef struct _PangoAttrShape {
    PangoAttribute attr;
    PangoRectangle ink_rect;
    PangoRectangle logical_rect;
    gpointer data;
    PangoAttrDataCopyFunc copy_func;
    GDestroyNotify destroy_func;
} PangoAttrShape;
typedef struct _PangoContextClass PangoContextClass;
typedef struct _PangoAttrString {
    PangoAttribute attr;
    char *value;
} PangoAttrString;
typedef struct _PangoAttrColor {
    PangoAttribute attr;
    PangoColor color;
} PangoAttrColor;
typedef struct _PangoAttrFontDesc {
    PangoAttribute attr;
    PangoFontDescription *desc;
} PangoAttrFontDesc;
typedef struct _PangoAttrFloat {
    PangoAttribute attr;
    double value;
} PangoAttrFloat;
typedef struct _PangoRendererClass {
    GObjectClass parent_class;
    void (*draw_glyphs) (PangoRenderer *, PangoFont *, PangoGlyphString *,
			 int, int);
    void (*draw_rectangle) (PangoRenderer *, PangoRenderPart, int, int,
			    int, int);
    void (*draw_error_underline) (PangoRenderer *, int, int, int, int);
    void (*draw_shape) (PangoRenderer *, PangoAttrShape *, int, int);
    void (*draw_trapezoid) (PangoRenderer *, PangoRenderPart, double,
			    double, double, double, double, double);
    void (*draw_glyph) (PangoRenderer *, PangoFont *, PangoGlyph, double,
			double);
    void (*part_changed) (PangoRenderer *, PangoRenderPart);
    void (*begin) (PangoRenderer *);
    void (*end) (PangoRenderer *);
    void (*prepare_run) (PangoRenderer *, PangoLayoutRun *);
    void (*_pango_reserved1) (void);
    void (*_pango_reserved2) (void);
    void (*_pango_reserved3) (void);
    void (*_pango_reserved4) (void);
} PangoRendererClass;
typedef struct _PangoAttrLanguage {
    PangoAttribute attr;
    PangoLanguage *value;
} PangoAttrLanguage;
typedef struct _PangoAttrInt {
    PangoAttribute attr;
    int value;
} PangoAttrInt;
typedef struct _PangoAttrSize {
    PangoAttribute attr;
    int size;
    guint absolute:1;
} PangoAttrSize;
typedef struct _PangoLayoutClass PangoLayoutClass;
extern GType pango_script_get_type(void);
extern const char *pango_font_face_get_face_name(PangoFontFace *);
extern PangoWrapMode pango_layout_get_wrap(PangoLayout *);
extern void pango_layout_context_changed(PangoLayout *);
extern gboolean pango_script_iter_next(PangoScriptIter *);
extern PangoScript pango_script_for_unichar(gunichar);
extern PangoFont *pango_context_load_font(PangoContext *,
					  const PangoFontDescription *);
extern gboolean pango_attribute_equal(const PangoAttribute *,
				      const PangoAttribute *);
extern void pango_get_log_attrs(const char *, int, int, PangoLanguage *,
				PangoLogAttr *, int);
extern gboolean pango_color_parse(PangoColor *, const char *);
extern gboolean pango_font_description_equal(const PangoFontDescription *,
					     const PangoFontDescription *);
extern PangoAttribute *pango_attr_rise_new(int);
extern void pango_matrix_translate(PangoMatrix *, double, double);
extern PangoLayoutRun *pango_layout_iter_get_run(PangoLayoutIter *);
extern PangoLayout *pango_layout_new(PangoContext *);
extern PangoAttribute *pango_attr_size_new(int);
extern PangoAttribute *pango_attr_family_new(const char *);
extern void pango_layout_set_markup_with_accel(PangoLayout *, const char *,
					       int, gunichar, gunichar *);
extern PangoLanguage *pango_script_get_sample_language(PangoScript);
extern void pango_renderer_draw_trapezoid(PangoRenderer *, PangoRenderPart,
					  double, double, double, double,
					  double, double);
extern void pango_attr_list_insert_before(PangoAttrList *,
					  PangoAttribute *);
extern PangoAttribute *pango_attr_underline_new(PangoUnderline);
extern void pango_layout_line_unref(PangoLayoutLine *);
extern void pango_glyph_string_get_logical_widths(PangoGlyphString *,
						  const char *, int, int,
						  int *);
extern PangoStretch pango_font_description_get_stretch(const
						       PangoFontDescription
						       *);
extern void pango_layout_iter_get_char_extents(PangoLayoutIter *,
					       PangoRectangle *);
extern PangoAttribute *pango_attr_scale_new(double);
extern void pango_layout_set_width(PangoLayout *, int);
extern void pango_layout_line_index_to_x(PangoLayoutLine *, int, int,
					 int *);
extern gboolean pango_font_family_is_monospace(PangoFontFamily *);
extern void pango_font_descriptions_free(PangoFontDescription * *, int);
extern void pango_layout_set_single_paragraph_mode(PangoLayout *,
						   gboolean);
extern char *pango_font_description_to_filename(const PangoFontDescription
						*);
extern PangoLayout *pango_layout_copy(PangoLayout *);
extern int pango_font_metrics_get_approximate_char_width(PangoFontMetrics
							 *);
extern void pango_shape(const gchar *, gint, PangoAnalysis *,
			PangoGlyphString *);
extern void pango_layout_line_get_pixel_extents(PangoLayoutLine *,
						PangoRectangle *,
						PangoRectangle *);
extern void pango_layout_set_wrap(PangoLayout *, PangoWrapMode);
extern const char *pango_font_description_get_family(const
						     PangoFontDescription
						     *);
extern void pango_tab_array_get_tabs(PangoTabArray *, PangoTabAlign * *,
				     gint * *);
extern void pango_script_iter_get_range(PangoScriptIter *, const char **,
					const char **, PangoScript *);
extern gboolean pango_layout_iter_next_line(PangoLayoutIter *);
extern void pango_layout_get_log_attrs(PangoLayout *, PangoLogAttr * *,
				       gint *);
extern void pango_tab_array_free(PangoTabArray *);
extern PangoTabArray *pango_layout_get_tabs(PangoLayout *);
extern PangoFontDescription *pango_font_describe(PangoFont *);
extern void pango_context_set_font_description(PangoContext *,
					       const PangoFontDescription
					       *);
extern gint pango_tab_array_get_size(PangoTabArray *);
extern PangoAlignment pango_layout_get_alignment(PangoLayout *);
extern const PangoMatrix *pango_renderer_get_matrix(PangoRenderer *);
extern PangoAttrIterator *pango_attr_iterator_copy(PangoAttrIterator *);
extern GType pango_style_get_type(void);
extern PangoFontMask pango_font_description_get_set_fields(const
							   PangoFontDescription
							   *);
extern gboolean pango_language_matches(PangoLanguage *, const char *);
extern int pango_font_metrics_get_descent(PangoFontMetrics *);
extern void pango_layout_get_extents(PangoLayout *, PangoRectangle *,
				     PangoRectangle *);
extern char *pango_font_description_to_string(const PangoFontDescription
					      *);
extern void pango_layout_set_justify(PangoLayout *, gboolean);
extern void pango_find_paragraph_boundary(const gchar *, gint, gint *,
					  gint *);
extern PangoDirection pango_unichar_direction(gunichar);
extern GList *pango_reorder_items(GList *);
extern void pango_glyph_string_set_size(PangoGlyphString *, gint);
extern PangoFontDescription *pango_font_description_from_string(const char
								*);
extern int pango_font_metrics_get_strikethrough_position(PangoFontMetrics
							 *);
extern PangoEngineShape *pango_font_find_shaper(PangoFont *,
						PangoLanguage *, guint32);
extern GType pango_glyph_string_get_type(void);
extern PangoEllipsizeMode pango_layout_get_ellipsize(PangoLayout *);
extern PangoFontDescription *pango_font_face_describe(PangoFontFace *);
extern PangoMatrix *pango_matrix_copy(const PangoMatrix *);
extern const PangoMatrix *pango_context_get_matrix(PangoContext *);
extern void pango_attr_iterator_range(PangoAttrIterator *, gint *, gint *);
extern void pango_context_set_language(PangoContext *, PangoLanguage *);
extern void pango_glyph_item_letter_space(PangoGlyphItem *, const char *,
					  PangoLogAttr *, int);
extern void pango_coverage_max(PangoCoverage *, PangoCoverage *);
extern PangoStyle pango_font_description_get_style(const
						   PangoFontDescription *);
extern void pango_layout_line_get_extents(PangoLayoutLine *,
					  PangoRectangle *,
					  PangoRectangle *);
extern void pango_attribute_destroy(PangoAttribute *);
extern PangoLayoutLine *pango_layout_get_line(PangoLayout *, int);
extern gboolean pango_layout_get_auto_dir(PangoLayout *);
extern int pango_font_metrics_get_approximate_digit_width(PangoFontMetrics
							  *);
extern void pango_attr_list_splice(PangoAttrList *, PangoAttrList *, gint,
				   gint);
extern PangoLayoutLine *pango_layout_iter_get_line(PangoLayoutIter *);
extern PangoFontDescription *pango_font_description_new(void);
extern PangoAttribute *pango_attr_font_desc_new(const PangoFontDescription
						*);
extern PangoFontDescription *pango_font_description_copy_static(const
								PangoFontDescription
								*);
extern void pango_font_metrics_unref(PangoFontMetrics *);
extern PangoDirection pango_find_base_dir(const gchar *, gint);
extern void pango_layout_iter_get_run_extents(PangoLayoutIter *,
					      PangoRectangle *,
					      PangoRectangle *);
extern void pango_layout_index_to_pos(PangoLayout *, int,
				      PangoRectangle *);
extern const char *pango_font_family_get_name(PangoFontFamily *);
extern void pango_layout_line_get_x_ranges(PangoLayoutLine *, int, int,
					   int **, int *);
extern void pango_item_free(PangoItem *);
extern GType pango_renderer_get_type(void);
extern void pango_layout_set_indent(PangoLayout *, int);
extern void pango_layout_set_text(PangoLayout *, const char *, int);
extern gint pango_font_description_get_size(const PangoFontDescription *);
extern GType pango_fontset_get_type(void);
extern GType pango_weight_get_type(void);
extern guint pango_font_description_hash(const PangoFontDescription *);
extern void pango_renderer_activate(PangoRenderer *);
extern PangoContext *pango_layout_get_context(PangoLayout *);
extern PangoCoverage *pango_coverage_new(void);
extern PangoAttribute *pango_attr_strikethrough_new(gboolean);
extern void pango_coverage_set(PangoCoverage *, int, PangoCoverageLevel);
extern PangoFont *pango_font_map_load_font(PangoFontMap *, PangoContext *,
					   const PangoFontDescription *);
extern int pango_layout_iter_get_baseline(PangoLayoutIter *);
extern gboolean pango_font_description_better_match(const
						    PangoFontDescription *,
						    const
						    PangoFontDescription *,
						    const
						    PangoFontDescription
						    *);
extern void pango_layout_iter_get_line_extents(PangoLayoutIter *,
					       PangoRectangle *,
					       PangoRectangle *);
extern PangoItem *pango_item_new(void);
extern GType pango_font_mask_get_type(void);
extern void pango_tab_array_get_tab(PangoTabArray *, gint, PangoTabAlign *,
				    gint *);
extern gboolean pango_attr_iterator_next(PangoAttrIterator *);
extern gboolean pango_layout_get_justify(PangoLayout *);
extern PangoCoverage *pango_coverage_ref(PangoCoverage *);
extern PangoAttribute *pango_attr_foreground_new(guint16, guint16,
						 guint16);
extern PangoAttrList *pango_attr_list_filter(PangoAttrList *,
					     PangoAttrFilterFunc,
					     gpointer);
extern PangoFontDescription
    *pango_context_get_font_description(PangoContext *);
extern PangoTabArray *pango_tab_array_new_with_positions(gint, gboolean,
							 PangoTabAlign,
							 gint, ...);
extern GSList *pango_glyph_item_apply_attrs(PangoGlyphItem *, const char *,
					    PangoAttrList *);
extern PangoAttribute *pango_attr_shape_new(const PangoRectangle *,
					    const PangoRectangle *);
extern GType pango_variant_get_type(void);
extern void pango_layout_set_spacing(PangoLayout *, int);
extern void pango_attr_list_ref(PangoAttrList *);
extern void pango_font_description_set_family_static(PangoFontDescription
						     *, const char *);
extern gboolean pango_layout_iter_next_char(PangoLayoutIter *);
extern void pango_glyph_string_index_to_x(PangoGlyphString *, char *, int,
					  PangoAnalysis *, int, gboolean,
					  int *);
extern PangoAttribute *pango_attr_stretch_new(PangoStretch);
extern GType pango_attr_type_get_type(void);
extern GType pango_language_get_type(void);
extern void pango_font_get_glyph_extents(PangoFont *, PangoGlyph,
					 PangoRectangle *,
					 PangoRectangle *);
extern PangoAttribute *pango_attr_fallback_new(gboolean);
extern void pango_font_description_merge_static(PangoFontDescription *,
						const PangoFontDescription
						*, gboolean);
extern PangoAttrList *pango_layout_get_attributes(PangoLayout *);
extern PangoFontset *pango_font_map_load_fontset(PangoFontMap *,
						 PangoContext *,
						 const PangoFontDescription
						 *, PangoLanguage *);
extern void pango_layout_set_tabs(PangoLayout *, PangoTabArray *);
extern GType pango_attr_list_get_type(void);
extern GType pango_font_family_get_type(void);
extern void pango_matrix_free(PangoMatrix *);
extern PangoAttribute *pango_attr_language_new(PangoLanguage *);
extern void pango_layout_iter_get_cluster_extents(PangoLayoutIter *,
						  PangoRectangle *,
						  PangoRectangle *);
extern PangoAttrType pango_attr_type_register(const gchar *);
extern void pango_context_set_matrix(PangoContext *, const PangoMatrix *);
extern void pango_layout_set_markup(PangoLayout *, const char *, int);
extern GType pango_coverage_level_get_type(void);
extern PangoTabArray *pango_tab_array_copy(PangoTabArray *);
extern void pango_attr_list_change(PangoAttrList *, PangoAttribute *);
extern PangoColor *pango_renderer_get_color(PangoRenderer *,
					    PangoRenderPart);
extern void pango_renderer_part_changed(PangoRenderer *, PangoRenderPart);
extern void pango_glyph_string_x_to_index(PangoGlyphString *, char *, int,
					  PangoAnalysis *, int, int *,
					  gboolean *);
extern void pango_tab_array_resize(PangoTabArray *, gint);
extern void pango_break(const gchar *, gint, PangoAnalysis *,
			PangoLogAttr *, int);
extern void pango_coverage_unref(PangoCoverage *);
extern void pango_font_map_list_families(PangoFontMap *,
					 PangoFontFamily * **, int *);
extern void pango_matrix_concat(PangoMatrix *, const PangoMatrix *);
extern PangoAttrList *pango_attr_list_copy(PangoAttrList *);
extern GType pango_layout_iter_get_type(void);
extern void pango_layout_set_attributes(PangoLayout *, PangoAttrList *);
extern void pango_color_free(PangoColor *);
extern PangoItem *pango_item_copy(PangoItem *);
extern void pango_font_description_set_weight(PangoFontDescription *,
					      PangoWeight);
extern PangoAttribute *pango_attr_letter_spacing_new(int);
extern PangoLanguage *pango_language_from_string(const char *);
extern PangoAttribute *pango_attr_strikethrough_color_new(guint16, guint16,
							  guint16);
extern void pango_attr_list_insert(PangoAttrList *, PangoAttribute *);
extern gboolean pango_layout_line_x_to_index(PangoLayoutLine *, int, int *,
					     int *);
extern PangoFontMap *pango_context_get_font_map(PangoContext *);
extern GType pango_direction_get_type(void);
extern void pango_layout_iter_get_layout_extents(PangoLayoutIter *,
						 PangoRectangle *,
						 PangoRectangle *);
extern void pango_glyph_string_free(PangoGlyphString *);
extern gboolean pango_tab_array_get_positions_in_pixels(PangoTabArray *);
extern PangoFontMetrics *pango_fontset_get_metrics(PangoFontset *);
extern int pango_layout_iter_get_index(PangoLayoutIter *);
extern int pango_layout_get_spacing(PangoLayout *);
extern gboolean pango_layout_get_single_paragraph_mode(PangoLayout *);
extern GSList *pango_layout_get_lines(PangoLayout *);
extern GType pango_underline_get_type(void);
extern void pango_layout_get_pixel_extents(PangoLayout *, PangoRectangle *,
					   PangoRectangle *);
extern void pango_matrix_scale(PangoMatrix *, double, double);
extern void pango_attr_iterator_destroy(PangoAttrIterator *);
extern void pango_glyph_string_extents(PangoGlyphString *, PangoFont *,
				       PangoRectangle *, PangoRectangle *);
extern PangoTabArray *pango_tab_array_new(gint, gboolean);
extern PangoAttribute *pango_attr_weight_new(PangoWeight);
extern int pango_layout_get_width(PangoLayout *);
extern gboolean pango_parse_markup(const char *, int, gunichar,
				   PangoAttrList * *, char **, gunichar *,
				   GError * *);
extern void pango_matrix_rotate(PangoMatrix *, double);
extern void pango_font_description_set_style(PangoFontDescription *,
					     PangoStyle);
extern void pango_layout_set_auto_dir(PangoLayout *, gboolean);
extern GType pango_context_get_type(void);
extern PangoAttribute *pango_attr_background_new(guint16, guint16,
						 guint16);
extern void pango_coverage_to_bytes(PangoCoverage *, guchar * *, int *);
extern void pango_font_description_set_size(PangoFontDescription *, gint);
extern void pango_attr_list_unref(PangoAttrList *);
extern int pango_font_metrics_get_strikethrough_thickness(PangoFontMetrics
							  *);
extern PangoAttribute *pango_attr_size_new_absolute(int);
extern PangoAttribute *pango_attribute_copy(const PangoAttribute *);
extern PangoAttribute *pango_attr_iterator_get(PangoAttrIterator *,
					       PangoAttrType);
extern GType pango_matrix_get_type(void);
extern PangoDirection pango_context_get_base_dir(PangoContext *);
extern PangoAttribute *pango_attr_style_new(PangoStyle);
extern void pango_attr_iterator_get_font(PangoAttrIterator *,
					 PangoFontDescription *,
					 PangoLanguage * *, GSList * *);
extern void pango_renderer_draw_glyph(PangoRenderer *, PangoFont *,
				      PangoGlyph, double, double);
extern void pango_glyph_item_free(PangoGlyphItem *);
extern gboolean pango_language_includes_script(PangoLanguage *,
					       PangoScript);
extern gboolean pango_font_description_get_size_is_absolute(const
							    PangoFontDescription
							    *);
extern GSList *pango_attr_iterator_get_attrs(PangoAttrIterator *);
extern GType pango_ellipsize_mode_get_type(void);
extern void pango_font_face_list_sizes(PangoFontFace *, int **, int *);
extern void pango_layout_get_size(PangoLayout *, int *, int *);
extern void pango_renderer_draw_glyphs(PangoRenderer *, PangoFont *,
				       PangoGlyphString *, int, int);
extern GType pango_tab_array_get_type(void);
extern PangoGlyphItem *pango_glyph_item_split(PangoGlyphItem *,
					      const char *, int);
extern PangoLayoutIter *pango_layout_get_iter(PangoLayout *);
extern PangoGlyphString *pango_glyph_string_new(void);
extern gboolean pango_layout_iter_next_run(PangoLayoutIter *);
extern void pango_glyph_string_extents_range(PangoGlyphString *, int, int,
					     PangoFont *, PangoRectangle *,
					     PangoRectangle *);
extern PangoWeight pango_font_description_get_weight(const
						     PangoFontDescription
						     *);
extern GType pango_font_description_get_type(void);
extern void pango_renderer_deactivate(PangoRenderer *);
extern PangoGlyphString *pango_glyph_string_copy(PangoGlyphString *);
extern void pango_script_iter_free(PangoScriptIter *);
extern PangoCoverage *pango_coverage_from_bytes(guchar *, int);
extern void pango_layout_iter_get_line_yrange(PangoLayoutIter *, int *,
					      int *);
extern GType pango_stretch_get_type(void);
extern int pango_layout_get_line_count(PangoLayout *);
extern void pango_layout_set_ellipsize(PangoLayout *, PangoEllipsizeMode);
extern PangoCoverage *pango_font_get_coverage(PangoFont *,
					      PangoLanguage *);
extern PangoFontDescription *pango_font_description_copy(const
							 PangoFontDescription
							 *);
extern void pango_fontset_foreach(PangoFontset *, PangoFontsetForeachFunc,
				  gpointer);
extern GType pango_font_get_type(void);
extern void pango_layout_set_alignment(PangoLayout *, PangoAlignment);
extern GType pango_layout_get_type(void);
extern void pango_renderer_draw_layout_line(PangoRenderer *,
					    PangoLayoutLine *, int, int);
extern GType pango_alignment_get_type(void);
extern void pango_renderer_draw_rectangle(PangoRenderer *, PangoRenderPart,
					  int, int, int, int);
extern void pango_context_list_families(PangoContext *,
					PangoFontFamily * **, int *);
extern void pango_font_description_set_absolute_size(PangoFontDescription
						     *, double);
extern void pango_layout_iter_free(PangoLayoutIter *);
extern PangoCoverageLevel pango_coverage_get(PangoCoverage *, int);
extern void pango_renderer_draw_error_underline(PangoRenderer *, int, int,
						int, int);
extern PangoFontset *pango_context_load_fontset(PangoContext *,
						const PangoFontDescription
						*, PangoLanguage *);
extern void pango_layout_line_ref(PangoLayoutLine *);
extern void pango_font_description_set_family(PangoFontDescription *,
					      const char *);
extern gboolean pango_layout_iter_at_last_line(PangoLayoutIter *);
extern GType pango_render_part_get_type(void);
extern PangoAttrList *pango_attr_list_new(void);
extern void pango_font_description_set_stretch(PangoFontDescription *,
					       PangoStretch);
extern void pango_font_description_merge(PangoFontDescription *,
					 const PangoFontDescription *,
					 gboolean);
extern int pango_font_metrics_get_underline_thickness(PangoFontMetrics *);
extern const char *pango_layout_get_text(PangoLayout *);
extern int pango_font_metrics_get_ascent(PangoFontMetrics *);
extern PangoFont *pango_fontset_get_font(PangoFontset *, guint);
extern void pango_renderer_draw_layout(PangoRenderer *, PangoLayout *, int,
				       int);
extern int pango_font_metrics_get_underline_position(PangoFontMetrics *);
extern GType pango_color_get_type(void);
extern PangoFontMetrics *pango_context_get_metrics(PangoContext *,
						   const
						   PangoFontDescription *,
						   PangoLanguage *);
extern gboolean pango_layout_xy_to_index(PangoLayout *, int, int, int *,
					 gint *);
extern void pango_renderer_set_matrix(PangoRenderer *,
				      const PangoMatrix *);
extern void pango_font_description_set_variant(PangoFontDescription *,
					       PangoVariant);
extern GList *pango_itemize(PangoContext *, const char *, int, int,
			    PangoAttrList *, PangoAttrIterator *);
extern void pango_layout_move_cursor_visually(PangoLayout *, gboolean, int,
					      int, int, int *, int *);
extern int pango_layout_get_indent(PangoLayout *);
extern PangoAttrIterator *pango_attr_list_get_iterator(PangoAttrList *);
extern void pango_layout_get_pixel_size(PangoLayout *, int *, int *);
extern void pango_font_description_unset_fields(PangoFontDescription *,
						PangoFontMask);
extern GType pango_tab_align_get_type(void);
extern PangoItem *pango_item_split(PangoItem *, int, int);
extern PangoFontMetrics *pango_font_metrics_ref(PangoFontMetrics *);
extern void pango_context_set_base_dir(PangoContext *, PangoDirection);
extern PangoAttribute *pango_attr_underline_color_new(guint16, guint16,
						      guint16);
extern gboolean pango_layout_iter_next_cluster(PangoLayoutIter *);
extern PangoAttribute *pango_attr_variant_new(PangoVariant);
extern GType pango_font_face_get_type(void);
extern void pango_font_family_list_faces(PangoFontFamily *,
					 PangoFontFace * **, int *);
extern PangoColor *pango_color_copy(const PangoColor *);
extern GType pango_wrap_mode_get_type(void);
extern void pango_tab_array_set_tab(PangoTabArray *, gint, PangoTabAlign,
				    gint);
extern PangoAttribute *pango_attr_shape_new_with_data(const PangoRectangle
						      *,
						      const PangoRectangle
						      *, gpointer,
						      PangoAttrDataCopyFunc,
						      GDestroyNotify);
extern PangoVariant pango_font_description_get_variant(const
						       PangoFontDescription
						       *);
extern void pango_font_description_free(PangoFontDescription *);
extern GType pango_font_metrics_get_type(void);
extern void pango_layout_get_cursor_pos(PangoLayout *, int,
					PangoRectangle *,
					PangoRectangle *);
extern GList *pango_itemize_with_base_dir(PangoContext *, PangoDirection,
					  const char *, int, int,
					  PangoAttrList *,
					  PangoAttrIterator *);
extern PangoLanguage *pango_context_get_language(PangoContext *);
extern void pango_renderer_set_color(PangoRenderer *, PangoRenderPart,
				     const PangoColor *);
extern GType pango_font_map_get_type(void);
extern const PangoFontDescription
    *pango_layout_get_font_description(PangoLayout *);
extern void pango_layout_set_font_description(PangoLayout *,
					      const PangoFontDescription
					      *);
extern PangoFontMetrics *pango_font_get_metrics(PangoFont *,
						PangoLanguage *);
extern PangoScriptIter *pango_script_iter_new(const char *, int);