Skip to main content

mouse_types/mouse/
event.rs

1#[cfg(feature = "serde")]
2use serde::{
3  Deserialize,
4  Serialize,
5};
6use {
7  super::{
8    button::MouseButton,
9    state::ButtonState,
10  },
11  dpi::PhysicalPosition,
12  keyboard_types::Modifiers,
13};
14
15/// Mouse events are issued for all pressed and released mouse buttons.
16#[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
17#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
18pub struct MouseEvent {
19  /// The position of the mouse cursor.
20  pub position: PhysicalPosition<i32>,
21  /// Whether the button is pressed or released.
22  pub state: ButtonState,
23  /// Logical button value.
24  pub button: MouseButton,
25  /// Flags for pressed modifier keys.
26  pub modifiers: Modifiers,
27  /// Whether this event is a double click.
28  pub is_double_click: bool,
29}