use std::path::PathBuf;
pub struct FileDialog;
#[cfg(all(not(target_arch = "wasm32"), not(target_os = "ios")))]
impl FileDialog {
pub fn open(title: &str, filters: &[(&str, &[&str])]) -> Option<PathBuf> {
rfd::FileDialog::new()
.set_title(title)
.add_filter(filters[0].0, filters[0].1)
.pick_file()
}
pub fn save(title: &str, default_name: &str, filters: &[(&str, &[&str])]) -> Option<PathBuf> {
rfd::FileDialog::new()
.set_title(title)
.set_file_name(default_name)
.add_filter(filters[0].0, filters[0].1)
.save_file()
}
pub fn open_directory(title: &str) -> Option<PathBuf> {
rfd::FileDialog::new().set_title(title).pick_folder()
}
}
#[cfg(target_os = "ios")]
impl FileDialog {
pub fn open(_title: &str, _filters: &[(&str, &[&str])]) -> Option<PathBuf> {
None
}
pub fn save(
_title: &str,
_default_name: &str,
_filters: &[(&str, &[&str])],
) -> Option<PathBuf> {
None
}
pub fn open_directory(_title: &str) -> Option<PathBuf> {
None
}
}
#[cfg(target_arch = "wasm32")]
impl FileDialog {
pub fn open(_title: &str, _filters: &[(&str, &[&str])]) -> Option<PathBuf> {
None
}
pub fn save(
_title: &str,
_default_name: &str,
_filters: &[(&str, &[&str])],
) -> Option<PathBuf> {
None
}
pub fn open_directory(_title: &str) -> Option<PathBuf> {
None
}
}