pub struct CarouselState { /* private fields */ }Expand description
Shared behavior state for every part of a super::Carousel.
CarouselState intentionally owns behavior only. The content and its
items provide presentation and layout, while this state owns selection,
orientation, looping, the shared scroll handle, and the input snapshots
used to settle gestures. Programmatic setters are silent; user-facing
selection methods emit one CarouselEvent::Change for a successful
selection.
Implementations§
Source§impl CarouselState
impl CarouselState
Sourcepub fn new(item_count: usize) -> Self
pub fn new(item_count: usize) -> Self
Creates state for item_count items, initially selecting the first
item when at least one item exists.
Sourcepub fn with_selected_index(self, index: usize) -> Self
pub fn with_selected_index(self, index: usize) -> Self
Sets the initially selected item.
Sourcepub fn with_looping(self, looping: bool) -> Self
pub fn with_looping(self, looping: bool) -> Self
Enables or disables wrapping at the first and last items.
Sourcepub fn item_count(&self) -> usize
pub fn item_count(&self) -> usize
Returns the number of logical items.
Sourcepub fn selected_index(&self) -> Option<usize>
pub fn selected_index(&self) -> Option<usize>
Returns the selected logical item, or None when the carousel is
empty.
Sourcepub fn is_looping(&self) -> bool
pub fn is_looping(&self) -> bool
Returns whether navigation wraps at the carousel edges.
Sourcepub fn has_previous(&self) -> bool
pub fn has_previous(&self) -> bool
Returns whether a previous item can be selected.
Sourcepub fn set_selected_index(&mut self, index: usize, cx: &mut Context<'_, Self>)
pub fn set_selected_index(&mut self, index: usize, cx: &mut Context<'_, Self>)
Silently changes the selected item for controlled/programmatic use.
The value is clamped to the available item range. This method does
not emit CarouselEvent::Change.
Sourcepub fn set_item_count(&mut self, item_count: usize, cx: &mut Context<'_, Self>)
pub fn set_item_count(&mut self, item_count: usize, cx: &mut Context<'_, Self>)
Silently changes the number of logical items and clamps the selection.
Sourcepub fn set_axis(&mut self, axis: Axis, cx: &mut Context<'_, Self>)
pub fn set_axis(&mut self, axis: Axis, cx: &mut Context<'_, Self>)
Silently changes the carousel orientation.
Sourcepub fn set_looping(&mut self, looping: bool, cx: &mut Context<'_, Self>)
pub fn set_looping(&mut self, looping: bool, cx: &mut Context<'_, Self>)
Silently changes whether edge navigation wraps.
Sourcepub fn select_index(&mut self, index: usize, cx: &mut Context<'_, Self>) -> bool
pub fn select_index(&mut self, index: usize, cx: &mut Context<'_, Self>) -> bool
Selects an item through a user-facing path and emits one change event when the index is valid and differs from the current selection.
Sourcepub fn select_previous(&mut self, cx: &mut Context<'_, Self>) -> bool
pub fn select_previous(&mut self, cx: &mut Context<'_, Self>) -> bool
Selects the previous item, wrapping when looping is enabled.
Sourcepub fn select_next(&mut self, cx: &mut Context<'_, Self>) -> bool
pub fn select_next(&mut self, cx: &mut Context<'_, Self>) -> bool
Selects the next item, wrapping when looping is enabled.
Sourcepub fn select_first(&mut self, cx: &mut Context<'_, Self>) -> bool
pub fn select_first(&mut self, cx: &mut Context<'_, Self>) -> bool
Selects the first item through the user-facing path.
Sourcepub fn select_last(&mut self, cx: &mut Context<'_, Self>) -> bool
pub fn select_last(&mut self, cx: &mut Context<'_, Self>) -> bool
Selects the last item through the user-facing path.
Trait Implementations§
impl EventEmitter<CarouselEvent> for CarouselState
Source§impl Focusable for CarouselState
impl Focusable for CarouselState
Source§fn focus_handle(&self, cx: &App) -> FocusHandle
fn focus_handle(&self, cx: &App) -> FocusHandle
The keyboard focus shared by every part: the root tracks it, and a clicked control moves focus here so the arrow keys keep working.
Auto Trait Implementations§
impl !Freeze for CarouselState
impl !RefUnwindSafe for CarouselState
impl !Send for CarouselState
impl !Sync for CarouselState
impl !UnwindSafe for CarouselState
impl Unpin for CarouselState
impl UnsafeUnpin for CarouselState
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
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 more