native_dialog/builder/
message.rs1use raw_window_handle::HasWindowHandle;
2
3use crate::dialog::{MessageAlert, MessageConfirm};
4use crate::utils::UnsafeWindowHandle;
5
6pub use crate::dialog::MessageLevel;
7
8#[derive(Debug, Clone, Default)]
10pub struct MessageDialogBuilder {
11 pub title: String,
12 pub text: String,
13 pub level: MessageLevel,
14 pub owner: UnsafeWindowHandle,
15}
16
17impl MessageDialogBuilder {
18 pub fn set_title(mut self, title: impl ToString) -> Self {
20 self.title = title.to_string();
21 self
22 }
23
24 pub fn set_text(mut self, text: impl ToString) -> Self {
26 self.text = text.to_string();
27 self
28 }
29
30 pub fn set_level(mut self, level: MessageLevel) -> Self {
32 self.level = level;
33 self
34 }
35
36 pub fn set_owner<W: HasWindowHandle>(mut self, window: &W) -> Self {
38 self.owner = UnsafeWindowHandle::new(window);
39 self
40 }
41
42 pub fn reset_owner(mut self) -> Self {
44 self.owner = UnsafeWindowHandle::default();
45 self
46 }
47
48 pub fn alert(self) -> MessageAlert {
50 MessageAlert {
51 title: self.title,
52 text: self.text,
53 level: self.level,
54 owner: self.owner,
55 }
56 }
57
58 pub fn confirm(self) -> MessageConfirm {
60 MessageConfirm {
61 title: self.title,
62 text: self.text,
63 level: self.level,
64 owner: self.owner,
65 }
66 }
67}