From cddf0417dc10fe2e094eba5e614ad7302fc4c207 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 7 Jul 2014 21:04:44 -0400 Subject: Added Go() and the GTK+ uitask functions. --- redo/uitask_unix.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 redo/uitask_unix.go (limited to 'redo/uitask_unix.go') 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 +} -- cgit v1.2.3