pub struct SelectionState {
pub active: bool,
pub anchor: Option<SelectionPos>,
pub cursor: Option<SelectionPos>,
pub frozen_lines: Option<Vec<Line<'static>>>,
pub frozen_width: usize,
pub last_copied_text: Option<String>,
}Expand description
Selection state for markdown widget.
Tracks whether selection mode is active and the selection bounds.
Fields§
§active: boolWhether selection mode is active.
anchor: Option<SelectionPos>Selection anchor (start point).
cursor: Option<SelectionPos>Current cursor/end position.
frozen_lines: Option<Vec<Line<'static>>>Cached rendered lines for stable selection.
frozen_width: usizeWidth when lines were frozen.
last_copied_text: Option<String>Last copied text (for showing toast notification).
Implementations§
Source§impl SelectionState
impl SelectionState
Source§impl SelectionState
impl SelectionState
Sourcepub fn get_selected_text(&self) -> Option<String>
pub fn get_selected_text(&self) -> Option<String>
Get the selected text from the frozen lines.
§Returns
The selected text as a string, or None if no selection.
Source§impl SelectionState
impl SelectionState
Sourcepub fn get_selection(&self) -> Option<(SelectionPos, SelectionPos)>
pub fn get_selection(&self) -> Option<(SelectionPos, SelectionPos)>
Get the normalized selection bounds (start, end) where start <= end.
§Returns
Some((start, end)) if there’s an active selection, None otherwise.
Sourcepub fn has_selection(&self) -> bool
pub fn has_selection(&self) -> bool
Check if there’s an active selection (anchor and cursor set).
Source§impl SelectionState
impl SelectionState
Sourcepub fn update_cursor(&mut self, x: i32, y: i32)
pub fn update_cursor(&mut self, x: i32, y: i32)
Sourcepub fn set_anchor(&mut self)
pub fn set_anchor(&mut self)
Set anchor at current cursor position (for keyboard selection toggle).
Sourcepub fn clear_anchor(&mut self)
pub fn clear_anchor(&mut self)
Clear anchor (deselect).
Sourcepub fn toggle_anchor(&mut self)
pub fn toggle_anchor(&mut self)
Toggle anchor at current position.
Trait Implementations§
Source§impl Clone for SelectionState
impl Clone for SelectionState
Source§fn clone(&self) -> SelectionState
fn clone(&self) -> SelectionState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SelectionState
impl Debug for SelectionState
Source§impl Default for SelectionState
impl Default for SelectionState
Source§fn default() -> SelectionState
fn default() -> SelectionState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for SelectionState
impl RefUnwindSafe for SelectionState
impl Send for SelectionState
impl Sync for SelectionState
impl Unpin for SelectionState
impl UnwindSafe for SelectionState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
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>
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)
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)
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
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().