1use crate::{ExternalDragFile, ExternalDropFileData, ExternalDropReadError, FileDialogToken};
7
8#[derive(Debug, Clone, PartialEq, Eq)]
9pub struct FileDialogFilter {
10 pub name: String,
11 pub extensions: Vec<String>,
12}
13
14#[derive(Debug, Clone, PartialEq, Eq, Default)]
15pub struct FileDialogOptions {
16 pub title: Option<String>,
17 pub multiple: bool,
18 pub filters: Vec<FileDialogFilter>,
19}
20
21#[derive(Debug, Clone, PartialEq)]
22pub struct FileDialogSelection {
23 pub token: FileDialogToken,
24 pub files: Vec<ExternalDragFile>,
25}
26
27pub type FileDialogFileData = ExternalDropFileData;
28pub type FileDialogReadError = ExternalDropReadError;
29
30#[derive(Debug, Clone, PartialEq)]
31pub struct FileDialogDataEvent {
32 pub token: FileDialogToken,
33 pub files: Vec<FileDialogFileData>,
34 pub errors: Vec<FileDialogReadError>,
35}