pub struct DockingPlugin {
pub drag_manager: DragManager,
pub hovered_splitter: Option<NodeId>,
pub drop_zone_detector: DropZoneDetector,
pub cross_container_preview: Option<CrossContainerPreview>,
pub docking_context: DockingContext,
pub dock_animations: DockAnimationState,
pub scrollbar_drag_node: Option<NodeId>,
}Expand description
Plugin providing docking widget types and cross-widget docking state.
Owns drag management, drop zone detection, animations, and the docking context (container registry cache).
Fields§
§drag_manager: DragManagerManages drag state for splitter resizing and tab operations.
hovered_splitter: Option<NodeId>Tracks which splitter separator is under the mouse.
drop_zone_detector: DropZoneDetectorDetects drop zones for tab drag operations.
cross_container_preview: Option<CrossContainerPreview>Active cross-container drop preview state.
docking_context: DockingContextContainer registry cache for efficient drag lookups.
dock_animations: DockAnimationStateAnimation state for ghost tabs, groups, and drop previews.
scrollbar_drag_node: Option<NodeId>DockTabs node whose scrollbar thumb is being dragged.
Implementations§
Source§impl DockingPlugin
impl DockingPlugin
Sourcepub fn invalidate_cache(&mut self)
pub fn invalidate_cache(&mut self)
Invalidate the docking container cache.
Sourcepub fn update_animations(&mut self, dt: f32) -> bool
pub fn update_animations(&mut self, dt: f32) -> bool
Update all docking animations with the given delta time.
Returns true if any animation is still active.
Sourcepub fn is_dragging(&self) -> bool
pub fn is_dragging(&self) -> bool
Check if there is an active drag operation.
Sourcepub fn invalidate_removed_nodes(&mut self, tree: &UiTree)
pub fn invalidate_removed_nodes(&mut self, tree: &UiTree)
Invalidate any references to nodes that no longer exist.
Trait Implementations§
Source§impl Default for DockingPlugin
impl Default for DockingPlugin
Source§impl UiPlugin for DockingPlugin
impl UiPlugin for DockingPlugin
Source§fn register_widgets(&self, registry: &mut WidgetTypeRegistry)
fn register_widgets(&self, registry: &mut WidgetTypeRegistry)
Source§fn post_layout(&mut self, _tree: &mut UiTree)
fn post_layout(&mut self, _tree: &mut UiTree)
Source§fn update(&mut self, dt: f32, _tree: &mut UiTree)
fn update(&mut self, dt: f32, _tree: &mut UiTree)
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
self as &mut dyn Any.Source§fn handle_event(
&mut self,
_event: &UiInputEvent,
_ctx: &mut PluginEventContext<'_>,
) -> bool
fn handle_event( &mut self, _event: &UiInputEvent, _ctx: &mut PluginEventContext<'_>, ) -> bool
true if consumed. Read moreAuto Trait Implementations§
impl Freeze for DockingPlugin
impl RefUnwindSafe for DockingPlugin
impl Send for DockingPlugin
impl Sync for DockingPlugin
impl Unpin for DockingPlugin
impl UnsafeUnpin for DockingPlugin
impl UnwindSafe for DockingPlugin
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> 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> DowncastSync for T
impl<T> DowncastSync for 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