pub enum Event {
Show 47 variants Quit { timestamp: u32, }, AppTerminating { timestamp: u32, }, AppLowMemory { timestamp: u32, }, AppWillEnterBackground { timestamp: u32, }, AppDidEnterBackground { timestamp: u32, }, AppWillEnterForeground { timestamp: u32, }, AppDidEnterForeground { timestamp: u32, }, Display { timestamp: u32, display_index: i32, display_event: DisplayEvent, }, Window { timestamp: u32, window_id: u32, win_event: WindowEvent, }, KeyDown { timestamp: u32, window_id: u32, keycode: Option<Keycode>, scancode: Option<Scancode>, keymod: Mod, repeat: bool, }, KeyUp { timestamp: u32, window_id: u32, keycode: Option<Keycode>, scancode: Option<Scancode>, keymod: Mod, repeat: bool, }, TextEditing { timestamp: u32, window_id: u32, text: String, start: i32, length: i32, }, TextInput { timestamp: u32, window_id: u32, text: String, }, MouseMotion { timestamp: u32, window_id: u32, which: u32, mousestate: MouseState, x: i32, y: i32, xrel: i32, yrel: i32, }, MouseButtonDown { timestamp: u32, window_id: u32, which: u32, mouse_btn: MouseButton, clicks: u8, x: i32, y: i32, }, MouseButtonUp { timestamp: u32, window_id: u32, which: u32, mouse_btn: MouseButton, clicks: u8, x: i32, y: i32, }, MouseWheel { timestamp: u32, window_id: u32, which: u32, x: i32, y: i32, direction: MouseWheelDirection, }, JoyAxisMotion { timestamp: u32, which: u32, axis_idx: u8, value: i16, }, JoyBallMotion { timestamp: u32, which: u32, ball_idx: u8, xrel: i16, yrel: i16, }, JoyHatMotion { timestamp: u32, which: u32, hat_idx: u8, state: HatState, }, JoyButtonDown { timestamp: u32, which: u32, button_idx: u8, }, JoyButtonUp { timestamp: u32, which: u32, button_idx: u8, }, JoyDeviceAdded { timestamp: u32, which: u32, }, JoyDeviceRemoved { timestamp: u32, which: u32, }, ControllerAxisMotion { timestamp: u32, which: u32, axis: Axis, value: i16, }, ControllerButtonDown { timestamp: u32, which: u32, button: Button, }, ControllerButtonUp { timestamp: u32, which: u32, button: Button, }, ControllerDeviceAdded { timestamp: u32, which: u32, }, ControllerDeviceRemoved { timestamp: u32, which: u32, }, ControllerDeviceRemapped { timestamp: u32, which: u32, }, FingerDown { timestamp: u32, touch_id: i64, finger_id: i64, x: f32, y: f32, dx: f32, dy: f32, pressure: f32, }, FingerUp { timestamp: u32, touch_id: i64, finger_id: i64, x: f32, y: f32, dx: f32, dy: f32, pressure: f32, }, FingerMotion { timestamp: u32, touch_id: i64, finger_id: i64, x: f32, y: f32, dx: f32, dy: f32, pressure: f32, }, DollarGesture { timestamp: u32, touch_id: i64, gesture_id: i64, num_fingers: u32, error: f32, x: f32, y: f32, }, DollarRecord { timestamp: u32, touch_id: i64, gesture_id: i64, num_fingers: u32, error: f32, x: f32, y: f32, }, MultiGesture { timestamp: u32, touch_id: i64, d_theta: f32, d_dist: f32, x: f32, y: f32, num_fingers: u16, }, ClipboardUpdate { timestamp: u32, }, DropFile { timestamp: u32, window_id: u32, filename: String, }, DropText { timestamp: u32, window_id: u32, filename: String, }, DropBegin { timestamp: u32, window_id: u32, }, DropComplete { timestamp: u32, window_id: u32, }, AudioDeviceAdded { timestamp: u32, which: u32, iscapture: bool, }, AudioDeviceRemoved { timestamp: u32, which: u32, iscapture: bool, }, RenderTargetsReset { timestamp: u32, }, RenderDeviceReset { timestamp: u32, }, User { timestamp: u32, window_id: u32, type_: u32, code: i32, data1: *mut c_void, data2: *mut c_void, }, Unknown { timestamp: u32, type_: u32, },
}
Expand description

Different event types.

Variants

Quit

Fields

timestamp: u32

AppTerminating

Fields

timestamp: u32

AppLowMemory

Fields

timestamp: u32

AppWillEnterBackground

Fields

timestamp: u32

AppDidEnterBackground

Fields

timestamp: u32

AppWillEnterForeground

Fields

timestamp: u32

AppDidEnterForeground

Fields

timestamp: u32

Display

Fields

timestamp: u32
display_index: i32
display_event: DisplayEvent

Window

Fields

timestamp: u32
window_id: u32
win_event: WindowEvent

KeyDown

Fields

timestamp: u32
window_id: u32
keycode: Option<Keycode>
scancode: Option<Scancode>
keymod: Mod
repeat: bool

KeyUp

Fields

timestamp: u32
window_id: u32
keycode: Option<Keycode>
scancode: Option<Scancode>
keymod: Mod
repeat: bool

TextEditing

Fields

timestamp: u32
window_id: u32
text: String
start: i32
length: i32

TextInput

Fields

timestamp: u32
window_id: u32
text: String

MouseMotion

Fields

timestamp: u32
window_id: u32
which: u32
mousestate: MouseState
x: i32
y: i32
xrel: i32
yrel: i32

MouseButtonDown

Fields

timestamp: u32
window_id: u32
which: u32
mouse_btn: MouseButton
clicks: u8
x: i32
y: i32

MouseButtonUp

Fields

timestamp: u32
window_id: u32
which: u32
mouse_btn: MouseButton
clicks: u8
x: i32
y: i32

MouseWheel

Fields

timestamp: u32
window_id: u32
which: u32
x: i32
y: i32

JoyAxisMotion

Fields

timestamp: u32
which: u32

The joystick’s id

axis_idx: u8
value: i16

JoyBallMotion

Fields

timestamp: u32
which: u32

The joystick’s id

ball_idx: u8
xrel: i16
yrel: i16

JoyHatMotion

Fields

timestamp: u32
which: u32

The joystick’s id

hat_idx: u8
state: HatState

JoyButtonDown

Fields

timestamp: u32
which: u32

The joystick’s id

button_idx: u8

JoyButtonUp

Fields

timestamp: u32
which: u32

The joystick’s id

button_idx: u8

JoyDeviceAdded

Fields

timestamp: u32
which: u32

The newly added joystick’s joystick_index

JoyDeviceRemoved

Fields

timestamp: u32
which: u32

The joystick’s id

ControllerAxisMotion

Fields

timestamp: u32
which: u32

The controller’s joystick id

axis: Axis
value: i16

ControllerButtonDown

Fields

timestamp: u32
which: u32

The controller’s joystick id

button: Button

ControllerButtonUp

Fields

timestamp: u32
which: u32

The controller’s joystick id

button: Button

ControllerDeviceAdded

Fields

timestamp: u32
which: u32

The newly added controller’s joystick_index

ControllerDeviceRemoved

Fields

timestamp: u32
which: u32

The controller’s joystick id

ControllerDeviceRemapped

Fields

timestamp: u32
which: u32

The controller’s joystick id

FingerDown

Fields

timestamp: u32
touch_id: i64
finger_id: i64
x: f32
y: f32
dx: f32
dy: f32
pressure: f32

FingerUp

Fields

timestamp: u32
touch_id: i64
finger_id: i64
x: f32
y: f32
dx: f32
dy: f32
pressure: f32

FingerMotion

Fields

timestamp: u32
touch_id: i64
finger_id: i64
x: f32
y: f32
dx: f32
dy: f32
pressure: f32

DollarGesture

Fields

timestamp: u32
touch_id: i64
gesture_id: i64
num_fingers: u32
error: f32
x: f32
y: f32

DollarRecord

Fields

timestamp: u32
touch_id: i64
gesture_id: i64
num_fingers: u32
error: f32
x: f32
y: f32

MultiGesture

Fields

timestamp: u32
touch_id: i64
d_theta: f32
d_dist: f32
x: f32
y: f32
num_fingers: u16

ClipboardUpdate

Fields

timestamp: u32

DropFile

Fields

timestamp: u32
window_id: u32
filename: String

DropText

Fields

timestamp: u32
window_id: u32
filename: String

DropBegin

Fields

timestamp: u32
window_id: u32

DropComplete

Fields

timestamp: u32
window_id: u32

AudioDeviceAdded

Fields

timestamp: u32
which: u32
iscapture: bool

AudioDeviceRemoved

Fields

timestamp: u32
which: u32
iscapture: bool

RenderTargetsReset

Fields

timestamp: u32

RenderDeviceReset

Fields

timestamp: u32

User

Fields

timestamp: u32
window_id: u32
type_: u32
code: i32
data1: *mut c_void
data2: *mut c_void

Unknown

Fields

timestamp: u32
type_: u32

Implementations

Returns true if they are the same “kind” of events.

Example:
use sdl2::event::Event;

let ev1 = Event::JoyButtonDown {
    timestamp: 0,
    which: 0,
    button_idx: 0,
};
let ev2 = Event::JoyButtonDown {
    timestamp: 1,
    which: 1,
    button_idx: 1,
};

assert!(ev1 != ev2); // The events aren't equal (they contain different values).
assert!(ev1.is_same_kind_as(&ev2)); // But they are of the same kind!

Returns the timestamp field of the event.

Example
use sdl2::event::Event;

let ev = Event::JoyButtonDown {
    timestamp: 12,
    which: 0,
    button_idx: 0,
};
assert!(ev.get_timestamp() == 12);

Returns the window_id field of the event if it’s present (not all events have it!).

Example
use sdl2::event::Event;

let ev = Event::JoyButtonDown {
    timestamp: 0,
    which: 0,
    button_idx: 0,
};
assert!(ev.get_window_id() == None);

let another_ev = Event::DropBegin {
    timestamp: 0,
    window_id: 3,
};
assert!(another_ev.get_window_id() == Some(3));

Returns true if this is a window event.

Example
use sdl2::event::Event;

let ev = Event::Quit {
    timestamp: 0,
};
assert!(ev.is_window());

let ev = Event::AppLowMemory {
    timestamp: 0,
};
assert!(ev.is_window());

let another_ev = Event::TextInput {
    timestamp: 0,
    window_id: 0,
    text: String::new(),
};
assert!(another_ev.is_window() == false); // Not a window event!

Returns true if this is a keyboard event.

Example
use sdl2::event::Event;
use sdl2::keyboard::Mod;

let ev = Event::KeyDown {
    timestamp: 0,
    window_id: 0,
    keycode: None,
    scancode: None,
    keymod: Mod::empty(),
    repeat: false,
};
assert!(ev.is_keyboard());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_keyboard() == false); // Not a keyboard event!

Returns true if this is a text event.

Example
use sdl2::event::Event;

let ev = Event::TextInput {
    timestamp: 0,
    window_id: 0,
    text: String::new(),
};
assert!(ev.is_text());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_text() == false); // Not a text event!

Returns true if this is a mouse event.

Example
use sdl2::event::Event;
use sdl2::mouse::MouseWheelDirection;

let ev = Event::MouseWheel {
    timestamp: 0,
    window_id: 0,
    which: 0,
    x: 0,
    y: 0,
    direction: MouseWheelDirection::Normal,
};
assert!(ev.is_mouse());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_mouse() == false); // Not a mouse event!

Returns true if this is a controller event.

Example
use sdl2::event::Event;

let ev = Event::ControllerDeviceAdded {
    timestamp: 0,
    which: 0,
};
assert!(ev.is_controller());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_controller() == false); // Not a controller event!

Returns true if this is a joy event.

Example
use sdl2::event::Event;

let ev = Event::JoyButtonUp {
    timestamp: 0,
    which: 0,
    button_idx: 0,
};
assert!(ev.is_joy());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_joy() == false); // Not a joy event!

Returns true if this is a finger event.

Example
use sdl2::event::Event;

let ev = Event::FingerMotion {
    timestamp: 0,
    touch_id: 0,
    finger_id: 0,
    x: 0.,
    y: 0.,
    dx: 0.,
    dy: 0.,
    pressure: 0.,
};
assert!(ev.is_finger());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_finger() == false); // Not a finger event!

Returns true if this is a dollar event.

Example
use sdl2::event::Event;

let ev = Event::DollarGesture {
    timestamp: 0,
    touch_id: 0,
    gesture_id: 0,
    num_fingers: 0,
    error: 0.,
    x: 0.,
    y: 0.,
};
assert!(ev.is_dollar());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_dollar() == false); // Not a dollar event!

Returns true if this is a drop event.

Example
use sdl2::event::Event;

let ev = Event::DropBegin {
    timestamp: 0,
    window_id: 3,
};
assert!(ev.is_drop());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_drop() == false); // Not a drop event!

Returns true if this is an audio event.

Example
use sdl2::event::Event;

let ev = Event::AudioDeviceAdded {
    timestamp: 0,
    which: 3,
    iscapture: false,
};
assert!(ev.is_audio());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_audio() == false); // Not an audio event!

Returns true if this is a render event.

Example
use sdl2::event::Event;

let ev = Event::RenderTargetsReset {
    timestamp: 0,
};
assert!(ev.is_render());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_render() == false); // Not a render event!

Returns true if this is a user event.

Example
use sdl2::event::Event;

let ev = Event::User {
    timestamp: 0,
    window_id: 0,
    type_: 0,
    code: 0,
    data1: ::std::ptr::null_mut(),
    data2: ::std::ptr::null_mut(),
};
assert!(ev.is_user());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_user() == false); // Not a user event!

Returns true if this is an unknown event.

Example
use sdl2::event::Event;

let ev = Event::Unknown {
    timestamp: 0,
    type_: 0,
};
assert!(ev.is_unknown());

let another_ev = Event::Quit {
    timestamp: 0,
};
assert!(another_ev.is_unknown() == false); // Not an unknown event!

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

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

This method tests for !=.

This does not auto-derive because User’s data fields can be used to store pointers to types that are !Send. Dereferencing these as pointers requires using unsafe and ensuring your own safety guarantees.

This does not auto-derive because User’s data fields can be used to store pointers to types that are !Sync. Dereferencing these as pointers requires using unsafe and ensuring your own safety guarantees.

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 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.