pub struct TabsState { /* private fields */ }Expand description
The tabs, which one is selected, and the scroll position of the strip.
Edit it through its methods so the strip observes the change. Every method leaves the state whole before it emits, so a subscriber reads the tabs and the selection as they will render.
Implementations§
Source§impl TabsState
impl TabsState
Sourcepub fn new(tabs: impl IntoIterator<Item = Tab>) -> Self
pub fn new(tabs: impl IntoIterator<Item = Tab>) -> Self
The tabs, with the first one selected. Ids must be unique.
Sourcepub fn selected(&self) -> Option<&SharedString>
pub fn selected(&self) -> Option<&SharedString>
The id of the selected tab.
Sourcepub fn select(
&mut self,
id: impl Into<SharedString>,
cx: &mut Context<'_, Self>,
)
pub fn select( &mut self, id: impl Into<SharedString>, cx: &mut Context<'_, Self>, )
Selects the tab with id and scrolls it into view. A no-op for an
unknown id or the tab already selected.
Sourcepub fn select_neighbor(&mut self, step: isize, cx: &mut Context<'_, Self>)
pub fn select_neighbor(&mut self, step: isize, cx: &mut Context<'_, Self>)
Selects the tab step places from the selected one, wrapping at
the ends: -1 for the previous tab, 1 for the next.
Sourcepub fn select_edge(&mut self, last: bool, cx: &mut Context<'_, Self>)
pub fn select_edge(&mut self, last: bool, cx: &mut Context<'_, Self>)
Selects the first tab, or the last one when last is set.
Sourcepub fn push(&mut self, tab: Tab, cx: &mut Context<'_, Self>)
pub fn push(&mut self, tab: Tab, cx: &mut Context<'_, Self>)
Appends a tab and selects it. Its id must be new to the strip.
Sourcepub fn insert(&mut self, index: usize, tab: Tab, cx: &mut Context<'_, Self>)
pub fn insert(&mut self, index: usize, tab: Tab, cx: &mut Context<'_, Self>)
Inserts a tab at index, clamped to the end, without selecting it,
so a host that keeps its own order can put a tab where it belongs.
Its id must be new to the strip.
Sourcepub fn remove(
&mut self,
id: impl Into<SharedString>,
cx: &mut Context<'_, Self>,
)
pub fn remove( &mut self, id: impl Into<SharedString>, cx: &mut Context<'_, Self>, )
Removes the tab with id. If it was selected, the tab after it is
selected, or the one before it when it was last. Emits Closed,
then Selected when the selection moved.
Sourcepub fn set_icon(
&mut self,
id: impl Into<SharedString>,
icon: Option<impl Into<Icon>>,
cx: &mut Context<'_, Self>,
)
pub fn set_icon( &mut self, id: impl Into<SharedString>, icon: Option<impl Into<Icon>>, cx: &mut Context<'_, Self>, )
Sets or clears the icon of the tab with id, such as to mark a
state the tab is in. A no-op for an unknown id.
Sourcepub fn request_add(&mut self, cx: &mut Context<'_, Self>)
pub fn request_add(&mut self, cx: &mut Context<'_, Self>)
Asks the application for a new tab.
Sourcepub fn rename(
&mut self,
id: impl Into<SharedString>,
label: impl Into<SharedString>,
cx: &mut Context<'_, Self>,
)
pub fn rename( &mut self, id: impl Into<SharedString>, label: impl Into<SharedString>, cx: &mut Context<'_, Self>, )
Sets the label of the tab with id and emits Renamed. A no-op
for an unknown id or an unchanged label.
Sourcepub fn start_rename(
&mut self,
id: impl Into<SharedString>,
window: &mut Window,
cx: &mut Context<'_, Self>,
)
pub fn start_rename( &mut self, id: impl Into<SharedString>, window: &mut Window, cx: &mut Context<'_, Self>, )
Turns the label of the tab with id into a text field holding the
label, selected and focused. Enter or leaving the field commits a
non-empty name; Escape cancels. A strip that is
renamable starts one on a double click.
Sourcepub fn commit_rename(&mut self, cx: &mut Context<'_, Self>)
pub fn commit_rename(&mut self, cx: &mut Context<'_, Self>)
Ends an inline rename and keeps the typed name, unless it is blank.
Sourcepub fn cancel_rename(&mut self, cx: &mut Context<'_, Self>)
pub fn cancel_rename(&mut self, cx: &mut Context<'_, Self>)
Ends an inline rename and keeps the old label.
Sourcepub fn renaming(&self) -> Option<&SharedString>
pub fn renaming(&self) -> Option<&SharedString>
The id of the tab being renamed inline, if any.
Trait Implementations§
impl EventEmitter<TabsEvent> for TabsState
Auto Trait Implementations§
impl !RefUnwindSafe for TabsState
impl !Send for TabsState
impl !Sync for TabsState
impl !UnwindSafe for TabsState
impl Freeze for TabsState
impl Unpin for TabsState
impl UnsafeUnpin for TabsState
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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