16 releases (4 breaking)
0.5.2 | Dec 21, 2020 |
---|---|
0.4.4 | Dec 11, 2020 |
0.4.3 | Sep 9, 2020 |
0.4.1 | Jul 29, 2020 |
4,373 downloads per month
Used in 2 crates
57KB
1.5K
SLoC
native-dialog
A library to display file choosers and message boxes. Supports GNU/Linux, BSD Unix, macOS and Windows.
Installation
cargo add native-dialog
Usage
use native_dialog::{FileDialog, MessageDialog, MessageType};
fn main() {
let result = FileDialog::new()
.set_location("~/Desktop")
.add_filter("PNG Image", &["png"])
.add_filter("JPEG Image", &["jpg", "jpeg"])
.show_open_single_file()
.unwrap();
let message = format!("{:#?}", result);
let result = MessageDialog::new()
.set_type(MessageType::Info)
.set_title("Do you want to open these files?")
.set_text(&message)
.show_confirm()
.unwrap();
assert_eq!(result, true);
}
Misc
Why the dialogs look ugly/blurry on Windows?
Turn on crate features or embed manifests into the .exe
to enable visual styling and dpi awareness for your program. Check out examples/windows_manifest and examples/windows_features for example.
Why the program crashed when opening a dialog on macOS?
The API of macOS has a limitation that all UI operations must be performed on the main thread.
Dependencies
~0.5–1.1MB
~26K SLoC