aboutsummaryrefslogtreecommitdiffstats
path: root/src/osx/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/osx/mod.rs')
-rw-r--r--src/osx/mod.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/osx/mod.rs b/src/osx/mod.rs
index 7ea6cb4..42a9ea2 100644
--- a/src/osx/mod.rs
+++ b/src/osx/mod.rs
@@ -74,6 +74,32 @@ impl Window {
}
}
+#[cfg(feature = "window")]
+#[deriving(Clone)]
+pub struct WindowProxy;
+
+impl WindowProxy {
+ pub fn wakeup_event_loop(&self) {
+ unsafe {
+ let pool = NSAutoreleasePool::new(nil);
+ let event =
+ NSEvent::otherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2(
+ nil,
+ NSApplicationDefined,
+ NSPoint::new(0.0, 0.0),
+ 0,
+ 0.0,
+ 0,
+ ptr::null_mut(),
+ 0,
+ 0,
+ 0);
+ NSApp().postEvent_atStart_(event, true);
+ pool.drain();
+ }
+ }
+}
+
extern fn window_should_close(this: id, _: id) -> id {
unsafe {
let mut stored_value = ptr::null_mut();
@@ -278,6 +304,10 @@ impl Window {
unimplemented!()
}
+ pub fn create_window_proxy(&self) -> WindowProxy {
+ WindowProxy
+ }
+
pub fn poll_events(&self) -> Vec<Event> {
let mut events = Vec::new();