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