From c71b14afb9709aef36477a3eab0a816a3f972cd8 Mon Sep 17 00:00:00 2001 From: Johan Sköld Date: Sat, 16 Jan 2016 15:12:21 -0800 Subject: Adding os::macos. Also implements platform_window() for cocoa. --- src/api/cocoa/mod.rs | 2 +- src/os/macos.rs | 19 +++++++++++++++++++ src/os/mod.rs | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/os/macos.rs (limited to 'src') diff --git a/src/api/cocoa/mod.rs b/src/api/cocoa/mod.rs index a720a51..2fc1baf 100644 --- a/src/api/cocoa/mod.rs +++ b/src/api/cocoa/mod.rs @@ -690,7 +690,7 @@ impl Window { #[inline] pub fn platform_window(&self) -> *mut libc::c_void { - unimplemented!() + *self.window as *mut libc::c_void } #[inline] diff --git a/src/os/macos.rs b/src/os/macos.rs new file mode 100644 index 0000000..16ffe33 --- /dev/null +++ b/src/os/macos.rs @@ -0,0 +1,19 @@ +#![cfg(target_os = "macos")] + +use std::os::raw::c_void; +use Window; + +/// Additional methods on `Window` that are specific to MacOS. +pub trait WindowExt { + /// Returns a pointer to the cocoa `NSWindow` that is used by this window. + /// + /// The pointer will become invalid when the glutin `Window` is destroyed. + fn get_nswindow(&self) -> *mut c_void; +} + +impl WindowExt for Window { + #[inline] + fn get_nswindow(&self) -> *mut c_void { + self.window.platform_window() as *mut c_void + } +} diff --git a/src/os/mod.rs b/src/os/mod.rs index 251a8d4..04e82c2 100644 --- a/src/os/mod.rs +++ b/src/os/mod.rs @@ -2,8 +2,10 @@ //! //! Contains the follow modules: //! +//! - `macos` //! - `unix` //! - `windows` //! +pub mod macos; pub mod unix; pub mod windows; -- cgit v1.2.3