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}