summaryrefslogtreecommitdiff
path: root/redo/dialog_windows.go
diff options
context:
space:
mode:
Diffstat (limited to 'redo/dialog_windows.go')
-rw-r--r--redo/dialog_windows.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/redo/dialog_windows.go b/redo/dialog_windows.go
index 9ea483c..80f7ac6 100644
--- a/redo/dialog_windows.go
+++ b/redo/dialog_windows.go
@@ -9,11 +9,17 @@ import (
// #include "winapi_windows.h"
import "C"
-func openFile() string {
- name := C.openFile()
+func (w *window) openFile(f func(filename string)) {
+ C.openFile(w.hwnd, unsafe.Pointer(&f))
+}
+
+//export finishOpenFile
+func finishOpenFile(name *C.WCHAR, fp unsafe.Pointer) {
+ f := (*func(string))(fp)
if name == nil {
- return ""
+ (*f)("")
+ return
}
defer C.free(unsafe.Pointer(name))
- return wstrToString(name)
+ (*f)(wstrToString(name))
}