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: RectTotal area readonly. renewed for each render.
inner: RectArea inside the block. readonly. renewed for each render.
row_areas: Vec<Rect>Areas for the rendered items. readonly. renewed for each render.
rows: usizeLength in items. mostly readonly. renewed for each render.
scroll: ScrollStateOffset etc. read+write
focus: FocusFlagFocus read+write
selection: SelectionSelection model read+write
mouse: MouseFlagsHelper for mouse events. used for mouse interaction
Implementations§
Source§impl<Selection: ListSelection> ListState<Selection>
impl<Selection: ListSelection> ListState<Selection>
pub fn rows(&self) -> usize
pub fn clear_offset(&mut self)
pub fn max_offset(&self) -> usize
pub fn set_max_offset(&mut self, max: usize)
pub fn offset(&self) -> usize
pub fn set_offset(&mut self, offset: usize) -> bool
pub fn page_len(&self) -> usize
pub fn scroll_by(&self) -> usize
Sourcepub fn scroll_to_selected(&mut self) -> bool
pub fn scroll_to_selected(&mut self) -> bool
Scroll to selected.
pub fn scroll_to(&mut self, pos: usize) -> bool
pub fn scroll_up(&mut self, n: usize) -> bool
pub fn scroll_down(&mut self, n: usize) -> bool
Source§impl<Selection: ListSelection> ListState<Selection>
impl<Selection: ListSelection> ListState<Selection>
Source§impl ListState<RowSelection>
impl ListState<RowSelection>
Sourcepub fn items_added(&mut self, pos: usize, n: usize)
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.
Sourcepub fn items_removed(&mut self, pos: usize, n: usize)
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.
Sourcepub fn set_scroll_selection(&mut self, scroll: bool)
pub fn set_scroll_selection(&mut self, scroll: bool)
When scrolling the table, change the selection instead of the offset.
Sourcepub fn clear_selection(&mut self)
pub fn clear_selection(&mut self)
Clear the selection.
Sourcepub fn has_selection(&mut self) -> bool
pub fn has_selection(&mut self) -> bool
Anything selected?
Sourcepub fn selected_checked(&self) -> Option<usize>
pub fn selected_checked(&self) -> Option<usize>
Returns the lead selection. Ensures the index is less than rows.
pub fn select(&mut self, row: Option<usize>) -> bool
Sourcepub fn move_to(&mut self, row: usize) -> bool
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§impl ListState<RowSetSelection>
impl ListState<RowSetSelection>
Sourcepub fn clear_selection(&mut self)
pub fn clear_selection(&mut self)
Clear the selection.
Sourcepub fn has_selection(&mut self) -> bool
pub fn has_selection(&mut self) -> bool
Anything selected?
pub fn selected(&self) -> HashSet<usize>
Sourcepub fn set_lead(&mut self, row: Option<usize>, extend: bool) -> bool
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.
Sourcepub fn set_lead_clamped(&mut self, lead: usize, max: usize, extend: bool)
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.
Sourcepub fn retire_selection(&mut self)
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.
Sourcepub fn add_selected(&mut self, idx: usize)
pub fn add_selected(&mut self, idx: usize)
Add to selection.
Sourcepub fn remove_selected(&mut self, idx: usize)
pub fn remove_selected(&mut self, idx: usize)
Remove from selection. Only works for retired selections, not for the active anchor-lead range.
Sourcepub fn move_to(&mut self, row: usize, extend: bool) -> bool
pub fn move_to(&mut self, row: usize, extend: bool) -> bool
Move the selection to the given row. Ensures the row is visible afterwards.
Trait Implementations§
Source§impl HandleEvent<Event, MouseOnly, Outcome> for ListState<NoSelection>
impl HandleEvent<Event, MouseOnly, Outcome> for ListState<NoSelection>
Source§impl HandleEvent<Event, MouseOnly, Outcome> for ListState<RowSelection>
impl HandleEvent<Event, MouseOnly, Outcome> for ListState<RowSelection>
Source§impl HandleEvent<Event, MouseOnly, Outcome> for ListState<RowSetSelection>
impl HandleEvent<Event, MouseOnly, Outcome> for ListState<RowSetSelection>
Source§impl HandleEvent<Event, Regular, Outcome> for ListState<NoSelection>
impl HandleEvent<Event, Regular, Outcome> for ListState<NoSelection>
Source§impl HandleEvent<Event, Regular, Outcome> for ListState<RowSelection>
impl HandleEvent<Event, Regular, Outcome> for ListState<RowSelection>
Source§impl HandleEvent<Event, Regular, Outcome> for ListState<RowSetSelection>
impl HandleEvent<Event, Regular, Outcome> for ListState<RowSetSelection>
Source§impl<Selection> HasFocus for ListState<Selection>
impl<Selection> HasFocus for ListState<Selection>
Source§fn build(&self, builder: &mut FocusBuilder)
fn build(&self, builder: &mut FocusBuilder)
Source§fn is_focused(&self) -> bool
fn is_focused(&self) -> bool
Source§fn lost_focus(&self) -> bool
fn lost_focus(&self) -> bool
Source§fn gained_focus(&self) -> bool
fn gained_focus(&self) -> bool
Source§impl<Selection> RelocatableState for ListState<Selection>
impl<Selection> RelocatableState for ListState<Selection>
impl<Selection: Eq> Eq for ListState<Selection>
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 Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
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) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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>
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>
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> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more