summaryrefslogtreecommitdiff
path: root/redo/controls_unix.go
diff options
context:
space:
mode:
Diffstat (limited to 'redo/controls_unix.go')
-rw-r--r--redo/controls_unix.go20
1 files changed, 13 insertions, 7 deletions
diff --git a/redo/controls_unix.go b/redo/controls_unix.go
index 1fc76c0..647e5ee 100644
--- a/redo/controls_unix.go
+++ b/redo/controls_unix.go
@@ -24,13 +24,19 @@ type button struct {
button *C.GtkButton
}
-func newButton(text string) Button {
- ctext := togstr(text)
- defer freegstr(ctext)
- widget := C.gtk_button_new_with_label(ctext)
- return &button{
- widget: newWidget(widget),
- button: (*C.GtkButton)(unsafe.Pointer(widget)),
+func newButton(text string) *Request {
+ c := make(chan interface{})
+ return &Request{
+ op: func() {
+ ctext := togstr(text)
+ defer freegstr(ctext)
+ widget := C.gtk_button_new_with_label(ctext)
+ c <- &button{
+ widget: newWidget(widget),
+ button: (*C.GtkButton)(unsafe.Pointer(widget)),
+ }
+ },
+ resp: c,
}
}