55 lines
1.9 KiB
Rust
55 lines
1.9 KiB
Rust
use crate::MouseCursor;
|
|
use winapi::{
|
|
shared::ntdef::LPCWSTR,
|
|
um::winuser::{
|
|
IDC_APPSTARTING, IDC_ARROW, IDC_CROSS, IDC_HAND, IDC_HELP, IDC_IBEAM, IDC_NO, IDC_SIZEALL,
|
|
IDC_SIZENESW, IDC_SIZENS, IDC_SIZENWSE, IDC_SIZEWE, IDC_WAIT,
|
|
},
|
|
};
|
|
|
|
pub fn cursor_to_lpcwstr(cursor: MouseCursor) -> LPCWSTR {
|
|
match cursor {
|
|
MouseCursor::Default => IDC_ARROW,
|
|
MouseCursor::Hand => IDC_HAND,
|
|
MouseCursor::HandGrabbing => IDC_SIZEALL,
|
|
MouseCursor::Help => IDC_HELP,
|
|
// an empty LPCWSTR results in the cursor being hidden
|
|
MouseCursor::Hidden => std::ptr::null(),
|
|
|
|
MouseCursor::Text => IDC_IBEAM,
|
|
MouseCursor::VerticalText => IDC_IBEAM,
|
|
|
|
MouseCursor::Working => IDC_WAIT,
|
|
MouseCursor::PtrWorking => IDC_APPSTARTING,
|
|
|
|
MouseCursor::NotAllowed => IDC_NO,
|
|
MouseCursor::PtrNotAllowed => IDC_NO,
|
|
|
|
MouseCursor::ZoomIn => IDC_ARROW,
|
|
MouseCursor::ZoomOut => IDC_ARROW,
|
|
|
|
MouseCursor::Alias => IDC_ARROW,
|
|
MouseCursor::Copy => IDC_ARROW,
|
|
MouseCursor::Move => IDC_SIZEALL,
|
|
MouseCursor::AllScroll => IDC_SIZEALL,
|
|
MouseCursor::Cell => IDC_CROSS,
|
|
MouseCursor::Crosshair => IDC_CROSS,
|
|
|
|
MouseCursor::EResize => IDC_SIZEWE,
|
|
MouseCursor::NResize => IDC_SIZENS,
|
|
MouseCursor::NeResize => IDC_SIZENESW,
|
|
MouseCursor::NwResize => IDC_SIZENWSE,
|
|
MouseCursor::SResize => IDC_SIZENS,
|
|
MouseCursor::SeResize => IDC_SIZENWSE,
|
|
MouseCursor::SwResize => IDC_SIZENESW,
|
|
MouseCursor::WResize => IDC_SIZEWE,
|
|
MouseCursor::EwResize => IDC_SIZEWE,
|
|
MouseCursor::NsResize => IDC_SIZENS,
|
|
MouseCursor::NwseResize => IDC_SIZENWSE,
|
|
MouseCursor::NeswResize => IDC_SIZENESW,
|
|
|
|
MouseCursor::ColResize => IDC_SIZEWE,
|
|
MouseCursor::RowResize => IDC_SIZENS,
|
|
}
|
|
}
|