diff options
Diffstat (limited to 'vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go')
-rw-r--r-- | vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go b/vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go new file mode 100644 index 0000000..ae28560 --- /dev/null +++ b/vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go @@ -0,0 +1,58 @@ +package dialog + +import ( + "github.com/sqweek/dialog/cocoa" +) + +func (b *MsgBuilder) yesNo() bool { + return cocoa.YesNoDlg(b.Msg, b.Dlg.Title) +} + +func (b *MsgBuilder) info() { + cocoa.InfoDlg(b.Msg, b.Dlg.Title) +} + +func (b *MsgBuilder) error() { + cocoa.ErrorDlg(b.Msg, b.Dlg.Title) +} + +func (b *FileBuilder) load() (string, error) { + return b.run(false) +} + +func (b *FileBuilder) save() (string, error) { + return b.run(true) +} + +func (b *FileBuilder) run(save bool) (string, error) { + star := false + var exts []string + for _, filt := range b.Filters { + for _, ext := range filt.Extensions { + if ext == "*" { + star = true + } else { + exts = append(exts, ext) + } + } + } + if star && save { + /* OSX doesn't allow the user to switch visible file types/extensions. Also + ** NSSavePanel's allowsOtherFileTypes property has no effect for an open + ** dialog, so if "*" is a possible extension we must always show all files. */ + exts = nil + } + f, err := cocoa.FileDlg(save, b.Dlg.Title, exts, star) + if f == "" && err == nil { + return "", Cancelled + } + return f, err +} + +func (b *DirectoryBuilder) browse() (string, error) { + f, err := cocoa.DirDlg(b.Dlg.Title); + if f == "" && err == nil { + return "", Cancelled + } + return f, err +} |