56 lines
1.3 KiB
Rust
56 lines
1.3 KiB
Rust
use crate::Point;
|
|
|
|
use super::Button;
|
|
|
|
/// A mouse event.
|
|
///
|
|
/// _**Note:** This type is largely incomplete! If you need to track
|
|
/// additional events, feel free to [open an issue] and share your use case!_
|
|
///
|
|
/// [open an issue]: https://github.com/iced-rs/iced/issues
|
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
|
pub enum Event {
|
|
/// The mouse cursor entered the window.
|
|
CursorEntered,
|
|
|
|
/// The mouse cursor left the window.
|
|
CursorLeft,
|
|
|
|
/// The mouse cursor was moved
|
|
CursorMoved {
|
|
/// The new position of the mouse cursor
|
|
position: Point,
|
|
},
|
|
|
|
/// A mouse button was pressed.
|
|
ButtonPressed(Button),
|
|
|
|
/// A mouse button was released.
|
|
ButtonReleased(Button),
|
|
|
|
/// The mouse wheel was scrolled.
|
|
WheelScrolled {
|
|
/// The scroll movement.
|
|
delta: ScrollDelta,
|
|
},
|
|
}
|
|
|
|
/// A scroll movement.
|
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
|
pub enum ScrollDelta {
|
|
/// A line-based scroll movement
|
|
Lines {
|
|
/// The number of horizontal lines scrolled
|
|
x: f32,
|
|
|
|
/// The number of vertical lines scrolled
|
|
y: f32,
|
|
},
|
|
/// A pixel-based scroll movement
|
|
Pixels {
|
|
/// The number of horizontal pixels scrolled
|
|
x: f32,
|
|
/// The number of vertical pixels scrolled
|
|
y: f32,
|
|
},
|
|
}
|