diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/rust/raw-window-handle/src/unix.rs | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/raw-window-handle/src/unix.rs')
-rw-r--r-- | third_party/rust/raw-window-handle/src/unix.rs | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/third_party/rust/raw-window-handle/src/unix.rs b/third_party/rust/raw-window-handle/src/unix.rs new file mode 100644 index 0000000000..be8d6f8cca --- /dev/null +++ b/third_party/rust/raw-window-handle/src/unix.rs @@ -0,0 +1,98 @@ +use core::ptr; +use libc::{c_ulong, c_void}; + +/// Raw window handle for Xlib. +/// +/// ## Construction +/// ``` +/// # use raw_window_handle::unix::XlibHandle; +/// let handle = XlibHandle { +/// /* fields */ +/// ..XlibHandle::empty() +/// }; +/// ``` +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct XlibHandle { + /// An Xlib `Window`. + pub window: c_ulong, + /// A pointer to an Xlib `Display`. + pub display: *mut c_void, + #[doc(hidden)] + #[deprecated = "This field is used to ensure that this struct is non-exhaustive, so that it may be extended in the future. Do not refer to this field."] + pub _non_exhaustive_do_not_use: crate::seal::Seal, +} + +/// Raw window handle for Xcb. +/// +/// ## Construction +/// ``` +/// # use raw_window_handle::unix::XcbHandle; +/// let handle = XcbHandle { +/// /* fields */ +/// ..XcbHandle::empty() +/// }; +/// ``` +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct XcbHandle { + /// An X11 `xcb_window_t`. + pub window: u32, // Based on xproto.h + /// A pointer to an X server `xcb_connection_t`. + pub connection: *mut c_void, + #[doc(hidden)] + #[deprecated = "This field is used to ensure that this struct is non-exhaustive, so that it may be extended in the future. Do not refer to this field."] + pub _non_exhaustive_do_not_use: crate::seal::Seal, +} + +/// Raw window handle for Wayland. +/// +/// ## Construction +/// ``` +/// # use raw_window_handle::unix::WaylandHandle; +/// let handle = WaylandHandle { +/// /* fields */ +/// ..WaylandHandle::empty() +/// }; +/// ``` +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct WaylandHandle { + /// A pointer to a `wl_surface`. + pub surface: *mut c_void, + /// A pointer to a `wl_display`. + pub display: *mut c_void, + #[doc(hidden)] + #[deprecated = "This field is used to ensure that this struct is non-exhaustive, so that it may be extended in the future. Do not refer to this field."] + pub _non_exhaustive_do_not_use: crate::seal::Seal, +} + +impl XlibHandle { + pub fn empty() -> XlibHandle { + #[allow(deprecated)] + XlibHandle { + window: 0, + display: ptr::null_mut(), + _non_exhaustive_do_not_use: crate::seal::Seal, + } + } +} + +impl XcbHandle { + pub fn empty() -> XcbHandle { + #[allow(deprecated)] + XcbHandle { + window: 0, + connection: ptr::null_mut(), + _non_exhaustive_do_not_use: crate::seal::Seal, + } + } +} + +impl WaylandHandle { + pub fn empty() -> WaylandHandle { + #[allow(deprecated)] + WaylandHandle { + surface: ptr::null_mut(), + display: ptr::null_mut(), + _non_exhaustive_do_not_use: crate::seal::Seal, + } + } +} |