pub enum Event {
Show 14 variants Copy, Cut, Paste(String), Text(String), Key { key: Key, pressed: bool, modifiers: Modifiers, }, PointerMoved(Pos2), PointerButton { pos: Pos2, button: PointerButton, pressed: bool, modifiers: Modifiers, }, PointerGone, Scroll(Vec2), Zoom(f32), CompositionStart, CompositionUpdate(String), CompositionEnd(String), Touch { device_id: TouchDeviceId, id: TouchId, phase: TouchPhase, pos: Pos2, force: f32, },
}
Expand description

An input event generated by the integration.

This only covers events that egui cares about.

Variants

Copy

The integration detected a “copy” event (e.g. Cmd+C).

Cut

The integration detected a “cut” event (e.g. Cmd+X).

Paste(String)

The integration detected a “paste” event (e.g. Cmd+V).

Text(String)

Text input, e.g. via keyboard.

When the user presses enter/return, do not send a Text (just Key::Enter).

Key

Fields

key: Key
pressed: bool

Was it pressed or released?

modifiers: Modifiers

The state of the modifier keys at the time of the event.

A key was pressed or released.

PointerMoved(Pos2)

The mouse or touch moved to a new place.

PointerButton

Fields

pos: Pos2

Where is the pointer?

button: PointerButton

What mouse button? For touches, use PointerButton::Primary.

pressed: bool

Was it the button/touch pressed this frame, or released?

modifiers: Modifiers

The state of the modifier keys at the time of the event.

A mouse button was pressed or released (or a touch started or stopped).

PointerGone

The mouse left the screen, or the last/primary touch input disappeared.

This means there is no longer a cursor on the screen for hovering etc.

On touch-up first send PointerButton{pressed: false, …} followed by PointerLeft.

Scroll(Vec2)

How many points (logical pixels) the user scrolled.

The direction of the vector indicates how to move the content that is being viewed. So if you get positive values, the content being viewed should move to the right and down, revealing new things to the left and up.

A positive X-value indicates the content is being moved right, as when swiping right on a touch-screen or track-pad with natural scrolling.

A positive Y-value indicates the content is being moved down, as when swiping down on a touch-screen or track-pad with natural scrolling.

Shift-scroll should result in horizontal scrolling (it is up to the integrations to do this).

Zoom(f32)

Zoom scale factor this frame (e.g. from ctrl-scroll or pinch gesture).

  • zoom = 1: no change.
  • zoom < 1: pinch together
  • zoom > 1: pinch spread

CompositionStart

IME composition start.

CompositionUpdate(String)

A new IME candidate is being suggested.

CompositionEnd(String)

IME composition ended with this final result.

Touch

Fields

device_id: TouchDeviceId

Hashed device identifier (if available; may be zero). Can be used to separate touches from different devices.

id: TouchId

Unique identifier of a finger/pen. Value is stable from touch down to lift-up

phase: TouchPhase

One of: start move end cancel.

pos: Pos2

Position of the touch (or where the touch was last detected)

force: f32

Describes how hard the touch device was pressed. May always be 0 if the platform does not support pressure sensitivity. The value is in the range from 0.0 (no pressure) to 1.0 (maximum pressure).

On touch screens, report this in addition to Self::PointerMoved, Self::PointerButton, Self::PointerGone

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

Deserialize this value from the given Serde deserializer. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

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.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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