pub struct DragPanel { /* 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 panel being dragged out of a tab group.
The panel is carried as a PanelId rather than a view handle: the base
layer has no PanelView trait or TabPanel entity of its own (those are
layered above), and the layout algebra already addresses panels this way
(see insert_panel/remove_panel/move_panel in layout::edit). A
consumer resolves the id back to a view through the dock area’s panel
map.
Implementations§
Source§impl DragPanel
impl DragPanel
pub fn new(panel: PanelId, source: NodeId) -> DragPanel
pub fn panel(&self) -> PanelId
pub fn drag_offset(&self) -> Point<Pixels>
Sourcepub fn set_drag_offset(&self, offset: Point<Pixels>)
pub fn set_drag_offset(&self, offset: Point<Pixels>)
Records where inside the panel the drag started, so a preview can be positioned relative to the cursor.
Sourcepub fn preview_size(&self) -> Size<Pixels>
pub fn preview_size(&self) -> Size<Pixels>
How large the drag preview is on screen.
The dock reads it to decide where a drop placeholder flies in from, which is hit geometry rather than styling; the preview’s own size is a visual decision, so the skin that draws the preview reports it here. Defaults to zero, which degrades to a placeholder that grows out of the cursor rather than out of the preview.
pub fn set_preview_size(&self, size: Size<Pixels>)
pub fn drag_session_id(&self) -> u64
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for DragPanel
impl !Send for DragPanel
impl !Sync for DragPanel
impl !UnwindSafe for DragPanel
impl Freeze for DragPanel
impl Unpin for DragPanel
impl UnsafeUnpin for DragPanel
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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