pub struct SearchableListState<D: SearchableListDelegate + 'static>{
pub focus_handle: FocusHandle,
/* private fields */
}Expand description
Shared infrastructure for all searchable-list-based components (SelectState, ComboBoxState).
This struct is a plain nested value inside a GPUI entity — it has no entity context of its
own and cannot call cx.notify() or cx.emit(). Callers are responsible for those after
calling mutable methods.
Fields§
§focus_handle: FocusHandleImplementations§
Source§impl<D: SearchableListDelegate + 'static> SearchableListState<D>
impl<D: SearchableListDelegate + 'static> SearchableListState<D>
Sourcepub fn new<P: 'static>(
delegate: D,
selected_indices: Vec<IndexPath>,
on_confirm: impl Fn(Option<IndexPath>, bool, &mut Window, &mut Context<'_, ListState<SearchableListAdapter<D>>>) + 'static,
on_cancel: impl Fn(Option<IndexPath>, &mut Window, &mut Context<'_, ListState<SearchableListAdapter<D>>>) + 'static,
on_render_empty: impl Fn(&mut Window, &mut App) -> AnyElement + 'static,
on_blur: fn(&mut P, &mut Window, &mut Context<'_, P>),
window: &mut Window,
cx: &mut Context<'_, P>,
) -> Self
pub fn new<P: 'static>( delegate: D, selected_indices: Vec<IndexPath>, on_confirm: impl Fn(Option<IndexPath>, bool, &mut Window, &mut Context<'_, ListState<SearchableListAdapter<D>>>) + 'static, on_cancel: impl Fn(Option<IndexPath>, &mut Window, &mut Context<'_, ListState<SearchableListAdapter<D>>>) + 'static, on_render_empty: impl Fn(&mut Window, &mut App) -> AnyElement + 'static, on_blur: fn(&mut P, &mut Window, &mut Context<'_, P>), window: &mut Window, cx: &mut Context<'_, P>, ) -> Self
Create a new SearchableListState, creating the list entity in the given parent context.
on_confirm, on_cancel, and on_render_empty are forwarded to the underlying adapter.
on_blur is a function pointer invoked on the parent entity when focus leaves any of the
list’s focus handles.
pub fn selection(&self) -> &[(IndexPath, D::Item)]
pub fn selected_values(&self) -> Vec<<D::Item as SearchableListItem>::Value>
pub fn is_open(&self) -> bool
pub fn focus_handle(&self) -> &FocusHandle
Sourcepub fn add_selected_index(&mut self, index: IndexPath, cx: &App) -> bool
pub fn add_selected_index(&mut self, index: IndexPath, cx: &App) -> bool
Add a single index to the selection by looking up the item in the list.
Requires cx only to read the list entity; does not notify.
Sourcepub fn remove_selected_index(&mut self, index: IndexPath) -> bool
pub fn remove_selected_index(&mut self, index: IndexPath) -> bool
Remove a single index from the selection.
Sourcepub fn set_selected_indices(
&mut self,
indices: impl IntoIterator<Item = IndexPath>,
cx: &App,
)
pub fn set_selected_indices( &mut self, indices: impl IntoIterator<Item = IndexPath>, cx: &App, )
Replace the entire selection, looking up items from the list.
Auto Trait Implementations§
impl<D> !RefUnwindSafe for SearchableListState<D>
impl<D> !Send for SearchableListState<D>
impl<D> !Sync for SearchableListState<D>
impl<D> !UnwindSafe for SearchableListState<D>
impl<D> Freeze for SearchableListState<D>where
<<D as SearchableListDelegate>::Item as SearchableListItem>::Value: Sized,
Entity<ListState<SearchableListAdapter<D>>>: Freeze,
Vec<(IndexPath, <D as SearchableListDelegate>::Item)>: Freeze,
impl<D> Unpin for SearchableListState<D>where
<<D as SearchableListDelegate>::Item as SearchableListItem>::Value: Sized,
Entity<ListState<SearchableListAdapter<D>>>: Unpin,
Vec<(IndexPath, <D as SearchableListDelegate>::Item)>: Unpin,
impl<D> UnsafeUnpin for SearchableListState<D>where
<<D as SearchableListDelegate>::Item as SearchableListItem>::Value: Sized,
Entity<ListState<SearchableListAdapter<D>>>: UnsafeUnpin,
Vec<(IndexPath, <D as SearchableListDelegate>::Item)>: UnsafeUnpin,
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
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