#[non_exhaustive]
pub enum Event {
Show 20 variants Resized { width: i32, height: i32, }, Restored, Minimized, Maximized, FocusGained, FocusLost, KeyPressed { key: Key, }, KeyReleased { key: Key, }, MouseButtonPressed { button: MouseButton, }, MouseButtonReleased { button: MouseButton, }, MouseMoved { position: Vec2<f32>, delta: Vec2<f32>, }, MouseWheelMoved { amount: Vec2<i32>, }, GamepadAdded { id: usize, }, GamepadRemoved { id: usize, }, GamepadButtonPressed { id: usize, button: GamepadButton, }, GamepadButtonReleased { id: usize, button: GamepadButton, }, GamepadAxisMoved { id: usize, axis: GamepadAxis, position: f32, }, GamepadStickMoved { id: usize, stick: GamepadStick, position: Vec2<f32>, }, TextInput { text: String, }, FileDropped { path: PathBuf, },
}
Expand description

Events that can occur while the game is running.

State::event will receive events as they occur.

Examples

The events example demonstrates how to handle events.

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

Resized

Fields

width: i32

The new width of the game window.

height: i32

The new height of the game window.

The game window was resized.

Restored

The game window was restored to normal size and position by the user, either by un-minimizing or un-maximizing.

Minimized

The game window was minimized by the user.

Maximized

The game window was maximized by the user.

FocusGained

The game window was focused by the user.

FocusLost

The game window was un-focused by the user.

KeyPressed

Fields

key: Key

The key that was pressed.

A key on the keyboard was pressed.

KeyReleased

Fields

key: Key

The key that was released.

A key on the keyboard was released.

MouseButtonPressed

Fields

button: MouseButton

The button that was pressed.

A button on the mouse was pressed.

MouseButtonReleased

Fields

button: MouseButton

The button that was released.

A button on the mouse was released.

MouseMoved

Fields

position: Vec2<f32>

The new position of the mouse, in window co-ordinates.

If relative mouse mode is enabled, this field is not guarenteed to update.

delta: Vec2<f32>

The movement of the mouse, relative to the position of the previous MouseMoved event.

The mouse was moved.

MouseWheelMoved

Fields

amount: Vec2<i32>

The amount that the wheel was moved.

Most ‘normal’ mice can only scroll vertically, but some devices can also scroll horizontally. Use the Y component of the returned vector if you don’t care about horizontal scroll.

Positive values correspond to scrolling up/right, negative values correspond to scrolling down/left.

The mouse wheel was moved.

GamepadAdded

Fields

id: usize

The ID that was assigned to the gamepad.

A gamepad was connected to the system.

GamepadRemoved

Fields

id: usize

The ID of the gamepad that was removed.

A gamepad was removed from the system.

GamepadButtonPressed

Fields

id: usize

The ID of the gamepad.

button: GamepadButton

The button that was pressed.

A button on a gamepad was pressed.

GamepadButtonReleased

Fields

id: usize

The ID of the gamepad.

button: GamepadButton

The button that was released.

A button on a gamepad was released.

GamepadAxisMoved

Fields

id: usize

The ID of the gamepad.

axis: GamepadAxis

The axis that was moved.

position: f32

The new position of the axis.

An axis on a gamepad was moved.

GamepadStickMoved

Fields

id: usize

The ID of the gamepad.

stick: GamepadStick

The stick that was moved.

position: Vec2<f32>

The new position of the stick.

A control stick on a gamepad was moved.

TextInput

Fields

text: String

The text that was typed by the user.

The user typed some text.

FileDropped

Fields

path: PathBuf

The path of the file that was dropped.

The user dropped a file into the window.

This event will be fired multiple times if the user dropped multiple files at the same time.

Note that on MacOS, you must edit your info.plist file to set which document types you want your application to support, otherwise no FileDropped events will be fired.

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

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.

Calls U::from(self).

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

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

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.