LayoutLine
- class LayoutLine(*args, **kwargs)
A PangoLayoutLine
represents one of the lines resulting from laying
out a paragraph via PangoLayout
.
PangoLayoutLine
structures are obtained by calling
get_line
and are only valid until the text,
attributes, or settings of the parent PangoLayout
are modified.
Methods
- class LayoutLine
- get_extents() tuple[Rectangle, Rectangle]
Computes the logical and ink extents of a layout line.
See
get_glyph_extents
for details about the interpretation of the rectangles.
- get_height() int
Computes the height of the line, as the maximum of the heights of fonts used in this line.
Note that the actual baseline-to-baseline distance between lines of text is influenced by other factors, such as
set_spacing
andset_line_spacing
.Added in version 1.44.
- get_pixel_extents() tuple[Rectangle, Rectangle]
Computes the logical and ink extents of
layout_line
in device units.This function just calls
get_extents
followed by twoextents_to_pixels
calls, roundingink_rect
andlogical_rect
such that the rounded rectangles fully contain the unrounded one (that is, passes them as first argument toextents_to_pixels
).
- get_resolved_direction() Direction
Returns the resolved direction of the line.
Added in version 1.50.
- get_start_index() int
Returns the start index of the line, as byte index into the text of the layout.
Added in version 1.50.
- get_x_ranges(start_index: int, end_index: int) list[int]
Gets a list of visual ranges corresponding to a given logical range.
This list is not necessarily minimal - there may be consecutive ranges which are adjacent. The ranges will be sorted from left to right. The ranges are with respect to the left edge of the entire layout, not with respect to the line.
- Parameters:
start_index – Start byte index of the logical range. If this value is less than the start index for the line, then the first range will extend all the way to the leading edge of the layout. Otherwise, it will start at the leading edge of the first character.
end_index – Ending byte index of the logical range. If this value is greater than the end index for the line, then the last range will extend all the way to the trailing edge of the layout. Otherwise, it will end at the trailing edge of the last character.
- index_to_x(index_: int, trailing: bool) int
Converts an index within a line to a X position.
- Parameters:
index – byte offset of a grapheme within the layout
trailing – an integer indicating the edge of the grapheme to retrieve the position of. If > 0, the trailing edge of the grapheme, if 0, the leading of the grapheme
- is_paragraph_start() bool
Returns whether this is the first line of the paragraph.
Added in version 1.50.
- x_to_index(x_pos: int) tuple[bool, int, int]
Converts from x offset to the byte index of the corresponding character within the text of the layout.
If
x_pos
is outside the line, @``index_`` andtrailing
will point to the very first or very last position in the line. This determination is based on the resolved direction of the paragraph; for example, if the resolved direction is right-to-left, then an X position to the right of the line (after it) results in 0 being stored in @``index_`` andtrailing
. An X position to the left of the line results in @``index_`` pointing to the (logical) last grapheme in the line andtrailing
being set to the number of characters in that grapheme. The reverse is true for a left-to-right line.- Parameters:
x_pos – the X offset (in Pango units) from the left edge of the line.