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