Adopt windows-sys (#2057)
This commit is contained in:
parent
78e5a395da
commit
b222dde835
17 changed files with 1424 additions and 1239 deletions
|
|
@ -1,6 +1,9 @@
|
|||
#![cfg(target_os = "windows")]
|
||||
|
||||
use winapi::{self, shared::windef::HMENU, shared::windef::HWND};
|
||||
use windows_sys::Win32::{
|
||||
Foundation::{HANDLE, HWND},
|
||||
UI::WindowsAndMessaging::{HMENU, WINDOW_LONG_PTR_INDEX},
|
||||
};
|
||||
|
||||
pub(crate) use self::{
|
||||
event_loop::{
|
||||
|
|
@ -52,7 +55,7 @@ unsafe impl Sync for PlatformSpecificWindowBuilderAttributes {}
|
|||
|
||||
// Cursor name in UTF-16. Used to set cursor in `WM_SETCURSOR`.
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct Cursor(pub *const winapi::ctypes::wchar_t);
|
||||
pub struct Cursor(pub *const u16);
|
||||
unsafe impl Send for Cursor {}
|
||||
unsafe impl Sync for Cursor {}
|
||||
|
||||
|
|
@ -68,7 +71,7 @@ impl DeviceId {
|
|||
impl DeviceId {
|
||||
pub fn persistent_identifier(&self) -> Option<String> {
|
||||
if self.0 != 0 {
|
||||
raw_input::get_raw_input_device_name(self.0 as _)
|
||||
raw_input::get_raw_input_device_name(self.0 as HANDLE)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
|
@ -91,15 +94,59 @@ unsafe impl Sync for WindowId {}
|
|||
|
||||
impl WindowId {
|
||||
pub const unsafe fn dummy() -> Self {
|
||||
use std::ptr::null_mut;
|
||||
|
||||
WindowId(null_mut())
|
||||
WindowId(0)
|
||||
}
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
const fn get_xbutton_wparam(x: u32) -> u16 {
|
||||
loword(x)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
const fn get_x_lparam(x: u32) -> u16 {
|
||||
loword(x)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
const fn get_y_lparam(x: u32) -> u16 {
|
||||
hiword(x)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
const fn loword(x: u32) -> u16 {
|
||||
(x & 0xFFFF) as u16
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
const fn hiword(x: u32) -> u16 {
|
||||
((x >> 16) & 0xFFFF) as u16
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
unsafe fn get_window_long(hwnd: HWND, nindex: WINDOW_LONG_PTR_INDEX) -> isize {
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
return windows_sys::Win32::UI::WindowsAndMessaging::GetWindowLongPtrW(hwnd, nindex);
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
return windows_sys::Win32::UI::WindowsAndMessaging::GetWindowLongW(hwnd, nindex) as isize;
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
unsafe fn set_window_long(hwnd: HWND, nindex: WINDOW_LONG_PTR_INDEX, dwnewlong: isize) -> isize {
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
return windows_sys::Win32::UI::WindowsAndMessaging::SetWindowLongPtrW(hwnd, nindex, dwnewlong);
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
return windows_sys::Win32::UI::WindowsAndMessaging::SetWindowLongW(
|
||||
hwnd,
|
||||
nindex,
|
||||
dwnewlong as i32,
|
||||
) as isize;
|
||||
}
|
||||
|
||||
#[macro_use]
|
||||
mod util;
|
||||
mod dark_mode;
|
||||
mod definitions;
|
||||
mod dpi;
|
||||
mod drop_handler;
|
||||
mod event;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue