Skip to main content

mouse_types/
event.rs

1#[cfg(feature = "serde")]
2use serde::{
3  Deserialize,
4  Serialize,
5};
6use {
7  crate::{
8    button::MouseButton,
9    state::ButtonState,
10  },
11  keyboard_types::Modifiers,
12};
13
14/// Mouse events are issued for all pressed and released mouse buttons.
15#[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
16#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
17pub struct MouseEvent {
18  /// Whether the button is pressed or released.
19  pub state: ButtonState,
20  /// Logical button value.
21  pub button: MouseButton,
22  /// Flags for pressed modifier keys.
23  pub modifiers: Modifiers,
24}