7 releases (breaking)
0.6.0 | Feb 10, 2023 |
---|---|
0.5.0 | Jan 25, 2023 |
0.4.0 | Sep 25, 2022 |
0.3.0 | Aug 21, 2022 |
0.1.1 | May 17, 2022 |
#189 in GUI
191 downloads per month
38KB
282 lines
egui-toast
Toast notifications for the egui library.
Quick start
cargo run --example demo
let mut toasts = Toasts::new()
.anchor((300.0, 300.0))
.direction(egui::Direction::BottomUp)
.align_to_end(true);
if ui.button("Add toast").clicked() {
toasts.info("Hello, World!", Duration::from_secs(5));
}
// or
toasts.warning("Hello, World!", ToastOptions {
show_icon: true,
..ToastOptions::with_duration(Duration::from_secs(5))
});
// or
toasts.add(Toast {
text: "Hello, World!".into(),
kind: ToastKind::Error,
options: Duration::from_secs(5).into()
});
// Show all toasts
toasts.show(ctx);
Customization
Look of the notifications can be fully customized.
const MY_CUSTOM_TOAST: u32 = 0;
fn my_custom_toast_contents(ui: &mut Ui, toast: &mut Toast) -> Response {
egui::Frame::default()
.fill(Color32::from_rgb(33, 150, 243))
.inner_margin(Margin::same(12.0))
.rounding(4.0)
.show(ui, |ui| {
ui.label(toast.text.clone().color(Color32::WHITE));
if ui.button("Close me").clicked() {
toast.close();
}
}).response
}
let mut toasts = Toasts::new()
.custom_contents(MY_CUSTOM_TOAST, my_custom_toast_contents);
if ui.button("Add toast").clicked() {
toasts.add(Toast {
text: "Hello, World!".into(),
kind: ToastKind::Custom(MY_CUSTOM_TOAST),
options: ToastOptions::default()
});
}
toasts.show(ctx);
Dependencies
~3–7MB
~109K SLoC