#[repr(transparent)]
pub struct LayoutLine { /* private fields */ }
Expand description

A LayoutLine represents one of the lines resulting from laying out a paragraph via Layout.

LayoutLine structures are obtained by calling Layout::line() and are only valid until the text, attributes, or settings of the parent Layout are modified.

Implementations

Computes the logical and ink extents of a layout line.

See FontExt::glyph_extents() for details about the interpretation of the rectangles.

Returns
ink_rect

rectangle used to store the extents of the glyph string as drawn

logical_rect

rectangle used to store the logical extents of the glyph string

This is supported on crate feature v1_44 only.

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 Layout::set_spacing() and Layout::set_line_spacing().

Returns
height

return location for the line height

This is supported on crate feature v1_50 only.

Returns the length of the line, in bytes.

Returns

the length of the line

Computes the logical and ink extents of @self in device units.

This function just calls extents() followed by two extents_to_pixels() calls, rounding @ink_rect and @logical_rect such that the rounded rectangles fully contain the unrounded one (that is, passes them as first argument to extents_to_pixels()).

Returns
ink_rect

rectangle used to store the extents of the glyph string as drawn

logical_rect

rectangle used to store the logical extents of the glyph string

This is supported on crate feature v1_50 only.

Returns the resolved direction of the line.

Returns

the resolved direction of the line

This is supported on crate feature v1_50 only.

Returns the start index of the line, as byte index into the text of the layout.

Returns

the start index of the line

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.

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.

Returns
ranges

location to store a pointer to an array of ranges. The array will be of length 2*n_ranges, with each range starting at (*ranges)[2*n] and of width (*ranges)[2*n + 1] - (*ranges)[2*n]. This array must be freed with g_free(). The coordinates are relative to the layout and are in Pango units.

Converts an index within a line to a X position.

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

Returns
x_pos

location to store the x_offset (in Pango units)

This is supported on crate feature v1_50 only.

Returns whether this is the first line of the paragraph.

Returns

true if this is the first line

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_ and @trailing 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_ and @trailing. An X position to the left of the line results in @index_ pointing to the (logical) last grapheme in the line and @trailing being set to the number of characters in that grapheme. The reverse is true for a left-to-right line.

x_pos

the X offset (in Pango units) from the left edge of the line.

Returns

false if @x_pos was outside the line, true if inside

index_

location to store calculated byte index for the grapheme in which the user clicked

trailing

location to store an integer indicating where in the grapheme the user clicked. It will either be zero, or the number of characters in the grapheme. 0 represents the leading edge of the grapheme.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Returns the type identifier of Self.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.