vizia_baseview/
parent_window.rs

1use raw_window_handle::{HasRawWindowHandle, RawWindowHandle};
2
3pub struct ParentWindow(pub *mut ::std::ffi::c_void);
4
5#[cfg(target_os = "macos")]
6unsafe impl HasRawWindowHandle for ParentWindow {
7    fn raw_window_handle(&self) -> RawWindowHandle {
8        use raw_window_handle::AppKitWindowHandle;
9
10        let mut handle = AppKitWindowHandle::empty();
11        handle.ns_view = self.0;
12
13        RawWindowHandle::AppKit(handle)
14    }
15}
16
17#[cfg(target_os = "windows")]
18unsafe impl HasRawWindowHandle for ParentWindow {
19    fn raw_window_handle(&self) -> RawWindowHandle {
20        use raw_window_handle::Win32WindowHandle;
21
22        let mut handle = Win32WindowHandle::empty();
23        handle.hwnd = self.0;
24
25        RawWindowHandle::Win32(handle)
26    }
27}
28
29#[cfg(target_os = "linux")]
30unsafe impl HasRawWindowHandle for ParentWindow {
31    fn raw_window_handle(&self) -> RawWindowHandle {
32        use raw_window_handle::XcbWindowHandle;
33
34        let mut handle = XcbWindowHandle::empty();
35        handle.window = self.0 as u32;
36
37        RawWindowHandle::Xcb(handle)
38    }
39}