Struct rat_widget::list::ListState

source ·
pub struct ListState<Selection> {
    pub rows: usize,
    pub scroll: ScrollState,
    pub area: Rect,
    pub inner: Rect,
    pub row_areas: Vec<Rect>,
    pub focus: FocusFlag,
    pub selection: Selection,
    pub mouse: MouseFlags,
}
Expand description

State & event handling.

Fields§

§rows: usize

Length in items.

§scroll: ScrollState

Offset

§area: Rect

Total area

§inner: Rect

Area inside the block.

§row_areas: Vec<Rect>

Areas for the rendered items.

§focus: FocusFlag

Focus

§selection: Selection

Selection model

§mouse: MouseFlags

Helper for mouse events.

Implementations§

source§

impl<Selection: ListSelection> ListState<Selection>

source

pub fn new() -> Self
where Selection: Default,

New initial state.

source

pub fn named(name: &str) -> Self
where Selection: Default,

New state with a focus name

source

pub fn rows(&self) -> usize

source

pub fn clear_offset(&mut self)

source

pub fn max_offset(&self) -> usize

source

pub fn set_max_offset(&mut self, max: usize)

source

pub fn offset(&self) -> usize

source

pub fn set_offset(&mut self, offset: usize) -> bool

source

pub fn page_len(&self) -> usize

source

pub fn scroll_by(&self) -> usize

source

pub fn scroll_to_selected(&mut self) -> bool

Scroll to selected.

source

pub fn scroll_to(&mut self, pos: usize) -> bool

source

pub fn scroll_up(&mut self, n: usize) -> bool

source

pub fn scroll_down(&mut self, n: usize) -> bool

source§

impl<Selection: ListSelection> ListState<Selection>

source

pub fn row_area(&self, row: usize) -> Option<Rect>

Returns the row-area for the given row, if it is visible.

source

pub fn row_at_clicked(&self, pos: (u16, u16)) -> Option<usize>

source

pub fn row_at_drag(&self, pos: (u16, u16)) -> usize

Row when dragging. Can go outside the area.

source§

impl ListState<RowSelection>

source

pub fn items_added(&mut self, pos: usize, n: usize)

Update the state to match adding items.

This corrects the number of rows, offset and selection.

source

pub fn items_removed(&mut self, pos: usize, n: usize)

Update the state to match removing items.

This corrects the number of rows, offset and selection.

source

pub fn set_scroll_selection(&mut self, scroll: bool)

When scrolling the table, change the selection instead of the offset.

source

pub fn clear_selection(&mut self)

Clear the selection.

source

pub fn has_selection(&mut self) -> bool

Anything selected?

source

pub fn selected(&self) -> Option<usize>

Returns the lead selection.

source

pub fn select(&mut self, row: Option<usize>) -> bool

source

pub fn move_to(&mut self, row: usize) -> bool

Move the selection to the given row. Limits the movement to the row-count. Ensures the row is visible afterwards.

source

pub fn move_up(&mut self, n: usize) -> bool

Move the selection up n rows. Ensures the row is visible afterwards.

source

pub fn move_down(&mut self, n: usize) -> bool

Move the selection down n rows. Ensures the row is visible afterwards.

source§

impl ListState<RowSetSelection>

source

pub fn clear_selection(&mut self)

Clear the selection.

source

pub fn has_selection(&mut self) -> bool

Anything selected?

source

pub fn selected(&self) -> HashSet<usize>

source

pub fn set_lead(&mut self, row: Option<usize>, extend: bool) -> bool

Change the lead-selection. Limits the value to the number of rows. If extend is false the current selection is cleared and both lead and anchor are set to the given value. If extend is true, the anchor is kept where it is and lead is changed. Everything in the range anchor..lead is selected. It doesn’t matter if anchor < lead.

source

pub fn lead(&self) -> Option<usize>

Current lead.

source

pub fn anchor(&self) -> Option<usize>

Current anchor.

source

pub fn set_lead_clamped(&mut self, lead: usize, max: usize, extend: bool)

Set a new lead, at the same time limit the lead to max.

source

pub fn retire_selection(&mut self)

Retire the current anchor/lead selection to the set of selected rows. Resets lead and anchor and starts a new selection round.

source

pub fn add_selected(&mut self, idx: usize)

Add to selection.

source

pub fn remove_selected(&mut self, idx: usize)

Remove from selection. Only works for retired selections, not for the active anchor-lead range.

source

pub fn move_to(&mut self, row: usize, extend: bool) -> bool

Move the selection to the given row. Ensures the row is visible afterwards.

source

pub fn move_up(&mut self, n: usize, extend: bool) -> bool

Move the selection up n rows. Ensures the row is visible afterwards.

source

pub fn move_down(&mut self, n: usize, extend: bool) -> bool

Move the selection down n rows. Ensures the row is visible afterwards.

Trait Implementations§

source§

impl<Selection: Clone> Clone for ListState<Selection>

source§

fn clone(&self) -> ListState<Selection>

Returns a copy 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<Selection: Debug> Debug for ListState<Selection>

source§

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

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

impl<Selection: Default> Default for ListState<Selection>

source§

fn default() -> ListState<Selection>

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

impl HandleEvent<Event, MouseOnly, Outcome> for ListState<NoSelection>

source§

fn handle(&mut self, event: &Event, _keymap: MouseOnly) -> Outcome

Handle an event. Read more
source§

impl HandleEvent<Event, MouseOnly, Outcome> for ListState<RowSelection>

source§

fn handle(&mut self, event: &Event, _keymap: MouseOnly) -> Outcome

Handle an event. Read more
source§

impl HandleEvent<Event, MouseOnly, Outcome> for ListState<RowSetSelection>

source§

fn handle(&mut self, event: &Event, _: MouseOnly) -> Outcome

Handle an event. Read more
source§

impl HandleEvent<Event, Regular, Outcome> for ListState<NoSelection>

source§

fn handle(&mut self, event: &Event, _keymap: Regular) -> Outcome

Handle an event. Read more
source§

impl HandleEvent<Event, Regular, Outcome> for ListState<RowSelection>

source§

fn handle(&mut self, event: &Event, _keymap: Regular) -> Outcome

Handle an event. Read more
source§

impl HandleEvent<Event, Regular, Outcome> for ListState<RowSetSelection>

source§

fn handle(&mut self, event: &Event, _: Regular) -> Outcome

Handle an event. Read more
source§

impl<Selection> HasFocusFlag for ListState<Selection>

source§

fn focus(&self) -> FocusFlag

Access to the flag for the rest.
source§

fn area(&self) -> Rect

Access the area for mouse focus.
source§

fn z_areas(&self) -> &[ZRect]

The widget might have several disjointed areas. This is the case if it is showing a popup, but there might be other causes. Read more
source§

fn navigable(&self) -> Navigation

Declares how the widget interacts with focus. Read more
source§

fn is_focused(&self) -> bool

Focused?
source§

fn lost_focus(&self) -> bool

Just lost focus.
source§

fn gained_focus(&self) -> bool

Just gained focus.
source§

impl<Selection: PartialEq> PartialEq for ListState<Selection>

source§

fn eq(&self, other: &ListState<Selection>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Selection: Eq> Eq for ListState<Selection>

source§

impl<Selection> StructuralPartialEq for ListState<Selection>

Auto Trait Implementations§

§

impl<Selection> !Freeze for ListState<Selection>

§

impl<Selection> !RefUnwindSafe for ListState<Selection>

§

impl<Selection> !Send for ListState<Selection>

§

impl<Selection> !Sync for ListState<Selection>

§

impl<Selection> Unpin for ListState<Selection>
where Selection: Unpin,

§

impl<Selection> !UnwindSafe for ListState<Selection>

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, dst: *mut T)

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

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

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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.