Skip to main content

TabsState

Struct TabsState 

Source
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

Source

pub fn new(tabs: impl IntoIterator<Item = Tab>) -> Self

The tabs, with the first one selected. Ids must be unique.

Source

pub fn tabs(&self) -> &[Tab]

The tabs, in strip order.

Source

pub fn selected(&self) -> Option<&SharedString>

The id of the selected tab.

Source

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.

Source

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.

Source

pub fn select_edge(&mut self, last: bool, cx: &mut Context<'_, Self>)

Selects the first tab, or the last one when last is set.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn request_add(&mut self, cx: &mut Context<'_, Self>)

Asks the application for a new tab.

Source

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.

Source

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.

Source

pub fn commit_rename(&mut self, cx: &mut Context<'_, Self>)

Ends an inline rename and keeps the typed name, unless it is blank.

Source

pub fn cancel_rename(&mut self, cx: &mut Context<'_, Self>)

Ends an inline rename and keeps the old label.

Source

pub fn renaming(&self) -> Option<&SharedString>

The id of the tab being renamed inline, if any.

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

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> 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

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

Convert &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)

Convert &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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more