#[non_exhaustive]pub enum TabGroupEvent {
Drop {
panel: PanelId,
source: NodeId,
target: InsertTarget,
},
DragDrop {
item: AnyDrag,
target: DropTarget,
},
ClosePanel {
panel: PanelId,
},
ActiveChanged {
ix: usize,
},
ZoomIn,
ZoomOut,
}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.
Behavior a tab group cannot carry out on its own.
Every variant here ends in an edit to the layout tree, and the tree belongs to the container that owns this group. Reporting the intent instead of reaching for the container keeps the whole detach-then-reinsert dance — and the reentrancy it used to provoke — out of the group entirely.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Drop
A panel was dropped on this group. target says where in the tree it
lands; the container applies it as a single PaneTree::move_panel.
DragDrop
A host-owned drag landed on this group.
ClosePanel
The user asked to close panel.
ActiveChanged
The displayed tab changed, so the tree’s stored active_ix is stale.
ZoomIn
This group asked to fill the whole dock. The container installs the group as its zoomed view, chrome and all — the tab bar is where the control that zooms back out lives.
ZoomOut
This group gave the dock back.
Trait Implementations§
impl EventEmitter<TabGroupEvent> for TabGroup
Auto Trait Implementations§
impl !RefUnwindSafe for TabGroupEvent
impl !Send for TabGroupEvent
impl !Sync for TabGroupEvent
impl !UnwindSafe for TabGroupEvent
impl Freeze for TabGroupEvent
impl Unpin for TabGroupEvent
impl UnsafeUnpin for TabGroupEvent
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