diff options
| author | Glenn Watson <gw@intuitionlibrary.com> | 2014-12-17 09:41:27 +1000 | 
|---|---|---|
| committer | Glenn Watson <gw@intuitionlibrary.com> | 2014-12-19 05:44:47 +1000 | 
| commit | fa5cb66cff2e13a5ee75c4f99abe5f93bede7dd1 (patch) | |
| tree | d43f94a82c811600935ec4fe5848499f63c80357 /src/osx | |
| parent | 0ad9c3d453076adc5d94008d7e155d7ee5536225 (diff) | |
| download | glutin-fa5cb66cff2e13a5ee75c4f99abe5f93bede7dd1.tar.gz glutin-fa5cb66cff2e13a5ee75c4f99abe5f93bede7dd1.zip  | |
Add resize example, fix warnings, make callback an option so it can be removed.
Diffstat (limited to 'src/osx')
| -rw-r--r-- | src/osx/mod.rs | 25 | 
1 files changed, 12 insertions, 13 deletions
diff --git a/src/osx/mod.rs b/src/osx/mod.rs index 2634491..110113b 100644 --- a/src/osx/mod.rs +++ b/src/osx/mod.rs @@ -48,8 +48,7 @@ struct DelegateState<'a> {      is_closed: bool,      context: id,      view: id, -    window: &'a Window, -    handler: fn(uint, uint), +    handler: Option<fn(uint, uint)>,  }  pub struct Window { @@ -57,7 +56,7 @@ pub struct Window {      window: id,      context: id,      delegate: id, -    resize: fn(uint, uint), +    resize: Option<fn(uint, uint)>,      is_closed: Cell<bool>,  } @@ -118,15 +117,20 @@ extern fn window_did_resize(this: id, _: id) -> id {          let _: id = msg_send()(state.context, selector("update")); -        let rect = NSView::frame(state.view); -        (state.handler)(rect.size.width as uint, rect.size.height as uint); +        match state.handler { +            Some(handler) => { +                let rect = NSView::frame(state.view); +                (handler)(rect.size.width as uint, rect.size.height as uint); +            } +            None => {} +        }      }      0  }  impl Window {      fn new_impl(dimensions: Option<(uint, uint)>, title: &str, monitor: Option<MonitorID>, -                vsync: bool, visible: bool) -> Result<Window, CreationError> { +                vsync: bool, _visible: bool) -> Result<Window, CreationError> {          let app = match Window::create_app() {              Some(app) => app,              None      => { return Err(OsError(format!("Couldn't create NSApplication"))); }, @@ -173,7 +177,7 @@ impl Window {              window: window,              context: context,              delegate: delegate, -            resize: Window::resize, +            resize: None,              is_closed: Cell::new(false),          }; @@ -181,10 +185,6 @@ impl Window {          Ok(window)      } -    fn resize(_: uint, _: uint) { - -    } -      fn create_app() -> Option<id> {          unsafe {              let app = NSApp(); @@ -349,7 +349,6 @@ impl Window {                          is_closed: self.is_closed.get(),                          context: self.context,                          view: self.view, -                        window: self,                          handler: self.resize,                      };                      object_setInstanceVariable(self.delegate, @@ -476,7 +475,7 @@ impl Window {          ::Api::OpenGl      } -    pub fn set_window_resize_callback(&mut self, callback: fn(uint, uint)) { +    pub fn set_window_resize_callback(&mut self, callback: Option<fn(uint, uint)>) {          self.resize = callback;      }  }  | 
