From 428c20d4f58cef7bb1d00895148dbe33bba5dc2d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 26 Aug 2014 15:26:19 -0400 Subject: Implemented the new dialog system on Mac OS X. --- redo/dialog_darwin.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'redo/dialog_darwin.go') 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)) } -- cgit v1.2.3