Skip to main content

TabGroup

Struct TabGroup 

Source
pub struct TabGroup { /* private fields */ }
Expand description

Everything gpui_base::dock exports, so a consumer never has to depend on the foundation crate directly to write a skin or read a container’s state. Kept in step with base’s own list by every_base_dock_export_is_reachable_from_here.

Two names are handled elsewhere and one is deliberately absent: base’s Panel and PanelView arrive as BasePanel and BasePanelView because this module’s Panel/PanelView are the presentation halves that extend them, and base’s Dock — a plain state struct holding one dock’s open, collapsible, size and resizing flags — is not re-exported at all, because the name meant a panel container in every released version of this crate and handing it back with a different meaning is worse than dropping it. A skin reads a dock through DockContext. A tab group’s behavior, with no appearance of its own.

It owns the panel list mirrored from the layout tree, the displayed index, the focus handle, drag and drop hit state, and the zoom flag. Everything visible is produced by the TabGroupRenderer the host installs.

The group holds no handle on its container. What the container knows — the facts in TabGroupConstraints — is pushed in, and what the group needs done is emitted as a TabGroupEvent. That keeps a group constructible, and testable, on its own.

Implementations§

Source§

impl TabGroup

Source

pub fn with_renderer(self, renderer: Rc<dyn TabGroupRenderer>) -> TabGroup

Source

pub fn node(&self) -> NodeId

The Tabs node this group mirrors.

Source

pub fn panels(&self) -> &[Arc<dyn PanelView>]

Source

pub fn active_ix(&self) -> usize

Source

pub fn active_panel(&self, cx: &App) -> Option<Arc<dyn PanelView>>

The panel currently on screen, which is the displayed tab unless it has gone invisible, in which case rendering falls back to the first visible panel.

Source

pub fn is_zoomed(&self) -> bool

Source

pub fn is_collapsed(&self) -> bool

Source

pub fn is_closable(&self, cx: &App) -> bool

Whether closing this group’s displayed panel is allowed at all.

Mirrors the old TabPanel::closable: the container must permit it, the group must have somewhere to go, and the displayed panel must itself be closable.

Source

pub fn select_tab( &mut self, ix: usize, window: &mut Window, cx: &mut Context<'_, TabGroup>, )

Display ix, if it names a tab that is not already displayed.

Source

pub fn close_panel(&mut self, panel: PanelId, cx: &mut Context<'_, TabGroup>)

Ask the container to close panel. Nothing happens for a panel that is not in this group, or when either the group or the panel refuses.

Source

pub fn toggle_zoom( &mut self, window: &mut Window, cx: &mut Context<'_, TabGroup>, )

Source

pub fn context(&self, cx: &App) -> TabGroupContext

A snapshot of everything a skin needs to draw this group.

Source§

impl TabGroup

This impl block contains no public items.

What the container pushes into a group, and reads back out of it.

DockArea is the only caller outside tests.

Trait Implementations§

Source§

impl EventEmitter<TabGroupEvent> for TabGroup

Source§

impl Focusable for TabGroup

Source§

fn focus_handle(&self, cx: &App) -> FocusHandle

Returns the focus handle associated with this view.
Source§

impl Render for TabGroup

Source§

fn render( &mut self, window: &mut Window, cx: &mut Context<'_, TabGroup>, ) -> impl IntoElement

Render this view into an element tree.

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