Skip to main content

Breadcrumb

Struct Breadcrumb 

Source
pub struct Breadcrumb<Msg> { /* private fields */ }
Expand description

The path to the current place, such as workspace › quvyta › crates › src.

Every segment but the last opens its level; the last is the current place, bold and not clickable. Segments are bare text that rises on hover; the separator is a faint chevron icon. When the path does not fit, the middle collapses into …, which lists the hidden levels.

Keys while focused: ←/→ move between segments, Home/End jump to the ends, Enter or Space opens the segment (or the list behind …).

A faint path, see faint, is drawn a step quieter for a place the person cannot read, and its segments still open their levels.

Style keys: crumb with hover, focus; crumb.current; crumb.faint and crumb.faint-current for a faint path; crumb-separator; popup-menu, popup-item, popup-check for the hidden levels. Icon: crumb-separator.

Implementations§

Source§

impl<Msg: 'static> Breadcrumb<Msg>

Source

pub fn new(segments: impl IntoIterator<Item = impl Into<String>>) -> Self

A path of segments from the root to the current place.

Source

pub fn on_select(self, message: impl Fn(usize) -> Msg + 'static) -> Self

Message for opening segment index.

Source

pub fn faint(self, faint: bool) -> Self

Draws the path faint: every segment a step quieter, the current place too, for a place shown but not open to the person, such as a folder that cannot be read.

Only the tone changes. The segments still rise on hover and focus and still open their levels, so the way back out of the place stays where it always is.

Trait Implementations§

Source§

impl<Msg: 'static> Widget<Msg> for Breadcrumb<Msg>

Source§

fn measure(&self, _cx: &mut MeasureCx<'_>, available: Size) -> Size

The size the widget wants when it may use up to available.
Source§

fn paint(&self, cx: &mut PaintCx<'_>, area: Rect)

Draws the widget into area.
Source§

fn paint_overlay(&self, cx: &mut PaintCx<'_>, anchor: Rect)

Draws the widget’s overlay after the whole view was painted, when it asked for one with PaintCx::request_overlay. anchor is the area the widget was painted in.
Source§

fn event(&self, cx: &mut EventCx<'_, Msg>, event: &Event) -> bool

Handles input. Returns true when the event was used; unused key and scroll events bubble to the parent widget.
Source§

fn focusable(&self) -> bool

Whether the widget can take keyboard focus.
Source§

fn children(&self) -> &[Node<Msg>]

Child nodes, for widgets that contain other widgets.
Source§

fn children_mut(&mut self) -> &mut [Node<Msg>]

Mutable child nodes, used to assign ids.

Auto Trait Implementations§

§

impl<Msg> !RefUnwindSafe for Breadcrumb<Msg>

§

impl<Msg> !Send for Breadcrumb<Msg>

§

impl<Msg> !Sync for Breadcrumb<Msg>

§

impl<Msg> !UnwindSafe for Breadcrumb<Msg>

§

impl<Msg> Freeze for Breadcrumb<Msg>
where Option<Box<dyn Fn(usize) -> Msg>>: Freeze,

§

impl<Msg> Unpin for Breadcrumb<Msg>
where Option<Box<dyn Fn(usize) -> Msg>>: Unpin,

§

impl<Msg> UnsafeUnpin for Breadcrumb<Msg>
where Option<Box<dyn Fn(usize) -> Msg>>: UnsafeUnpin,

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