Merge pull request #209 from bjz/osx-window

Remove unnecessary inner method in OSX window constructor
This commit is contained in:
tomaka 2015-01-18 10:38:59 +01:00
commit 0d114c72b3
2 changed files with 29 additions and 35 deletions

View file

@ -32,9 +32,9 @@ fn main() {
run(window3, (1.0, 0.0, 0.0, 1.0));
});
t1.join();
t2.join();
t3.join();
let _ = t1.join();
let _ = t2.join();
let _ = t3.join();
}
#[cfg(feature = "window")]

View file

@ -64,17 +64,6 @@ pub struct Window {
is_closed: Cell<bool>,
}
#[cfg(feature = "window")]
impl Window {
pub fn new(builder: BuilderAttribs) -> Result<Window, CreationError> {
if builder.sharing.is_some() {
unimplemented!()
}
Window::new_impl(builder.dimensions, builder.title.as_slice(), builder.monitor, builder.vsync, builder.visible, builder.gl_version)
}
}
#[cfg(feature = "window")]
unsafe impl Send for Window {}
#[cfg(feature = "window")]
@ -137,13 +126,20 @@ extern fn window_did_resize(this: id, _: id) -> id {
}
impl Window {
fn new_impl(dimensions: Option<(u32, u32)>, title: &str, monitor: Option<MonitorID>,
vsync: bool, visible: bool, gl_version: Option<(u32, u32)>) -> Result<Window, CreationError> {
#[cfg(feature = "window")]
pub fn new(builder: BuilderAttribs) -> Result<Window, CreationError> {
if builder.sharing.is_some() {
unimplemented!()
}
let app = match Window::create_app() {
Some(app) => app,
None => { return Err(OsError(format!("Couldn't create NSApplication"))); },
};
let window = match Window::create_window(dimensions.unwrap_or((800, 600)), title, monitor) {
let window = match Window::create_window(builder.dimensions.unwrap_or((800, 600)),
&*builder.title,
builder.monitor)
{
Some(window) => window,
None => { return Err(OsError(format!("Couldn't create NSWindow"))); },
};
@ -152,14 +148,14 @@ impl Window {
None => { return Err(OsError(format!("Couldn't create NSView"))); },
};
let context = match Window::create_context(view, vsync, gl_version) {
let context = match Window::create_context(view, builder.vsync, builder.gl_version) {
Some(context) => context,
None => { return Err(OsError(format!("Couldn't create OpenGL context"))); },
};
unsafe {
app.activateIgnoringOtherApps_(true);
if visible {
if builder.visible {
window.makeKeyAndOrderFront_(nil);
} else {
window.makeKeyWindow();
@ -212,27 +208,25 @@ impl Window {
fn create_window(dimensions: (u32, u32), title: &str, monitor: Option<MonitorID>) -> Option<id> {
unsafe {
let scr_frame = match monitor {
Some(_) => {
let frame = if monitor.is_some() {
let screen = NSScreen::mainScreen(nil);
NSScreen::frame(screen)
}
None => {
} else {
let (width, height) = dimensions;
NSRect::new(NSPoint::new(0., 0.), NSSize::new(width as f64, height as f64))
}
};
let masks = match monitor {
Some(_) => NSBorderlessWindowMask as NSUInteger,
None => NSTitledWindowMask as NSUInteger |
let masks = if monitor.is_some() {
NSBorderlessWindowMask as NSUInteger
} else {
NSTitledWindowMask as NSUInteger |
NSClosableWindowMask as NSUInteger |
NSMiniaturizableWindowMask as NSUInteger |
NSResizableWindowMask as NSUInteger,
NSResizableWindowMask as NSUInteger
};
let window = NSWindow::alloc(nil).initWithContentRect_styleMask_backing_defer_(
scr_frame,
frame,
masks,
NSBackingStoreBuffered,
false,