-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFileDialog.nimpl
More file actions
95 lines (81 loc) · 2.2 KB
/
FileDialog.nimpl
File metadata and controls
95 lines (81 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
module FileDialog;
import Object;
import Common;
import Icon;
import Dialog;
import Widget;
namedbits SignalMask extends Dialog.SignalMask {
CurrentChanged,
CurrentUrlChanged,
DirectoryEntered,
DirectoryUrlEntered,
FileSelected,
FilesSelected,
FilterSelected,
UrlSelected,
UrlsSelected
}
interface SignalHandler {
// Object:
void destroyed(Object.Handle obj);
void objectNameChanged(string objectName);
// Widget:
void customContextMenuRequested(Point pos);
void windowIconChanged(Icon.Handle icon);
void windowTitleChanged(string title);
// Dialog:
void accepted();
void finished(int result);
void rejected();
// FileDialog:
void currentChanged(string path);
void currentUrlChanged(string url);
void directoryEntered(string dir);
void directoryUrlEntered(string url);
void fileSelected(string file);
void filesSelected(Array<string> selected);
void filterSelected(string filter);
void urlSelected(string url);
void urlsSelected(Array<string> urls);
}
enum FileMode {
AnyFile,
ExistingFile,
Directory,
ExistingFiles
}
enum ViewMode {
Detail,
List
}
enum AcceptMode {
Open,
Save
}
flags Options {
ShowDirsOnly = 0x00000001,
DontResolveSymlinks = 0x00000002,
DontConfirmOverwrite = 0x00000004,
DontUseNativeDialog = 0x00000008,
ReadOnly = 0x00000010,
HideNameFilterDetails = 0x00000020,
DontUseCustomDirectoryIcons = 0x00000040
}
opaque Handle extends Dialog.Handle {
// properties
void setAcceptMode(AcceptMode mode);
void setDefaultSuffix(string suffix);
void setFileMode(FileMode mode);
void setOptions(Options opts);
void setSupportedSchemes(Array<string> schemes);
void setViewMode(ViewMode mode);
// others:
void setNameFilter(string filter);
void setNameFilters(Array<string> filters);
void setMimeTypeFilters(Array<string> filters);
void setDirectory(string dir);
void selectFile(string file);
Array<string> selectedFiles();
void setSignalMask(SignalMask mask);
}
Handle create(Widget.Handle parent, SignalHandler handler);