summaryrefslogtreecommitdiff
path: root/uitask_unix.go
diff options
context:
space:
mode:
Diffstat (limited to 'uitask_unix.go')
-rw-r--r--uitask_unix.go37
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...))}