Struct druid::MouseEvent

source ·
pub struct MouseEvent {
    pub pos: Point,
    pub window_pos: Point,
    pub buttons: MouseButtons,
    pub mods: Modifiers,
    pub count: u8,
    pub focus: bool,
    pub button: MouseButton,
    pub wheel_delta: Vec2,
}
Expand description

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: Modifiers

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§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Performs the conversion.
Performs the conversion.
Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more