Skip to main content

SelectionHelper

Struct SelectionHelper 

Source
pub struct SelectionHelper { /* private fields */ }
Expand description

Text-selection logic

This struct holds a CursorRange. There is no requirement on the order of these two positions. Each may be adjusted independently.

Additionally, this struct holds the selection anchor index. This usually equals the selection index, but when using double-click or triple-click selection, the anchor represents the initially-clicked position while the selection index represents the expanded position.

Implementations§

Source§

impl SelectionHelper

Source

pub fn set_cursor(&mut self, index: usize)

Set the cursor position, clearing the selection

Source

pub fn set_edit_index(&mut self, index: usize)

Set the cursor index without adjusting the selection index

Source

pub fn set_sel_index(&mut self, index: usize)

Set the selection index without adjusting the edit index

The anchor index is also set to the selection index.

Source

pub fn set_sel_index_only(&mut self, index: usize)

Set the selection index only

Prefer Self::set_sel_index unless you know you don’t want to set the anchor.

Source

pub fn set_max_len(&mut self, len: usize)

Apply new limit to the maximum length

Call this method if the string changes under the selection to ensure that the selection does not exceed the length of the new string.

Source

pub fn set_anchor(&mut self, clear: bool)

Set the anchor to the edit position

This is used to start a drag-selection. If clear, then the selection position is also set to the edit position.

Self::expand may be used to expand the selection from this anchor.

Source

pub fn expand<T: FormattableText>(&mut self, text: &Text<T>, lines: bool)

Expand the selection from the range between edit and anchor positions

This moves the cursor range. To obtain repeatable behaviour on drag-selection, set the anchor (Self::set_anchor) initially, then set the edit position and call this method each time the cursor moves.

The selection is expanded by words or lines (if lines). Line expansion requires that text has been prepared (Text::prepare).

Source

pub fn delete_range(&mut self, range: Range<usize>)

Adjust all indices for a deletion from the source text

Methods from Deref<Target = CursorRange>§

Source

pub fn is_empty(&self) -> bool

True if the selection index equals the cursor index

Source

pub fn set_empty(&mut self)

Clear selection without changing the edit index

Source

pub fn sel_index(&self) -> usize

Get the selection index

Source

pub fn edit_index(&self) -> usize

Get the edit cursor index

Source

pub fn range(&self) -> Range<usize>

Get the selection range

This range is from the edit index to the selection index or reversed, whichever is increasing.

Trait Implementations§

Source§

impl Clone for SelectionHelper

Source§

fn clone(&self) -> SelectionHelper

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SelectionHelper

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for SelectionHelper

Source§

fn default() -> SelectionHelper

Returns the “default value” for a type. Read more
Source§

impl Deref for SelectionHelper

Source§

type Target = CursorRange

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for SelectionHelper

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<T: Into<CursorRange>> From<T> for SelectionHelper

Source§

fn from(x: T) -> Self

Converts to this type from the input type.

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<S, T> Cast<T> for S
where T: Conv<S>,

Source§

fn cast(self) -> T

Cast from Self to T Read more
Source§

fn try_cast(self) -> Result<T, Error>

Try converting from Self to T Read more
Source§

impl<S, T> CastApprox<T> for S
where T: ConvApprox<S>,

Source§

fn try_cast_approx(self) -> Result<T, Error>

Try approximate conversion from Self to T Read more
Source§

fn cast_approx(self) -> T

Cast approximately from Self to T Read more
Source§

impl<S, T> CastFloat<T> for S
where T: ConvFloat<S>,

Source§

fn cast_trunc(self) -> T

Cast to integer, truncating Read more
Source§

fn cast_nearest(self) -> T

Cast to the nearest integer Read more
Source§

fn cast_floor(self) -> T

Cast the floor to an integer Read more
Source§

fn cast_ceil(self) -> T

Cast the ceiling to an integer Read more
Source§

fn try_cast_trunc(self) -> Result<T, Error>

Try converting to integer with truncation Read more
Source§

fn try_cast_nearest(self) -> Result<T, Error>

Try converting to the nearest integer Read more
Source§

fn try_cast_floor(self) -> Result<T, Error>

Try converting the floor to an integer Read more
Source§

fn try_cast_ceil(self) -> Result<T, Error>

Try convert the ceiling to an integer 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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more