diff options
Diffstat (limited to 'pango/pango-layout-line-private.h')
-rw-r--r-- | pango/pango-layout-line-private.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/pango/pango-layout-line-private.h b/pango/pango-layout-line-private.h new file mode 100644 index 00000000..0132401f --- /dev/null +++ b/pango/pango-layout-line-private.h @@ -0,0 +1,67 @@ +#pragma once + +#include "pango-layout-line.h" +#include "pango-break.h" +#include "pango-attributes.h" +#include "pango-glyph-item.h" + +typedef struct _LineData LineData; +struct _LineData { + char *text; + int length; + int n_chars; + PangoDirection direction; + + PangoAttrList *attrs; + PangoLogAttr *log_attrs; +}; + +LineData * line_data_new (void); +LineData * line_data_ref (LineData *data); +void line_data_unref (LineData *data); +void line_data_clear (LineData *data); + +struct _PangoLayoutLine +{ + GObject parent_instance; + + PangoContext *context; + LineData *data; + + int start_index; + int length; + int start_offset; + int n_chars; + GSList *runs; + + guint wrapped : 1; + guint ellipsized : 1; + guint hyphenated : 1; + guint justified : 1; + guint starts_paragraph : 1; + guint ends_paragraph : 1; + guint has_extents : 1; + + PangoDirection direction; + + PangoRectangle ink_rect; + PangoRectangle logical_rect; +}; + +PangoLayoutLine * pango_layout_line_new (PangoContext *context, + LineData *data); + +void pango_layout_line_ellipsize (PangoLayoutLine *line, + PangoContext *context, + PangoEllipsizeMode ellipsize, + int goal_width); + +void pango_layout_line_index_to_run (PangoLayoutLine *line, + int idx, + PangoLayoutRun **run); + +void pango_layout_line_get_empty_extents (PangoLayoutLine *line, + PangoLeadingTrim trim, + PangoRectangle *logical_rect); + +void pango_layout_line_check_invariants (PangoLayoutLine *line); |