content view pointer
This commit is contained in:
parent
65b32e79c0
commit
b19806af97
|
@ -50,7 +50,7 @@ pub struct Window<T = ()> {
|
||||||
pub objc: Id<Object, Shared>,
|
pub objc: Id<Object, Shared>,
|
||||||
|
|
||||||
/// A delegate for this window.
|
/// A delegate for this window.
|
||||||
pub delegate: Option<Box<T>>
|
pub delegate: Option<Box<T>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Window {
|
impl Default for Window {
|
||||||
|
@ -108,21 +108,21 @@ impl Window {
|
||||||
|
|
||||||
Window {
|
Window {
|
||||||
objc: objc,
|
objc: objc,
|
||||||
delegate: None
|
delegate: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) unsafe fn existing(window: *mut Object) -> Window {
|
pub(crate) unsafe fn existing(window: *mut Object) -> Window {
|
||||||
Window {
|
Window {
|
||||||
objc: Id::retain(window).unwrap(),
|
objc: Id::retain(window).unwrap(),
|
||||||
delegate: None
|
delegate: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Window<T>
|
impl<T> Window<T>
|
||||||
where
|
where
|
||||||
T: WindowDelegate + 'static
|
T: WindowDelegate + 'static,
|
||||||
{
|
{
|
||||||
/// Constructs a new Window with a `config` and `delegate`. Using a `WindowDelegate` enables
|
/// Constructs a new Window with a `config` and `delegate`. Using a `WindowDelegate` enables
|
||||||
/// you to respond to window lifecycle events - visibility, movement, and so on. It also
|
/// you to respond to window lifecycle events - visibility, movement, and so on. It also
|
||||||
|
@ -180,13 +180,13 @@ where
|
||||||
{
|
{
|
||||||
(&mut delegate).did_load(Window {
|
(&mut delegate).did_load(Window {
|
||||||
delegate: None,
|
delegate: None,
|
||||||
objc: objc.clone()
|
objc: objc.clone(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Window {
|
Window {
|
||||||
objc: objc,
|
objc: objc,
|
||||||
delegate: Some(delegate)
|
delegate: Some(delegate),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -338,6 +338,10 @@ impl<T> Window<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub unsafe fn content_view_ptr(&self) -> Option<std::ptr::NonNull<std::ffi::c_void>> {
|
||||||
|
std::ptr::NonNull::new(self.content_view() as *mut std::ffi::c_void)
|
||||||
|
}
|
||||||
|
|
||||||
/// Return the objc ContentView from the window
|
/// Return the objc ContentView from the window
|
||||||
pub(crate) unsafe fn content_view(&self) -> id {
|
pub(crate) unsafe fn content_view(&self) -> id {
|
||||||
let id: *mut Object = msg_send![&*self.objc, contentView];
|
let id: *mut Object = msg_send![&*self.objc, contentView];
|
||||||
|
@ -514,7 +518,7 @@ impl<T> Window<T> {
|
||||||
pub fn begin_sheet<F, W>(&self, window: &Window<W>, completion: F)
|
pub fn begin_sheet<F, W>(&self, window: &Window<W>, completion: F)
|
||||||
where
|
where
|
||||||
F: Fn() + Send + Sync + 'static,
|
F: Fn() + Send + Sync + 'static,
|
||||||
W: WindowDelegate + 'static
|
W: WindowDelegate + 'static,
|
||||||
{
|
{
|
||||||
let block = ConcreteBlock::new(move |_response: NSInteger| {
|
let block = ConcreteBlock::new(move |_response: NSInteger| {
|
||||||
completion();
|
completion();
|
||||||
|
@ -529,7 +533,7 @@ impl<T> Window<T> {
|
||||||
/// Closes a sheet.
|
/// Closes a sheet.
|
||||||
pub fn end_sheet<W>(&self, window: &Window<W>)
|
pub fn end_sheet<W>(&self, window: &Window<W>)
|
||||||
where
|
where
|
||||||
W: WindowDelegate + 'static
|
W: WindowDelegate + 'static,
|
||||||
{
|
{
|
||||||
unsafe {
|
unsafe {
|
||||||
let _: () = msg_send![&*self.objc, endSheet:&*window.objc];
|
let _: () = msg_send![&*self.objc, endSheet:&*window.objc];
|
||||||
|
|
Loading…
Reference in a new issue