From 21c1ec6f83fb2d5cb80c02c0cd7ed51bb4e06e3a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 16 Feb 2014 15:55:51 -0500 Subject: Added the beginning of the Unix (GTK+) implementation. --- uitask_unix.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 uitask_unix.go (limited to 'uitask_unix.go') diff --git a/uitask_unix.go b/uitask_unix.go new file mode 100644 index 0000000..0c0152f --- /dev/null +++ b/uitask_unix.go @@ -0,0 +1,37 @@ +// +build !windows,!darwin,!plan9 + +// 16 february 2014 +//package ui +package main + +import ( + "fmt" + "runtime" +) + +var uitask chan func() + +func ui(initDone chan error) { + runtime.LockOSThread() + + uitask = make(chan func()) + if gtk_init() != true { + initDone <- fmt.Errorf("gtk_init failed (reason unknown; TODO)") + return + } + initDone <- nil + + gtk_main() +} + +func uistep() { + select { + case f := <-uitask: + f() + default: // do not block + } +} + +// temporary +func MsgBox(string, string, ...interface{}) {} +func MsgBoxError(title string, text string, args ...interface{}) {panic(title+"\n"+fmt.Sprintf(text,args...))} -- cgit v1.2.3