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§

source§

impl Clone for MouseEvent

source§

fn clone(&self) -> MouseEvent

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MouseEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<MouseEvent> for MouseEvent

source§

fn from(src: MouseEvent) -> MouseEvent

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

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

§

impl<T> RoundFrom<T> for T

§

fn round_from(x: T) -> T

Performs the conversion.
§

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

§

fn round_into(self) -> U

Performs the conversion.
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more