use raw_window_handle::HasWindowHandle;
pub use crate::dialog::MessageLevel;
use crate::dialog::{MessageAlert, MessageConfirm};
use crate::ffi::UnsafeWindowHandle;
#[derive(Debug, Clone, Default)]
pub struct MessageDialogBuilder {
pub title: String,
pub text: String,
pub level: MessageLevel,
pub owner: UnsafeWindowHandle,
}
impl MessageDialogBuilder {
pub fn set_title(mut self, title: impl ToString) -> Self {
self.title = title.to_string();
self
}
pub fn set_text(mut self, text: impl ToString) -> Self {
self.text = text.to_string();
self
}
pub fn set_level(mut self, level: MessageLevel) -> Self {
self.level = level;
self
}
pub fn set_owner<W: HasWindowHandle>(mut self, window: &W) -> Self {
self.owner = UnsafeWindowHandle::new(window);
self
}
pub fn reset_owner(mut self) -> Self {
self.owner = UnsafeWindowHandle::default();
self
}
pub fn alert(self) -> MessageAlert {
MessageAlert {
title: self.title,
text: self.text,
level: self.level,
owner: self.owner,
}
}
pub fn confirm(self) -> MessageConfirm {
MessageConfirm {
title: self.title,
text: self.text,
level: self.level,
owner: self.owner,
}
}
}