#[allow(unused_imports)] use crate::*;
use bytemuck::*;
use winapi::shared::windef::HWND;
use std::convert::Infallible;
use std::fmt::{self, Debug, Formatter};
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Default, Pod, Zeroable)]
#[repr(transparent)]
pub struct HWnd(pub(crate) usize);
impl HWnd {
pub const NULL : HWnd = HWnd(0);
pub const DESKTOP : HWnd = HWnd(0isize as _); pub const TOP : HWnd = HWnd(0isize as _); pub const BOTTOM : HWnd = HWnd(1isize as _);
pub const BROADCAST : HWnd = HWnd(0xFFFF);
pub const TOPMOST : HWnd = HWnd(-1isize as _); pub const NOTOPMOST : HWnd = HWnd(-2isize as _);
pub const MESSAGE : HWnd = HWnd(-3isize as _);
pub const fn is_null(self) -> bool { self.0 == 0 }
}
impl Debug for HWnd { fn fmt(&self, fmt: &mut Formatter) -> fmt::Result { write!(fmt, "HWnd(0x{:X})", self.0) } }
impl From<()> for HWnd { fn from(_: () ) -> Self { Self(0) } }
impl From<Option<Infallible>> for HWnd { fn from(_: Option<Infallible> ) -> Self { Self(0) } }
impl From<HWnd> for HWND { fn from(h: HWnd ) -> Self { h.0 as _ } }
impl From<HWND> for HWnd { fn from(h: HWND ) -> Self { Self(h as _) } }
#[cfg(feature = "raw-window-handle-0-1")] mod rwh01 {
use raw_window_handle_0_1::*;
impl TryFrom<RawWindowHandle> for super::HWnd {
type Error = ();
#[doc(hidden)] fn try_from(rwh: RawWindowHandle) -> Result<Self, Self::Error> {
if let RawWindowHandle::Windows(win32) = rwh { Ok(Self(win32.hwnd as _)) }
else { Err(()) }
}
}
}
#[cfg(feature = "raw-window-handle-0-2")] mod rwh02 {
use raw_window_handle_0_2::*;
impl TryFrom<RawWindowHandle> for super::HWnd {
type Error = ();
#[doc(hidden)] fn try_from(rwh: RawWindowHandle) -> Result<Self, Self::Error> {
if let RawWindowHandle::Windows(win32) = rwh { Ok(Self(win32.hwnd as _)) }
else { Err(()) }
}
}
}
#[cfg(feature = "raw-window-handle-0-3")] mod rwh03 {
use raw_window_handle_0_3::*;
impl TryFrom<RawWindowHandle> for super::HWnd {
type Error = ();
#[doc(hidden)] fn try_from(rwh: RawWindowHandle) -> Result<Self, Self::Error> {
if let RawWindowHandle::Windows(win32) = rwh { Ok(Self(win32.hwnd as _)) }
else { Err(()) }
}
}
}
#[cfg(feature = "raw-window-handle-0-4")] mod rwh04 {
use raw_window_handle_0_4::*;
impl TryFrom<RawWindowHandle> for super::HWnd {
type Error = ();
fn try_from(rwh: RawWindowHandle) -> Result<Self, Self::Error> {
if let RawWindowHandle::Win32(win32) = rwh { Ok(Self(win32.hwnd as _)) }
else { Err(()) }
}
}
}
#[cfg(feature = "raw-window-handle-0-5")] mod rwh05 {
use raw_window_handle_0_5::*;
impl TryFrom<RawWindowHandle> for super::HWnd {
type Error = ();
fn try_from(rwh: RawWindowHandle) -> Result<Self, Self::Error> {
if let RawWindowHandle::Win32(win32) = rwh { Ok(Self(win32.hwnd as _)) }
else { Err(()) }
}
}
}
#[cfg(feature = "raw-window-handle-0-6")] mod rwh06 {
use raw_window_handle_0_6::*;
impl TryFrom<RawWindowHandle> for super::HWnd {
type Error = ();
fn try_from(rwh: RawWindowHandle) -> Result<Self, Self::Error> {
if let RawWindowHandle::Win32(win32) = rwh { Ok(Self(win32.hwnd.get() as _)) }
else { Err(()) }
}
}
}