From f8e3f12ab02b528f2a05a4f713d7af7ea8e44b42 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 11 Dec 2015 20:37:59 -0500 Subject: LET'S GET THIS FINAL REWRITE EVER STARTED --- prev/common_unix.go | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 prev/common_unix.go (limited to 'prev/common_unix.go') diff --git a/prev/common_unix.go b/prev/common_unix.go new file mode 100644 index 0000000..d88afbb --- /dev/null +++ b/prev/common_unix.go @@ -0,0 +1,56 @@ +// +build !windows,!darwin + +// 7 july 2014 + +package ui + +import ( + "unsafe" +) + +// #include "gtk_unix.h" +// /* because cgo doesn't like g_signal_connect() */ +// void gSignalConnect(gpointer obj, gchar *sig, GCallback callback, gpointer data) +// { +// g_signal_connect(obj, sig, callback, data); +// } +// void gSignalConnectAfter(gpointer obj, gchar *sig, GCallback callback, gpointer data) +// { +// g_signal_connect_after(obj, sig, callback, data); +// } +import "C" + +func fromgstr(s *C.gchar) string { + return C.GoString((*C.char)(unsafe.Pointer(s))) +} + +func togstr(s string) *C.gchar { + return (*C.gchar)(unsafe.Pointer(C.CString(s))) +} + +func freegstr(s *C.gchar) { + C.free(unsafe.Pointer(s)) +} + +func fromgbool(b C.gboolean) bool { + return b != C.FALSE +} + +func togbool(b bool) C.gboolean { + if b == true { + return C.TRUE + } + return C.FALSE +} + +func g_signal_connect(object C.gpointer, name string, to C.GCallback, data C.gpointer) { + cname := togstr(name) + defer freegstr(cname) + C.gSignalConnect(object, cname, to, data) +} + +func g_signal_connect_after(object C.gpointer, name string, to C.GCallback, data C.gpointer) { + cname := togstr(name) + defer freegstr(cname) + C.gSignalConnectAfter(object, cname, to, data) +} -- cgit v1.2.3