pub struct Message { /* private fields */ }Expand description
A sentence to show the user once, with an optional thing to do about it.
Message::new("Task deleted")
.with_action("Undo", move |()| restore())
.with_duration(MessageDuration::Long)
.show();What it looks like is the design system’s: Material calls it a snackbar, Apple a
transient overlay, GNOME a toast, the same way it decides what a Dialog looks like.
Where it appears is the design system’s too, unless the application asks for a place
with Message::with_placement or a distance from the edge with
Message::with_offset.
Implementations§
Source§impl Message
impl Message
pub fn new(text: impl Into<String>) -> Self
Sourcepub fn with_action(
self,
label: impl Into<String>,
on_action: impl FnMut(()) + 'static,
) -> Self
pub fn with_action( self, label: impl Into<String>, on_action: impl FnMut(()) + 'static, ) -> Self
Adds the one thing the user can do about the message, such as undoing it.
The action runs on the UI thread, inside the runtime the application launched, so it can change the same state an event handler can.
pub fn with_duration(self, duration: MessageDuration) -> Self
Sourcepub fn with_placement(self, placement: MessagePlacement) -> Self
pub fn with_placement(self, placement: MessagePlacement) -> Self
Draws the message along placement’s edge, at placement’s end of it, rather than
where the design system would put it.
The place is measured from inside the safe area and the application’s own bars, so a message at the bottom is above a bottom tab bar and one at the top is below the top bar.
Message::new("Copied")
.with_placement(MessagePlacement {
vertical: MessageVertical::Bottom,
horizontal: MessageHorizontal::Center,
})
.with_offset(96.0)
.show();Sourcepub fn with_offset(self, dp: f32) -> Self
pub fn with_offset(self, dp: f32) -> Self
How far the message is from the edge it is drawn along, in dp, in place of the design system’s distance. It is measured from the safe area and the bars, as the placement is. A negative or non-finite distance is taken as zero, because a message pushed off the screen is a message nobody reads.