diff options
Diffstat (limited to 'pango/pango-layout-private.h')
-rw-r--r-- | pango/pango-layout-private.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/pango/pango-layout-private.h b/pango/pango-layout-private.h index d0bf93eb..9a23d9e7 100644 --- a/pango/pango-layout-private.h +++ b/pango/pango-layout-private.h @@ -82,10 +82,63 @@ struct _PangoLayout guint line_count; /* Number of lines in @lines. 0 if lines is %NULL */ }; +struct _PangoLayoutIter +{ + PangoLayout *layout; + GSList *line_list_link; + PangoLayoutLine *line; + + /* If run is NULL, it means we're on a "virtual run" + * at the end of the line with 0 width + */ + GSList *run_list_link; + PangoLayoutRun *run; /* FIXME nuke this, just keep the link */ + int index; + + /* list of Extents for each line in layout coordinates */ + GSList *line_extents; + GSList *line_extents_link; + + /* X position of the current run */ + int run_x; + + /* Width of the current run */ + int run_width; + + /* this run is left-to-right */ + gboolean ltr; + + /* X position of the left side of the current cluster */ + int cluster_x; + + /* The width of the current cluster */ + int cluster_width; + + /* glyph offset to the current cluster start */ + int cluster_start; + + /* first glyph in the next cluster */ + int next_cluster_glyph; + + /* number of Unicode chars in current cluster */ + int cluster_num_chars; + + /* visual position of current character within the cluster */ + int character_position; + + /* the real width of layout */ + int layout_width; +}; + gboolean _pango_layout_line_ellipsize (PangoLayoutLine *line, PangoAttrList *attrs, int goal_width); +void _pango_layout_get_iter (PangoLayout *layout, + PangoLayoutIter *iter); + +void _pango_layout_iter_destroy (PangoLayoutIter *iter); + G_END_DECLS #endif /* __PANGO_LAYOUT_PRIVATE_H__ */ |