summaryrefslogtreecommitdiffstats
path: root/src/input/mouse/button.rs
blob: 6320d70183bad81c041e6b0091d31d3b42cd985c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/// The button of a mouse.
///
/// If you are using [`winit`], consider enabling the `winit` feature to get
/// conversion implementations for free!
///
/// [`winit`]: https://docs.rs/winit/0.20.0-alpha3/winit/
#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)]
pub enum Button {
    /// The left mouse button.
    Left,

    /// The right mouse button.
    Right,

    /// The middle (wheel) button.
    Middle,

    /// Some other button.
    Other(u8),
}

#[cfg(feature = "winit")]
impl From<winit::event::MouseButton> for super::Button {
    fn from(mouse_button: winit::event::MouseButton) -> Self {
        match mouse_button {
            winit::event::MouseButton::Left => Button::Left,
            winit::event::MouseButton::Right => Button::Right,
            winit::event::MouseButton::Middle => Button::Middle,
            winit::event::MouseButton::Other(other) => Button::Other(other),
        }
    }
}