pub struct DockRail { /* private fields */ }Expand description
App-facing configuration for a side’s activity rail (Rail presentation).
Pass to DockingLayout::rail. All knobs are
optional; an unconfigured rail uses IconButtonSize::Large items, no
slots, and no overflow affordance (items just clip if the side is too
short).
Implementations§
Source§impl DockRail
impl DockRail
Sourcepub fn size(self, size: IconButtonSize) -> Self
pub fn size(self, size: IconButtonSize) -> Self
Pick one size for every rail item (IconButtonSize::Compact …
Hero). Default IconButtonSize::Large.
Sourcepub fn background(self, color: impl Into<ColorProp>) -> Self
pub fn background(self, color: impl Into<ColorProp>) -> Self
Override the rail strip’s background. Accepts Color, a
[SurfaceRole], or a Signal<Color>.
Default (unset) is SurfaceRole::Sunken.
Sourcepub fn divider(self) -> Self
pub fn divider(self) -> Self
Draw a 1 dp divider line between the rail and the side’s content, on
the rail’s content-facing edge (RTL-aware). Uses BorderRole::Divider.
Off by default. See divider_color for a custom
colour.
Sourcepub fn divider_color(self, color: impl Into<ColorProp>) -> Self
pub fn divider_color(self, color: impl Into<ColorProp>) -> Self
Like divider, but with an explicit colour. Accepts
Color, a [BorderRole], or a
Signal<Color>.
Sourcepub fn top_slot<W: Widget + 'static>(self, f: impl Fn() -> W + 'static) -> Self
pub fn top_slot<W: Widget + 'static>(self, f: impl Fn() -> W + 'static) -> Self
Widget pinned above the items (e.g. a logo / hamburger). To track the
rail’s item size, bind
DockingModel::rail_size_mode_signal
inside the factory.
Sourcepub fn bottom_slot<W: Widget + 'static>(
self,
f: impl Fn() -> W + 'static,
) -> Self
pub fn bottom_slot<W: Widget + 'static>( self, f: impl Fn() -> W + 'static, ) -> Self
Widget pinned at the bottom of the rail (e.g. settings / account). To
track the rail’s item size, bind
DockingModel::rail_size_mode_signal
inside the factory.
Sourcepub fn leading_slot<W: Widget + 'static>(
self,
f: impl Fn() -> W + 'static,
) -> Self
pub fn leading_slot<W: Widget + 'static>( self, f: impl Fn() -> W + 'static, ) -> Self
Widget pinned at the start of this side’s Strip-presentation tab
bar (via TabWidget::bar_leading_slot).
The Rail-presentation counterpart is top_slot.
Weaker contract than top_slot. top_slot/bottom_slot sit on the
DockActivityBar, which is built whenever the side has a rail — they
survive the side being collapsed. leading_slot/trailing_slot sit
inside the side’s TabWidget, which lives within the collapsing
SideClipPane, so they disappear with the content when the side is
hidden. If your content must survive a hidden side, use Rail
presentation, or host it outside the docking system.
Sourcepub fn trailing_slot<W: Widget + 'static>(
self,
f: impl Fn() -> W + 'static,
) -> Self
pub fn trailing_slot<W: Widget + 'static>( self, f: impl Fn() -> W + 'static, ) -> Self
Widget pinned at the end of this side’s Strip-presentation tab
bar. Composed before the side’s own “hidden activities” hamburger when
both are present, so neither is dropped. See
leading_slot for the visibility contract.
Sourcepub fn action(self, action: DockAction) -> Self
pub fn action(self, action: DockAction) -> Self
Append a dockless command button to this side’s rail. Declaration
order is render order within a placement. See DockAction.
Rail presentation only. A side in
TabPresentation::Strip renders no
actions at all — and set_side_rail
can flip presentation at runtime, so a side that flips Rail → Strip drops
its whole action cluster. If that is reachable in your app, mirror the
cluster with trailing_slot, which the same
DockRail can carry alongside its actions.
Sourcepub fn overflow_icon(self, f: impl Fn() -> IconWidget + 'static) -> Self
pub fn overflow_icon(self, f: impl Fn() -> IconWidget + 'static) -> Self
Choose the glyph for the overflow trigger — the item shown (in place of the surplus items) when they don’t all fit. Tapping it opens a popover list of the overflowed entries.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for DockRail
impl !Send for DockRail
impl !Sync for DockRail
impl !UnwindSafe for DockRail
impl Freeze for DockRail
impl Unpin for DockRail
impl UnsafeUnpin for DockRail
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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