diff options
Diffstat (limited to 'uitask_unix.go')
| -rw-r--r-- | uitask_unix.go | 37 |
1 files changed, 37 insertions, 0 deletions
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...))} |
