Added is_closed to osx window

This commit is contained in:
David Partouche 2014-10-11 22:37:31 +02:00
parent 421beefe67
commit ba8f55547f

View file

@ -1,4 +1,5 @@
use Event;
use std::sync::atomics::AtomicBool;
#[cfg(feature = "window")]
use WindowBuilder;
@ -14,8 +15,10 @@ use core_foundation::string::CFString;
use core_foundation::bundle::{CFBundleGetBundleWithIdentifier, CFBundleGetFunctionPointerForName};
pub struct Window {
window: id,
view: id,
context: id,
is_closed: AtomicBool,
}
pub struct HeadlessContext(Window);
@ -87,8 +90,10 @@ impl Window {
}
let window = Window {
window: window,
view: view,
context: context,
is_closed: AtomicBool::new(false),
};
Ok(window)
@ -172,8 +177,8 @@ impl Window {
}
pub fn is_closed(&self) -> bool {
// TODO: remove fake implementation
false
use std::sync::atomics::Relaxed;
self.is_closed.load(Relaxed)
}
pub fn set_title(&self, _title: &str) {
@ -212,6 +217,7 @@ impl Window {
NSDefaultRunLoopMode,
true);
if event == nil { break; }
NSApp().sendEvent_(event);
match event.get_type() {
NSLeftMouseDown => { events.push(MouseInput(Pressed, LeftMouseButton)); },
@ -244,6 +250,7 @@ impl Window {
NSDate::distantFuture(nil),
NSDefaultRunLoopMode,
false);
NSApp().sendEvent_(event);
self.poll_events()
}