blob: 21db64bf91b16b150885e712af46d511b2e377b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// +build !darwin
// 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 error-checking version
C.gtk_init(nil, nil)
return nil
}
func uimsgloop() {
C.gtk_main()
}
func uistop() {
C.gtk_main_quit()
}
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))
perform(req)
return C.FALSE // don't repeat
}
|