PangoAttribute PangoAttrClass PangoAttrString PangoAttrInt PangoAttrColor PangoAttrFontDesc PangoAttrList PangoAttrIterator PangoAttrType 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 */ } PangoAttrType; PangoUnderline typedef enum { PANGO_UNDERLINE_NONE, PANGO_UNDERLINE_SINGLE, PANGO_UNDERLINE_DOUBLE, PANGO_UNDERLINE_LOW } PangoUnderline; PangoAttribute struct PangoAttribute { const PangoAttrClass *klass; guint start_index; guint end_index; }; PangoAttrClass struct PangoAttrClass { PangoAttrType type; PangoAttribute * (*copy) (const PangoAttribute *attr); void (*destroy) (PangoAttribute *attr); gboolean (*compare) (const PangoAttribute *attr1, const PangoAttribute *attr2); }; PangoAttrString struct PangoAttrString { PangoAttribute attr; char *value; }; PangoAttrInt struct PangoAttrInt { PangoAttribute attr; int value; }; PangoAttrColor struct PangoAttrColor { PangoAttribute attr; guint16 red; guint16 green; guint16 blue; }; PangoAttrFontDesc struct PangoAttrFontDesc { PangoAttribute attr; PangoFontDescription desc; }; pango_attr_type_register PangoAttrType const gchar *name pango_attribute_copy PangoAttribute * const PangoAttribute *attr pango_attribute_destroy void PangoAttribute *attr pango_attribute_compare gboolean const PangoAttribute *attr1,const PangoAttribute *attr2 pango_attr_lang_new PangoAttribute * const char *lang pango_attr_family_new PangoAttribute * const char *family pango_attr_foreground_new PangoAttribute * guint16 red,guint16 green,guint16 blue pango_attr_background_new PangoAttribute * guint16 red,guint16 green,guint16 blue pango_attr_size_new PangoAttribute * int size pango_attr_style_new PangoAttribute * PangoStyle style pango_attr_weight_new PangoAttribute * PangoWeight weight pango_attr_variant_new PangoAttribute * PangoVariant variant pango_attr_stretch_new PangoAttribute * PangoStretch stretch pango_attr_font_desc_new PangoAttribute * const PangoFontDescription *desc pango_attr_underline_new PangoAttribute * PangoUnderline underline pango_attr_strikethrough_new PangoAttribute * gboolean strikethrough pango_attr_rise_new PangoAttribute * int rise pango_attr_list_new PangoAttrList * void pango_attr_list_ref void PangoAttrList *list pango_attr_list_unref void PangoAttrList *list pango_attr_list_insert void PangoAttrList *list,PangoAttribute *attr pango_attr_list_change void PangoAttrList *list,PangoAttribute *attr pango_attr_list_get_iterator PangoAttrIterator * PangoAttrList *list pango_attr_iterator_range void PangoAttrIterator *iterator,gint *start,gint *end pango_attr_iterator_next gboolean PangoAttrIterator *iterator pango_attr_iterator_destroy void PangoAttrIterator *iterator pango_attr_iterator_get PangoAttribute * PangoAttrIterator *iterator,PangoAttrType type pango_attr_iterator_get_font void PangoAttrIterator *iterator,PangoFontDescription *base,PangoFontDescription *current,GSList **extra_attrs PangoContext pango_context_new PangoContext * void pango_context_ref void PangoContext *context pango_context_unref void PangoContext *context pango_context_add_font_map void PangoContext *context,PangoFontMap *font_map pango_context_list_fonts void PangoContext *context,const char *family,PangoFontDescription ***descs,int *n_descs pango_context_list_families void PangoContext *context,gchar ***families,int *n_families pango_context_load_font PangoFont * PangoContext *context,const PangoFontDescription *desc pango_context_set_font_description void PangoContext *context,const PangoFontDescription *desc pango_context_get_font_description PangoFontDescription * PangoContext *context pango_context_get_lang char * PangoContext *context pango_context_set_lang void PangoContext *context,const char *lang pango_context_set_base_dir void PangoContext *context,PangoDirection direction pango_context_get_base_dir PangoDirection PangoContext *context pango_context_set_data void PangoContext *context,const char *key,gpointer data,GDestroyNotify destroy_func pango_context_get_data gpointer PangoContext *context,const char *key pango_itemize GList * PangoContext *context,const char *text,gint length,PangoAttrList *attrs PangoCoverage PangoCoverageLevel typedef enum { PANGO_COVERAGE_NONE, PANGO_COVERAGE_FALLBACK, PANGO_COVERAGE_APPROXIMATE, PANGO_COVERAGE_EXACT } PangoCoverageLevel; pango_coverage_new PangoCoverage * void pango_coverage_ref void PangoCoverage *coverage pango_coverage_unref void PangoCoverage *coverage pango_coverage_copy PangoCoverage * PangoCoverage *coverage pango_coverage_get PangoCoverageLevel PangoCoverage *coverage,int index pango_coverage_set void PangoCoverage *coverage,int index,PangoCoverageLevel level pango_coverage_max void PangoCoverage *coverage,PangoCoverage *other PANGO_ENGINE_TYPE_LANG #define PANGO_ENGINE_TYPE_LANG "PangoEngineLang" PANGO_ENGINE_TYPE_SHAPE #define PANGO_ENGINE_TYPE_SHAPE "PangoEngineShape" PANGO_RENDER_TYPE_NONE #define PANGO_RENDER_TYPE_NONE "PangoRenderNone" PangoEngineInfo PangoEngineRange PangoEngine PangoEngineRange struct PangoEngineRange { guint32 start; guint32 end; gchar *langs; }; PangoEngineInfo struct PangoEngineInfo { gchar *id; gchar *engine_type; gchar *render_type; PangoEngineRange *ranges; gint n_ranges; }; PangoEngine struct PangoEngine { gchar *id; gchar *type; gint length; }; PangoEngineLang struct PangoEngineLang { PangoEngine engine; void (*script_break) (const char *text, int len, PangoAnalysis *analysis, PangoLogAttr *attrs); }; PangoEngineShape 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); }; script_engine_list void PangoEngineInfo **engines,int *n_engines script_engine_load PangoEngine * const char *id script_engine_unload void PangoEngine *engine PangoFontDescription PangoFontClass PangoFontMap PangoFontMapClass PangoFontMetrics PangoStyle typedef enum { PANGO_STYLE_NORMAL, PANGO_STYLE_OBLIQUE, PANGO_STYLE_ITALIC } PangoStyle; PangoVariant typedef enum { PANGO_VARIANT_NORMAL, PANGO_VARIANT_SMALL_CAPS } PangoVariant; PangoWeight typedef enum { PANGO_WEIGHT_NORMAL = 400, PANGO_WEIGHT_BOLD = 700 } PangoWeight; PangoStretch 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; PangoFontDescription struct PangoFontDescription { char *family_name; PangoStyle style; PangoVariant variant; PangoWeight weight; PangoStretch stretch; int size; }; PangoFontMetrics struct PangoFontMetrics { int ascent; int descent; }; pango_font_description_copy PangoFontDescription * const PangoFontDescription *desc pango_font_description_compare gboolean const PangoFontDescription *desc1,const PangoFontDescription *desc2 pango_font_description_free void PangoFontDescription *desc pango_font_descriptions_free void PangoFontDescription **descs,int n_descs pango_font_description_from_string PangoFontDescription * const char *str pango_font_description_to_string char * const PangoFontDescription *desc PangoFont struct PangoFont { PangoFontClass *klass; /*< private >*/ gint ref_count; GData *data; }; PangoFontClass struct PangoFontClass { void (*destroy) (PangoFont *font); 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); }; pango_font_init void PangoFont *font pango_font_ref void PangoFont *font pango_font_unref void PangoFont *font pango_font_get_data gpointer PangoFont *font,const gchar *key pango_font_set_data void PangoFont *font,const gchar *key,gpointer data,GDestroyNotify destroy_func pango_font_describe PangoFontDescription * PangoFont *font pango_font_get_coverage PangoCoverage * PangoFont *font,const char *lang pango_font_find_shaper PangoEngineShape * PangoFont *font,const char *lang,guint32 ch pango_font_get_metrics void PangoFont *font,const gchar *lang,PangoFontMetrics *metrics pango_font_get_glyph_extents void PangoFont *font,PangoGlyph glyph,PangoRectangle *ink_rect,PangoRectangle *logical_rect PangoFontMap struct PangoFontMap { PangoFontMapClass *klass; /*< private >*/ gint ref_count; }; PangoFontMapClass struct PangoFontMapClass { void (*destroy) (PangoFontMap *fontmap); 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); }; pango_font_map_init void PangoFontMap *fontmap pango_font_map_ref void PangoFontMap *fontmap pango_font_map_unref void PangoFontMap *fontmap pango_font_map_load_font PangoFont * PangoFontMap *fontmap,const PangoFontDescription *desc pango_font_map_list_fonts void PangoFontMap *fontmap,const gchar *family,PangoFontDescription ***descs,int *n_descs pango_font_map_list_families void PangoFontMap *fontmap,gchar ***families,int *n_families pango_font_map_free_families void gchar **families,int n_families PangoGlyphGeometry PangoGlyphVisAttr PangoGlyphInfo PangoGlyphString PangoGlyphUnit typedef gint32 PangoGlyphUnit; PangoGlyphGeometry struct PangoGlyphGeometry { PangoGlyphUnit width; PangoGlyphUnit x_offset; PangoGlyphUnit y_offset; }; PangoGlyphVisAttr struct PangoGlyphVisAttr { guint is_cluster_start : 1; }; PangoGlyphInfo struct PangoGlyphInfo { PangoGlyph glyph; PangoGlyphGeometry geometry; PangoGlyphVisAttr attr; }; PangoGlyphString struct PangoGlyphString { gint num_glyphs; PangoGlyphInfo *glyphs; /* This is a memory inefficient way of representing the * information here - each value gives the character index * of the start of the cluster to which the glyph belongs. */ gint *log_clusters; /*< private >*/ gint space; }; pango_glyph_string_new PangoGlyphString * void pango_glyph_string_set_size void PangoGlyphString *string,gint new_len pango_glyph_string_free void PangoGlyphString *string pango_glyph_string_extents void PangoGlyphString *glyphs,PangoFont *font,PangoRectangle *ink_rect,PangoRectangle *logical_rect pango_glyph_string_get_logical_widths void PangoGlyphString *glyphs,const char *text,int length,int embedding_level,int *logical_widths pango_glyph_string_index_to_x void PangoGlyphString *glyphs,char *text,int length,PangoAnalysis *analysis,int index,gboolean trailing,int *x_pos pango_glyph_string_x_to_index void PangoGlyphString *glyphs,char *text,int length,PangoAnalysis *analysis,int x_pos,int *index,int *trailing pango_justify void PangoGlyphString *glyphs,gint new_line_width,gint min_kashida_width PangoAnalysis PangoItem PangoAnalysis struct PangoAnalysis { PangoEngineShape *shape_engine; PangoEngineLang *lang_engine; PangoFont *font; guint8 level; }; PangoItem struct PangoItem { gint offset; gint length; gint num_chars; GSList *extra_attrs; PangoAnalysis analysis; }; pango_item_new PangoItem * void pango_item_copy PangoItem * PangoItem *item pango_item_free void PangoItem *item PangoLayout PangoLayoutLine PangoLayoutRun PangoAlignment typedef enum { PANGO_ALIGN_LEFT, PANGO_ALIGN_CENTER, PANGO_ALIGN_RIGHT } PangoAlignment; PangoLayoutLine struct PangoLayoutLine { PangoLayout *layout; gint length; /* length of line in bytes*/ GSList *runs; }; PangoLayoutRun struct PangoLayoutRun { PangoItem *item; PangoGlyphString *glyphs; }; pango_layout_new PangoLayout * PangoContext *context pango_layout_ref void PangoLayout *layout pango_layout_unref void PangoLayout *layout pango_layout_get_context PangoContext * PangoLayout *layout pango_layout_set_attributes void PangoLayout *layout,PangoAttrList *attrs pango_layout_set_text void PangoLayout *layout,char *text,int length pango_layout_set_width void PangoLayout *layout,int width pango_layout_get_width int PangoLayout *layout pango_layout_set_indent void PangoLayout *layout,int indent pango_layout_get_indent int PangoLayout *layout pango_layout_set_spacing void PangoLayout *layout,int spacing pango_layout_get_spacing int PangoLayout *layout pango_layout_set_justify void PangoLayout *layout,gboolean justify pango_layout_get_justify gboolean PangoLayout *layout pango_layout_set_alignment void PangoLayout *layout,PangoAlignment alignment pango_layout_get_alignment PangoAlignment PangoLayout *layout pango_layout_context_changed void PangoLayout *layout pango_layout_get_log_attrs void PangoLayout *layout,PangoLogAttr **attrs,gint *n_attrs pango_layout_index_to_pos void PangoLayout *layout,int index,PangoRectangle *pos pango_layout_get_cursor_pos void PangoLayout *layout,int index,PangoRectangle *strong_pos,PangoRectangle *weak_pos pango_layout_move_cursor_visually void PangoLayout *layout,int old_index,int old_trailing,int direction,int *new_index,int *new_trailing pango_layout_xy_to_index gboolean PangoLayout *layout,int x,int y,int *index,gboolean *trailing pango_layout_get_extents void PangoLayout *layout,PangoRectangle *ink_rect,PangoRectangle *logical_rect pango_layout_get_line_count int PangoLayout *layout pango_layout_get_line PangoLayoutLine * PangoLayout *layout,int line pango_layout_get_lines GSList * PangoLayout *layout pango_layout_line_ref void PangoLayoutLine *line pango_layout_line_unref void PangoLayoutLine *line pango_layout_line_x_to_index void PangoLayoutLine *line,int x_pos,int *index,int *trailing pango_layout_line_index_to_x void PangoLayoutLine *line,int index,gboolean trailing,int *x_pos pango_layout_line_get_x_ranges void PangoLayoutLine *line,int start_index,int end_index,int **ranges,int *n_ranges pango_layout_line_get_extents void PangoLayoutLine *line,PangoRectangle *ink_rect,PangoRectangle *logical_rect G_N_ELEMENTS #define G_N_ELEMENTS(arr) (sizeof(arr) / sizeof((arr)[0])) PangoLangRange PangoLogAttr PangoEngineLang PangoEngineShape PangoFont PangoRectangle PangoGlyph typedef guint32 PangoGlyph; PangoRectangle struct PangoRectangle { int x; int y; int width; int height; }; PANGO_SCALE #define PANGO_SCALE 1000 PANGO_ASCENT #define PANGO_ASCENT(rect) (-(rect).y) PANGO_DESCENT #define PANGO_DESCENT(rect) ((rect).y + (rect).height) PANGO_LBEARING #define PANGO_LBEARING(rect) ((rect).x) PANGO_RBEARING #define PANGO_RBEARING(rect) ((rect).x + (rect).width) PangoDirection typedef enum { PANGO_DIRECTION_LTR, PANGO_DIRECTION_RTL, PANGO_DIRECTION_TTB_LTR, PANGO_DIRECTION_TTB_RTL } PangoDirection; PangoLangRange struct PangoLangRange { gint start; gint length; gchar *lang; }; PangoLogAttr 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; }; pango_break void const gchar *text,gint length,PangoAnalysis *analysis,PangoLogAttr *attrs pango_shape void const gchar *text,gint length,PangoAnalysis *analysis,PangoGlyphString *glyphs pango_reorder_items GList * GList *logical_items PANGO_RENDER_TYPE_X #define PANGO_RENDER_TYPE_X "PangoRenderX" PangoGetGCFunc GC PangoContext *context, PangoAttrColor *color, GC base_gc PangoFreeGCFunc void PangoContext *context, GC gc pango_x_get_context PangoContext * Display *display pango_x_context_set_funcs void PangoContext *context,PangoGetGCFunc get_gc_func,PangoFreeGCFunc free_gc_func pango_x_load_font PangoFont * Display *display,gchar *spec pango_x_render void Display *display,Drawable d,GC gc,PangoFont *font,PangoGlyphString *glyphs,gint x,gint y pango_x_render_layout_line void Display *display,Drawable drawable,GC gc,PangoLayoutLine *line,int x,int y pango_x_render_layout void Display *display,Drawable drawable,GC gc,PangoLayout *layout,int x,int y PangoXSubfont typedef guint16 PangoXSubfont; PANGO_X_MAKE_GLYPH #define PANGO_X_MAKE_GLYPH(subfont,index) (subfont<<16 | index) PANGO_X_GLYPH_SUBFONT #define PANGO_X_GLYPH_SUBFONT(glyph) (glyph>>16) PANGO_X_GLYPH_INDEX #define PANGO_X_GLYPH_INDEX(glyph) (glyph & 0xffff) pango_x_list_subfonts int PangoFont *font,char **charsets,int n_charsets,PangoXSubfont **subfont_ids,int **subfont_charsets pango_x_has_glyph gboolean PangoFont *font,PangoGlyph glyph pango_x_get_unknown_glyph PangoGlyph PangoFont *font