blocking_dialog/linux/
alert.rs1use crate::{BlockingAlertDialog, BlockingDialogError, BlockingDialogLevel};
5use raw_window_handle::{HasDisplayHandle, HasWindowHandle};
6use rfd::{MessageDialog, MessageLevel};
7
8fn get_rfd_dialog_level(level: BlockingDialogLevel) -> MessageLevel {
9 match level {
10 BlockingDialogLevel::Info => MessageLevel::Info,
11 BlockingDialogLevel::Warning => MessageLevel::Warning,
12 BlockingDialogLevel::Error => MessageLevel::Error,
13 }
14}
15
16impl<'a, W: HasWindowHandle + HasDisplayHandle> BlockingAlertDialog<'a, W> {
17 pub fn show(&self) -> Result<(), BlockingDialogError> {
18 let _ = MessageDialog::new()
19 .set_level(get_rfd_dialog_level(self.level))
20 .set_title(self.title)
21 .set_description(self.message)
22 .set_parent(&self.window)
23 .show();
24
25 Ok(())
26 }
27}