diff options
Diffstat (limited to 'redo/uitask_unix.go')
| -rw-r--r-- | redo/uitask_unix.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/redo/uitask_unix.go b/redo/uitask_unix.go new file mode 100644 index 0000000..211349b --- /dev/null +++ b/redo/uitask_unix.go @@ -0,0 +1,34 @@ +// 7 july 2014 + +package ui + +import ( + "unsafe" +) + +// #cgo pkg-config: gtk+-3.0 +// #include "gtk_unix.h" +// extern gboolean doissue(gpointer data); +import "C" + +func uiinit() error { + // TODO replace with the eerror-checking version + C.gtk_init() + return nil +} + +func uimsgloop() { + C.gtk_main() +} + +func issue(req *Request) { + C.gdk_threads_add_idle(C.GSourceFunc(C.doissue), C.gpointer(unsafe.Pointer(req))) +} + +//export doissue +func doissue(data C.gpointer) C.gboolean { + req := (*Request)(unsafe.Pointer(data)) + req.op() + close(req.done) + return C.FALSE // don't repeat +} |
