tour/
tour.rs

1use native_dialog::{DialogBuilder, MessageLevel};
2
3fn echo<T: std::fmt::Debug>(name: &str, value: &T) {
4    DialogBuilder::message()
5        .set_title("Result")
6        .set_text(format!("{}:\n{:#?}", &name, &value))
7        .alert()
8        .show()
9        .unwrap();
10}
11
12fn main() {
13    let result = DialogBuilder::message()
14        .set_title("Tour")
15        .set_text("Do you want to begin the tour?")
16        .set_level(MessageLevel::Warning)
17        .confirm()
18        .show()
19        .unwrap();
20    if !result {
21        return;
22    }
23    echo("show_confirm", &result);
24
25    let result = DialogBuilder::file()
26        .set_location("~")
27        .open_single_file()
28        .show()
29        .unwrap();
30    echo("show_open_single_file", &result);
31
32    let result = DialogBuilder::file()
33        .add_filter("Rust Source", &["rs"])
34        .add_filter("Image", &["png", "jpg", "gif"])
35        .open_multiple_file()
36        .show()
37        .unwrap();
38    echo("show_open_multiple_file", &result);
39
40    let result = DialogBuilder::file().open_single_dir().show().unwrap();
41    echo("show_open_single_dir", &result);
42
43    let result = DialogBuilder::file()
44        .add_filter("Rust Source", &["rs"])
45        .add_filter("Image", &["png", "jpg", "gif"])
46        .save_single_file()
47        .show()
48        .unwrap();
49    echo("show_save_single_file", &result);
50
51    DialogBuilder::message()
52        .set_title("End")
53        .set_text("That's the end!")
54        .alert()
55        .show()
56        .unwrap();
57}