diff options
Diffstat (limited to 'dialog.go')
| -rw-r--r-- | dialog.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/dialog.go b/dialog.go new file mode 100644 index 0000000..730e1be --- /dev/null +++ b/dialog.go @@ -0,0 +1,21 @@ +// 18 august 2014 + +package ui + +type windowDialog interface { + openFile(f func(filename string)) +} + +// OpenFile opens a dialog box that asks the user to choose a file. +// The dialog box is modal to win, which mut not be nil. +// Some time after the dialog box is closed, OpenFile runs f on the main thread, passing filename. +// filename is the selected filename, or an empty string if no file was chosen. +// OpenFile does not ensure that f remains alive; the programmer is responsible for this. +// If possible on a given system, OpenFile() will not dereference links; it will return the link file itself. +// Hidden files will not be hidden by OpenFile(). +func OpenFile(win Window, f func(filename string)) { + if win == nil { + panic("Window passed to OpenFile() cannot be nil") + } + win.openFile(f) +} |
