pub struct Modal<'a> { /* private fields */ }Expand description
A centered modal dialog.
The open flag drives visibility: when it’s false on entry to
Modal::show, nothing is rendered; when the user clicks the backdrop,
presses Esc, or clicks the “×” button, it’s flipped to false.
Modal::new("stats", &mut open)
.heading("Run Summary")
.show(&ctx, |ui| {
ui.label("…");
});Implementations§
Source§impl<'a> Modal<'a>
impl<'a> Modal<'a>
Sourcepub fn new(id_salt: impl Hash, open: &'a mut bool) -> Self
pub fn new(id_salt: impl Hash, open: &'a mut bool) -> Self
Create a modal keyed by id_salt whose visibility is bound to open.
Sourcepub fn heading(self, heading: impl Into<WidgetText>) -> Self
pub fn heading(self, heading: impl Into<WidgetText>) -> Self
Show a strong heading at the top of the modal, alongside the close button.
Sourcepub fn subtitle(self, subtitle: impl Into<WidgetText>) -> Self
pub fn subtitle(self, subtitle: impl Into<WidgetText>) -> Self
Show a muted subtitle line under the heading.
Sourcepub fn header_icon(self, icon: impl Into<WidgetText>) -> Self
pub fn header_icon(self, icon: impl Into<WidgetText>) -> Self
Paint a glyph in a tinted circular halo to the left of the heading.
Use any short text — "⚠", "✓", "!", an emoji, or a symbol from
the bundled Elegance Symbols font. The halo’s tint comes from
Modal::header_accent and defaults to Accent::Sky.
Sourcepub fn header_accent(self, accent: Accent) -> Self
pub fn header_accent(self, accent: Accent) -> Self
Override the accent used for the header icon halo. No-op without
Modal::header_icon.
Sourcepub fn max_width(self, max_width: f32) -> Self
pub fn max_width(self, max_width: f32) -> Self
Override the maximum width of the modal card in points. Default: 440.
Sourcepub fn close_on_backdrop(self, close: bool) -> Self
pub fn close_on_backdrop(self, close: bool) -> Self
Whether clicking the dimmed backdrop dismisses the modal. Default: true.
Sourcepub fn close_on_escape(self, close: bool) -> Self
pub fn close_on_escape(self, close: bool) -> Self
Whether pressing Esc dismisses the modal. Default: true.
Sourcepub fn alert(self, alert: bool) -> Self
pub fn alert(self, alert: bool) -> Self
Mark this modal as an alert dialog — a dialog that demands the
user’s attention to proceed, such as a destructive confirmation or
an unsaved-changes prompt. Screen readers announce alert dialogs
more assertively than ordinary dialogs. Default: false.
Under the hood this exposes accesskit::Role::AlertDialog on the
modal’s root node instead of the default Role::Dialog.
Add a footer row at the bottom of the modal. The closure runs in a right-to-left layout, so widgets added in source order land rightmost-first — matching the typical “Cancel | Confirm” reading. The footer renders below a horizontal divider and over a slightly recessed fill, separating it visually from the body.
Add a left-aligned slot to the footer (only rendered when
Modal::footer is also set). Useful for an “export before delete”
checkbox or a keyboard-shortcut hint that should sit opposite the
action buttons.