summaryrefslogtreecommitdiff
path: root/redo/dialog_darwin.go
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-08-26 15:26:19 -0400
committerPietro Gagliardi <[email protected]>2014-08-26 15:26:19 -0400
commit428c20d4f58cef7bb1d00895148dbe33bba5dc2d (patch)
treeb1816e48dd1fbf9ed85ca167868b7e7e80bec603 /redo/dialog_darwin.go
parentff2ad05270526c1eb98411cafcc88ed8d68b3f62 (diff)
Implemented the new dialog system on Mac OS X.
Diffstat (limited to 'redo/dialog_darwin.go')
-rw-r--r--redo/dialog_darwin.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/redo/dialog_darwin.go b/redo/dialog_darwin.go
index 9e65714..f1882a8 100644
--- a/redo/dialog_darwin.go
+++ b/redo/dialog_darwin.go
@@ -9,11 +9,17 @@ import (
// #include "objc_darwin.h"
import "C"
-func openFile() string {
- fname := C.openFile()
+func (w *window) openFile(f func(filename string)) {
+ C.openFile(w.id, unsafe.Pointer(&f))
+}
+
+//export finishOpenFile
+func finishOpenFile(fname *C.char, data unsafe.Pointer) {
+ f := (*func(string))(data)
if fname == nil {
- return ""
+ (*f)("")
+ return
}
defer C.free(unsafe.Pointer(fname))
- return C.GoString(fname)
+ (*f)(C.GoString(fname))
}