[][src]Struct druid::MouseEvent

pub struct MouseEvent {
    pub pos: Point,
    pub window_pos: Point,
    pub buttons: MouseButtons,
    pub mods: KeyModifiers,
    pub count: u8,
    pub focus: bool,
    pub button: MouseButton,
    pub wheel_delta: Vec2,
}

The state of the mouse for a click, mouse-up, move, or wheel event.

In druid, unlike in druid_shell, we treat the widget's coordinate space and the window's coordinate space separately.

Every mouse event can have a new position. There is no guarantee of receiving an Event::MouseMove before another mouse event.

When comparing to the position that was reported by Event::MouseMove, the position in relation to the window might have changed because the window moved or the platform just didn't inform us of the move. The position may also have changed in relation to the receiver, because the receiver's location changed without the mouse moving.

Fields

pos: Point

The position of the mouse in the coordinate space of the receiver.

window_pos: Point

The position of the mouse in the coordinate space of the window.

buttons: MouseButtons

Mouse buttons being held down during a move or after a click event. Thus it will contain the button that triggered a mouse-down event, and it will not contain the button that triggered a mouse-up event.

mods: KeyModifiers

Keyboard modifiers at the time of the event.

count: u8

The number of mouse clicks associated with this event. This will always be 0 for a mouse-up and mouse-move events.

focus: bool

Focus is true on macOS when the mouse-down event (or its companion mouse-up event) with MouseButton::Left was the event that caused the window to gain focus.

This is primarily used in relation to text selection. If there is some text selected in some text widget and it receives a click with focus set to true then the widget should gain focus (i.e. start blinking a cursor) but it should not change the text selection. Text selection should only be changed when the click has focus set to false.

button: MouseButton

The button that was pressed down in the case of mouse-down, or the button that was released in the case of mouse-up. This will always be MouseButton::None in the case of mouse-move.

wheel_delta: Vec2

The wheel movement.

The polarity is the amount to be added to the scroll position, in other words the opposite of the direction the content should move on scrolling. This polarity is consistent with the deltaX and deltaY values in a web WheelEvent.

Trait Implementations

impl Clone for MouseEvent[src]

impl Debug for MouseEvent[src]

impl From<MouseEvent> for MouseEvent[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> RoundFrom<T> for T

impl<T, U> RoundInto<U> for T where
    U: RoundFrom<T>, 

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.