Struct
Pango.LayoutIter
Description [src]
struct PangoLayoutIter {
/* No available fields */
}
A PangoLayoutIter
can be used to iterate over the visual
extents of a PangoLayout
.
To obtain a PangoLayoutIter
, use pango_layout_get_iter()
.
The PangoLayoutIter
structure is opaque, and has no user-visible fields.
Instance methods
pango_layout_iter_at_last_line
Determines whether iter
is on the last line of the layout.
pango_layout_iter_copy
Copies a PangoLayoutIter
.
pango_layout_iter_free
Frees an iterator that’s no longer in use.
pango_layout_iter_get_baseline
Gets the Y position of the current line’s baseline, in layout coordinates (origin at top left of the entire layout).
pango_layout_iter_get_char_extents
Gets the extents of the current character, in layout coordinates (origin is the top left of the entire layout). Only logical extents can sensibly be obtained for characters; ink extents make sense only down to the level of clusters.
pango_layout_iter_get_cluster_extents
Gets the extents of the current cluster, in layout coordinates (origin is the top left of the entire layout).
pango_layout_iter_get_index
Gets the current byte index. Note that iterating forward by char
moves in visual order, not logical order, so indexes may not be
sequential. Also, the index may be equal to the length of the text
in the layout, if on the NULL
run (see pango_layout_iter_get_run()
).
pango_layout_iter_get_layout
Gets the layout associated with a PangoLayoutIter
.
pango_layout_iter_get_layout_extents
Obtains the extents of the PangoLayout
being iterated over.
ink_rect
or logical_rect
can be NULL
if you aren’t interested in them.
pango_layout_iter_get_line
Gets the current line.
pango_layout_iter_get_line_extents
Obtains the extents of the current line. ink_rect
or logical_rect
can be NULL
if you aren’t interested in them. Extents are in layout
coordinates (origin is the top-left corner of the entire
PangoLayout
). Thus the extents returned by this function will be
the same width/height but not at the same x/y as the extents
returned from pango_layout_line_get_extents()
.
pango_layout_iter_get_line_readonly
Gets the current line for read-only access.
pango_layout_iter_get_line_yrange
Divides the vertical space in the PangoLayout
being iterated over
between the lines in the layout, and returns the space belonging to
the current line. A line’s range includes the line’s logical extents,
plus half of the spacing above and below the line, if
pango_layout_set_spacing()
has been called to set layout spacing.
The Y positions are in layout coordinates (origin at top left of the
entire layout).
pango_layout_iter_get_run
Gets the current run. When iterating by run, at the end of each
line, there’s a position with a NULL
run, so this function can return
NULL
. The NULL
run at the end of each line ensures that all lines have
at least one run, even lines consisting of only a newline.
pango_layout_iter_get_run_extents
Gets the extents of the current run in layout coordinates (origin is the top left of the entire layout).
pango_layout_iter_get_run_readonly
Gets the current run. When iterating by run, at the end of each
line, there’s a position with a NULL
run, so this function can return
NULL
. The NULL
run at the end of each line ensures that all lines have
at least one run, even lines consisting of only a newline.
pango_layout_iter_next_char
Moves iter
forward to the next character in visual order.
If iter
was already at the end of the layout, returns FALSE
.
pango_layout_iter_next_cluster
Moves iter
forward to the next cluster in visual order.
If iter
was already at the end of the layout, returns FALSE
.
pango_layout_iter_next_line
Moves iter
forward to the start of the next line.
If iter
is already on the last line, returns FALSE
.
pango_layout_iter_next_run
Moves iter
forward to the next run in visual order.
If iter
was already at the end of the layout, returns FALSE
.