Skip to main content

UnifiedLayout

Struct UnifiedLayout 

Source
pub struct UnifiedLayout {
    pub items: Vec<PositionedItem>,
    pub overflow: OverflowInfo,
}

Fields§

§items: Vec<PositionedItem>§overflow: OverflowInfo

Information about content that did not fit.

Implementations§

Source§

impl UnifiedLayout

Source

pub fn bounds(&self) -> Rect

Calculate the bounding box of all positioned items. This is computed on-demand rather than cached.

Source

pub const fn is_empty(&self) -> bool

Source

pub fn first_baseline(&self) -> Option<f32>

Source

pub fn last_baseline(&self) -> Option<f32>

Source

pub fn hittest_cursor(&self, point: LogicalPosition) -> Option<TextCursor>

Takes a point relative to the layout’s origin and returns the closest logical cursor position.

This is the unified hit-testing implementation. The old hit_test_to_cursor method is deprecated in favor of this one.

Source

pub fn get_selection_rects(&self, range: &SelectionRange) -> Vec<LogicalRect>

Given a logical selection range, returns a vector of visual rectangles that cover the selected text, in the layout’s coordinate space.

Source

pub fn get_cursor_rect(&self, cursor: &TextCursor) -> Option<LogicalRect>

Calculates the visual rectangle for a cursor at a given logical position.

Source

pub fn get_first_cluster_cursor(&self) -> Option<TextCursor>

Get a cursor at the first cluster (leading edge) in the layout.

Source

pub fn get_last_cluster_cursor(&self) -> Option<TextCursor>

Get a cursor at the last cluster (trailing edge) in the layout.

Source

pub fn move_cursor_left( &self, cursor: TextCursor, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor one visible position to the left (the previous grapheme boundary). Affinity is consulted so each press moves exactly one stop and the document start (first grapheme, Leading) is reachable; combining marks move together with their base.

Source

pub fn move_cursor_right( &self, cursor: TextCursor, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor one visible position to the right (the next grapheme boundary). Affinity is consulted so each press moves exactly one stop and the document end (last grapheme, Trailing) is reachable; combining marks move together with their base.

Source

pub fn move_cursor_up( &self, cursor: TextCursor, goal_x: &mut Option<f32>, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor up one line, attempting to preserve the horizontal column.

Source

pub fn move_cursor_down( &self, cursor: TextCursor, goal_x: &mut Option<f32>, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor down one line, attempting to preserve the horizontal column.

Source

pub fn move_cursor_to_line_start( &self, cursor: TextCursor, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor to the visual start of its current line.

Source

pub fn move_cursor_to_line_end( &self, cursor: TextCursor, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor to the visual end of its current line.

Source

pub fn move_cursor_to_prev_word( &self, cursor: TextCursor, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor one word to the left (Ctrl+Left / Option+Left).

Word boundaries use the shared [is_word_char] predicate (alphanumeric or underscore are word characters; whitespace AND punctuation are boundaries), so this agrees with double-click word selection. The cursor moves past any boundary clusters to the left, then past word clusters until the next boundary or start of text.

Source

pub fn move_cursor_to_next_word( &self, cursor: TextCursor, debug: &mut Option<Vec<String>>, ) -> TextCursor

Moves a cursor one word to the right (Ctrl+Right / Option+Right).

Word boundaries use the shared [is_word_char] predicate (alphanumeric or underscore are word characters; whitespace AND punctuation are boundaries), so this agrees with double-click word selection. The cursor moves past any word clusters, then past boundary clusters until the next word or end of text.

Trait Implementations§

Source§

impl Clone for UnifiedLayout

Source§

fn clone(&self) -> UnifiedLayout

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UnifiedLayout

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.