pub struct EmptyState<Msg> { /* private fields */ }Expand description
A centred block explaining why an area is empty and what to do about it.
Reads, from top to bottom: an optional muted icon, a title, an optional explanation that wraps to at most 52 cells, and the action buttons. When the area is short, the icon goes first, then the space above the buttons, then explanation lines; the title and the buttons stay.
action may be called more than once: every call adds a button, and the first
one added is the primary choice in reading and focus order. They stand side by side, centred,
ACTION_GAP cells apart as in a dialog; where they do not fit the width they stand one under
another, centred, with a blank row between so their surfaces never merge. Tab and the arrow keys
visit them in the order they were added.
tone marks the block as a status: the icon and the title take the success,
warning, danger or info colour a Toast marks its kind with, and the
icon is the sign that goes with the colour, so an error is never a bare colour.
Style keys: empty-state-icon (fg), empty-state-title (fg, bold),
empty-state-message (fg).
Implementations§
Source§impl<Msg: Clone + 'static> EmptyState<Msg>
impl<Msg: Clone + 'static> EmptyState<Msg>
Sourcepub fn new(title: impl Into<String>) -> Self
pub fn new(title: impl Into<String>) -> Self
An empty state reading title, e.g. “No containers yet”.
Sourcepub fn icon(self, key: impl Into<String>) -> Self
pub fn icon(self, key: impl Into<String>) -> Self
Icon key drawn above the title in a muted colour when no status tone supplies its sign.
Sourcepub fn message(self, message: impl Into<String>) -> Self
pub fn message(self, message: impl Into<String>) -> Self
One or two sentences under the title: why it is empty, or what will appear here.
Sourcepub fn tone(self, tone: ToastKind) -> Self
pub fn tone(self, tone: ToastKind) -> Self
The status the block reports: the icon and the title take the success, warning,
danger or info colour, and the icon is the sign that goes with it. Without a tone both
keep the colours the theme gives them. A tone supplies its own sign in place of a custom
icon key.
Sourcepub fn action(self, button: Button<Msg>) -> Self
pub fn action(self, button: Button<Msg>) -> Self
The way out, e.g. Button::new("Create container").variant("primary").on_press(..).
Call it once for each of several equal choices, such as “Install here” beside “Show the
command”: they keep the order they are added in, so the first one is the primary, the one
to mark primary, and the one Tab and the arrow keys reach first.
Trait Implementations§
Source§impl<Msg: Clone + 'static> Widget<Msg> for EmptyState<Msg>
impl<Msg: Clone + 'static> Widget<Msg> for EmptyState<Msg>
Source§fn measure(&self, cx: &mut MeasureCx<'_>, available: Size) -> Size
fn measure(&self, cx: &mut MeasureCx<'_>, available: Size) -> Size
available.Source§fn event(&self, cx: &mut EventCx<'_, Msg>, event: &Event) -> bool
fn event(&self, cx: &mut EventCx<'_, Msg>, event: &Event) -> bool
true when the event was used; unused key and scroll events
bubble to the parent widget.Source§fn children_mut(&mut self) -> &mut [Node<Msg>]
fn children_mut(&mut self) -> &mut [Node<Msg>]
Source§fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)
fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)
PaintCx::request_overlay. anchor is the area the widget was painted in.Auto Trait Implementations§
impl<Msg> !RefUnwindSafe for EmptyState<Msg>
impl<Msg> !Send for EmptyState<Msg>
impl<Msg> !Sync for EmptyState<Msg>
impl<Msg> !UnwindSafe for EmptyState<Msg>
impl<Msg> Freeze for EmptyState<Msg>
impl<Msg> Unpin for EmptyState<Msg>
impl<Msg> UnsafeUnpin for EmptyState<Msg>
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> 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