pax_runtime_api/
cursor.rs

1#[derive(Debug, Clone, PartialEq)]
2pub enum CursorStyle {
3    // General
4    Auto,
5    Default,
6    None,
7
8    // Links & Status
9    ContextMenu,
10    Help,
11    Pointer,
12    Progress,
13    Wait,
14
15    // Selection
16    Cell,
17    Crosshair,
18    Text,
19    VerticalText,
20
21    // Drag & Drop
22    Alias,
23    Copy,
24    Move,
25    NoDrop,
26    NotAllowed,
27
28    // Resizing & Scrolling
29    AllScroll,
30    ColResize,
31    RowResize,
32    NResize,
33    EResize,
34    SResize,
35    WResize,
36    NeResize,
37    NwResize,
38    SeResize,
39    SwResize,
40    EwResize,
41    NsResize,
42    NeswResize,
43    NwseResize,
44
45    // Zooming
46    ZoomIn,
47    ZoomOut,
48
49    // Grabbing
50    Grab,
51    Grabbing,
52
53    // Custom
54    Url(String, i32, i32),
55}
56
57impl std::fmt::Display for CursorStyle {
58    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
59        // NOTE: These should match the valid css cursor names
60        match self {
61            CursorStyle::Auto => write!(f, "auto"),
62            CursorStyle::Default => write!(f, "default"),
63            CursorStyle::None => write!(f, "none"),
64            CursorStyle::ContextMenu => write!(f, "context-menu"),
65            CursorStyle::Help => write!(f, "help"),
66            CursorStyle::Pointer => write!(f, "pointer"),
67            CursorStyle::Progress => write!(f, "progress"),
68            CursorStyle::Wait => write!(f, "wait"),
69            CursorStyle::Cell => write!(f, "cell"),
70            CursorStyle::Crosshair => write!(f, "crosshair"),
71            CursorStyle::Text => write!(f, "text"),
72            CursorStyle::VerticalText => write!(f, "vertical-text"),
73            CursorStyle::Alias => write!(f, "alias"),
74            CursorStyle::Copy => write!(f, "copy"),
75            CursorStyle::Move => write!(f, "move"),
76            CursorStyle::NoDrop => write!(f, "no-drop"),
77            CursorStyle::NotAllowed => write!(f, "not-allowed"),
78            CursorStyle::AllScroll => write!(f, "all-scroll"),
79            CursorStyle::ColResize => write!(f, "col-resize"),
80            CursorStyle::RowResize => write!(f, "row-resize"),
81            CursorStyle::NResize => write!(f, "n-resize"),
82            CursorStyle::EResize => write!(f, "e-resize"),
83            CursorStyle::SResize => write!(f, "s-resize"),
84            CursorStyle::WResize => write!(f, "w-resize"),
85            CursorStyle::NeResize => write!(f, "ne-resize"),
86            CursorStyle::NwResize => write!(f, "nw-resize"),
87            CursorStyle::SeResize => write!(f, "se-resize"),
88            CursorStyle::SwResize => write!(f, "sw-resize"),
89            CursorStyle::EwResize => write!(f, "ew-resize"),
90            CursorStyle::NsResize => write!(f, "ns-resize"),
91            CursorStyle::NeswResize => write!(f, "nesw-resize"),
92            CursorStyle::NwseResize => write!(f, "nwse-resize"),
93            CursorStyle::ZoomIn => write!(f, "zoom-in"),
94            CursorStyle::ZoomOut => write!(f, "zoom-out"),
95            CursorStyle::Grab => write!(f, "grab"),
96            CursorStyle::Grabbing => write!(f, "grabbing"),
97            CursorStyle::Url(url, x, y) => write!(f, "url(\"{}\") {} {}, auto", url, x, y),
98        }
99    }
100}