summaryrefslogtreecommitdiff
path: root/vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go')
-rw-r--r--vendor/0xacab.org/leap/go-dialog/dlgs_darwin.go58
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
+}