wayland.rs

 1mod client;
 2mod clipboard;
 3mod cursor;
 4mod display;
 5mod serial;
 6mod window;
 7
 8pub(crate) use client::*;
 9
10use wayland_protocols::wp::cursor_shape::v1::client::wp_cursor_shape_device_v1::Shape;
11
12use crate::CursorStyle;
13
14impl CursorStyle {
15    pub(super) fn to_shape(self) -> Shape {
16        match self {
17            CursorStyle::Arrow => Shape::Default,
18            CursorStyle::IBeam => Shape::Text,
19            CursorStyle::Crosshair => Shape::Crosshair,
20            CursorStyle::ClosedHand => Shape::Grabbing,
21            CursorStyle::OpenHand => Shape::Grab,
22            CursorStyle::PointingHand => Shape::Pointer,
23            CursorStyle::ResizeLeft => Shape::WResize,
24            CursorStyle::ResizeRight => Shape::EResize,
25            CursorStyle::ResizeLeftRight => Shape::EwResize,
26            CursorStyle::ResizeUp => Shape::NResize,
27            CursorStyle::ResizeDown => Shape::SResize,
28            CursorStyle::ResizeUpDown => Shape::NsResize,
29            CursorStyle::ResizeUpLeftDownRight => Shape::NwseResize,
30            CursorStyle::ResizeUpRightDownLeft => Shape::NeswResize,
31            CursorStyle::ResizeColumn => Shape::ColResize,
32            CursorStyle::ResizeRow => Shape::RowResize,
33            CursorStyle::IBeamCursorForVerticalLayout => Shape::VerticalText,
34            CursorStyle::OperationNotAllowed => Shape::NotAllowed,
35            CursorStyle::DragLink => Shape::Alias,
36            CursorStyle::DragCopy => Shape::Copy,
37            CursorStyle::ContextualMenu => Shape::ContextMenu,
38            CursorStyle::None => {
39                #[cfg(debug_assertions)]
40                panic!("CursorStyle::None should be handled separately in the client");
41                #[cfg(not(debug_assertions))]
42                Shape::Default
43            }
44        }
45    }
46}