summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--objc_darwin.h1
-rw-r--r--sysdata_darwin.go10
-rw-r--r--sysdata_darwin.m5
3 files changed, 16 insertions, 0 deletions
diff --git a/objc_darwin.h b/objc_darwin.h
index b18f0d7..c62e2ab 100644
--- a/objc_darwin.h
+++ b/objc_darwin.h
@@ -116,6 +116,7 @@ extern BOOL isCheckboxChecked(id);
extern void windowSetContentSize(id, intptr_t, intptr_t);
extern void setProgress(id, intptr_t);
extern void setAreaSize(id, intptr_t, intptr_t);
+extern void center(id);
/* combobox_darwin.m */
extern id makeCombobox(BOOL);
diff --git a/sysdata_darwin.go b/sysdata_darwin.go
index 19b2d49..26bcd98 100644
--- a/sysdata_darwin.go
+++ b/sysdata_darwin.go
@@ -412,3 +412,13 @@ func (s *sysData) repaintAll() {
}
<-ret
}
+
+func (s *sysData) center() {
+ ret := make(chan struct{})
+ defer close(ret)
+ uitask <- func() {
+ C.center(s.id)
+ ret <- struct{}{}
+ }
+ <-ret
+}
diff --git a/sysdata_darwin.m b/sysdata_darwin.m
index c04ce37..6a6a999 100644
--- a/sysdata_darwin.m
+++ b/sysdata_darwin.m
@@ -229,3 +229,8 @@ void setAreaSize(id scrollview, intptr_t width, intptr_t height)
[area setFrame:NSMakeRect(0, 0, (CGFloat) width, (CGFloat) height)];
[area display]; // and redraw
}
+
+void center(id w)
+{
+ [toNSWindow(w) center];
+}