diff options
Diffstat (limited to 'src/api/cocoa')
-rw-r--r-- | src/api/cocoa/mod.rs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/api/cocoa/mod.rs b/src/api/cocoa/mod.rs index bec56d2..e935805 100644 --- a/src/api/cocoa/mod.rs +++ b/src/api/cocoa/mod.rs @@ -79,11 +79,12 @@ struct WindowDelegate { impl WindowDelegate { /// Get the delegate class, initiailizing it neccessary fn class() -> *const Class { + use std::os::raw::c_void; use std::sync::{Once, ONCE_INIT}; extern fn window_should_close(this: &Object, _: Sel, _: id) -> BOOL { unsafe { - let state: *mut libc::c_void = *this.get_ivar("glutinState"); + let state: *mut c_void = *this.get_ivar("glutinState"); let state = state as *mut DelegateState; (*state).pending_events.lock().unwrap().push_back(Closed); } @@ -92,7 +93,7 @@ impl WindowDelegate { extern fn window_did_resize(this: &Object, _: Sel, _: id) { unsafe { - let state: *mut libc::c_void = *this.get_ivar("glutinState"); + let state: *mut c_void = *this.get_ivar("glutinState"); let state = &mut *(state as *mut DelegateState); let _: () = msg_send![*state.context, update]; @@ -111,7 +112,7 @@ impl WindowDelegate { // TODO: center the cursor if the window had mouse grab when it // lost focus - let state: *mut libc::c_void = *this.get_ivar("glutinState"); + let state: *mut c_void = *this.get_ivar("glutinState"); let state = state as *mut DelegateState; (*state).pending_events.lock().unwrap().push_back(Focused(true)); } @@ -119,7 +120,7 @@ impl WindowDelegate { extern fn window_did_resign_key(this: &Object, _: Sel, _: id) { unsafe { - let state: *mut libc::c_void = *this.get_ivar("glutinState"); + let state: *mut c_void = *this.get_ivar("glutinState"); let state = state as *mut DelegateState; (*state).pending_events.lock().unwrap().push_back(Focused(false)); } @@ -131,7 +132,7 @@ impl WindowDelegate { INIT.call_once(|| unsafe { // Create new NSWindowDelegate let superclass = Class::get("NSObject").unwrap(); - let mut decl = ClassDecl::new(superclass, "GlutinWindowDelegate").unwrap(); + let mut decl = ClassDecl::new("GlutinWindowDelegate", superclass).unwrap(); // Add callback methods decl.add_method(sel!(windowShouldClose:), @@ -145,7 +146,7 @@ impl WindowDelegate { window_did_resign_key as extern fn(&Object, Sel, id)); // Store internal state as user data - decl.add_ivar::<*mut libc::c_void>("glutinState"); + decl.add_ivar::<*mut c_void>("glutinState"); delegate_class = decl.register(); }); @@ -162,7 +163,7 @@ impl WindowDelegate { unsafe { let delegate = IdRef::new(msg_send![WindowDelegate::class(), new]); - (&mut **delegate).set_ivar("glutinState", state_ptr as *mut libc::c_void); + (&mut **delegate).set_ivar("glutinState", state_ptr as *mut ::std::os::raw::c_void); let _: () = msg_send![*state.window, setDelegate:*delegate]; WindowDelegate { state: state, _this: delegate } @@ -673,8 +674,8 @@ impl Window { let sel = Sel::register(cursor_name); let cls = Class::get("NSCursor").unwrap(); unsafe { - use objc::MessageArguments; - let cursor: id = ().send(cls as *const _ as id, sel); + use objc::Message; + let cursor: id = cls.send_message(sel, ()).unwrap(); let _: () = msg_send![cursor, set]; } } |