ListState

Struct ListState 

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

State & event handling.

Fields§

§area: Rect

Total area readonly. renewed for each render.

§inner: Rect

Area inside the block. readonly. renewed for each render.

§row_areas: Vec<Rect>

Areas for the rendered items. readonly. renewed for each render.

§rows: usize

Length in items. mostly readonly. renewed for each render.

§scroll: ScrollState

Offset etc. read+write

§focus: FocusFlag

Focus read+write

§selection: Selection

Selection model read+write

§mouse: MouseFlags

Helper for mouse events. used for mouse interaction

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 selected_checked(&self) -> Option<usize>

Returns the lead selection. Ensures the index is less than rows.

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) -> Self

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<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() -> Self

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> HasFocus for ListState<Selection>

Source§

fn build(&self, builder: &mut FocusBuilder)

Build the focus-structure for the container.
Source§

fn focus(&self) -> FocusFlag

Access to the flag for the rest.
Source§

fn area(&self) -> Rect

Area for mouse focus. Read more
Source§

fn id(&self) -> usize

Provide a unique id for the widget.
Source§

fn area_z(&self) -> u16

Z value for the area. 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> RelocatableState for ListState<Selection>

Source§

fn relocate(&mut self, shift: (i16, i16), clip: Rect)

Relocate the areas in this widgets state. Read more
Source§

fn relocate_hidden(&mut self)

Relocate all areas to a clip-rect (0,0+0x0).
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<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
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, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
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, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
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

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
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, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
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> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
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, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. 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, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.