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 gpui::CursorStyle;
16
17pub(super) fn to_shape(style: CursorStyle) -> Shape {
18 match style {
19 CursorStyle::Arrow => Shape::Default,
20 CursorStyle::IBeam => Shape::Text,
21 CursorStyle::Crosshair => Shape::Crosshair,
22 CursorStyle::ClosedHand => Shape::Grabbing,
23 CursorStyle::OpenHand => Shape::Grab,
24 CursorStyle::PointingHand => Shape::Pointer,
25 CursorStyle::ResizeLeft => Shape::WResize,
26 CursorStyle::ResizeRight => Shape::EResize,
27 CursorStyle::ResizeLeftRight => Shape::EwResize,
28 CursorStyle::ResizeUp => Shape::NResize,
29 CursorStyle::ResizeDown => Shape::SResize,
30 CursorStyle::ResizeUpDown => Shape::NsResize,
31 CursorStyle::ResizeUpLeftDownRight => Shape::NwseResize,
32 CursorStyle::ResizeUpRightDownLeft => Shape::NeswResize,
33 CursorStyle::ResizeColumn => Shape::ColResize,
34 CursorStyle::ResizeRow => Shape::RowResize,
35 CursorStyle::IBeamCursorForVerticalLayout => Shape::VerticalText,
36 CursorStyle::OperationNotAllowed => Shape::NotAllowed,
37 CursorStyle::DragLink => Shape::Alias,
38 CursorStyle::DragCopy => Shape::Copy,
39 CursorStyle::ContextualMenu => Shape::ContextMenu,
40 CursorStyle::None => {
41 #[cfg(debug_assertions)]
42 panic!("CursorStyle::None should be handled separately in the client");
43 #[cfg(not(debug_assertions))]
44 Shape::Default
45 }
46 }
47}