Enum me3_framework::overlay::Event
source · [−]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?
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 togetherzoom > 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