Enum sdl2::event::Event[][src]

pub enum Event {
Show variants Quit { timestamp: u32, }, AppTerminating { timestamp: u32, }, AppLowMemory { timestamp: u32, }, AppWillEnterBackground { timestamp: u32, }, AppDidEnterBackground { timestamp: u32, }, AppWillEnterForeground { timestamp: u32, }, AppDidEnterForeground { timestamp: u32, }, 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, },
}

Different event types.

Variants

Quit
Show fields

Fields of Quit

timestamp: u32
AppTerminating
Show fields

Fields of AppTerminating

timestamp: u32
AppLowMemory
Show fields

Fields of AppLowMemory

timestamp: u32
AppWillEnterBackground
Show fields

Fields of AppWillEnterBackground

timestamp: u32
AppDidEnterBackground
Show fields

Fields of AppDidEnterBackground

timestamp: u32
AppWillEnterForeground
Show fields

Fields of AppWillEnterForeground

timestamp: u32
AppDidEnterForeground
Show fields

Fields of AppDidEnterForeground

timestamp: u32
Window
Show fields

Fields of Window

timestamp: u32window_id: u32win_event: WindowEvent
KeyDown
Show fields

Fields of KeyDown

timestamp: u32window_id: u32keycode: Option<Keycode>scancode: Option<Scancode>keymod: Modrepeat: bool
KeyUp
Show fields

Fields of KeyUp

timestamp: u32window_id: u32keycode: Option<Keycode>scancode: Option<Scancode>keymod: Modrepeat: bool
TextEditing
Show fields

Fields of TextEditing

timestamp: u32window_id: u32text: Stringstart: i32length: i32
TextInput
Show fields

Fields of TextInput

timestamp: u32window_id: u32text: String
MouseMotion
Show fields

Fields of MouseMotion

timestamp: u32window_id: u32which: u32mousestate: MouseStatex: i32y: i32xrel: i32yrel: i32
MouseButtonDown
Show fields

Fields of MouseButtonDown

timestamp: u32window_id: u32which: u32mouse_btn: MouseButtonclicks: u8x: i32y: i32
MouseButtonUp
Show fields

Fields of MouseButtonUp

timestamp: u32window_id: u32which: u32mouse_btn: MouseButtonclicks: u8x: i32y: i32
MouseWheel
Show fields

Fields of MouseWheel

timestamp: u32window_id: u32which: u32x: i32y: i32direction: MouseWheelDirection
JoyAxisMotion
Show fields

Fields of JoyAxisMotion

timestamp: u32which: u32

The joystick’s id

axis_idx: u8value: i16
JoyBallMotion
Show fields

Fields of JoyBallMotion

timestamp: u32which: u32

The joystick’s id

ball_idx: u8xrel: i16yrel: i16
JoyHatMotion
Show fields

Fields of JoyHatMotion

timestamp: u32which: u32

The joystick’s id

hat_idx: u8state: HatState
JoyButtonDown
Show fields

Fields of JoyButtonDown

timestamp: u32which: u32

The joystick’s id

button_idx: u8
JoyButtonUp
Show fields

Fields of JoyButtonUp

timestamp: u32which: u32

The joystick’s id

button_idx: u8
JoyDeviceAdded
Show fields

Fields of JoyDeviceAdded

timestamp: u32which: u32

The newly added joystick’s joystick_index

JoyDeviceRemoved
Show fields

Fields of JoyDeviceRemoved

timestamp: u32which: u32

The joystick’s id

ControllerAxisMotion
Show fields

Fields of ControllerAxisMotion

timestamp: u32which: u32

The controller’s joystick id

axis: Axisvalue: i16
ControllerButtonDown
Show fields

Fields of ControllerButtonDown

timestamp: u32which: u32

The controller’s joystick id

button: Button
ControllerButtonUp
Show fields

Fields of ControllerButtonUp

timestamp: u32which: u32

The controller’s joystick id

button: Button
ControllerDeviceAdded
Show fields

Fields of ControllerDeviceAdded

timestamp: u32which: u32

The newly added controller’s joystick_index

ControllerDeviceRemoved
Show fields

Fields of ControllerDeviceRemoved

timestamp: u32which: u32

The controller’s joystick id

ControllerDeviceRemapped
Show fields

Fields of ControllerDeviceRemapped

timestamp: u32which: u32

The controller’s joystick id

FingerDown
Show fields

Fields of FingerDown

timestamp: u32touch_id: i64finger_id: i64x: f32y: f32dx: f32dy: f32pressure: f32
FingerUp
Show fields

Fields of FingerUp

timestamp: u32touch_id: i64finger_id: i64x: f32y: f32dx: f32dy: f32pressure: f32
FingerMotion
Show fields

Fields of FingerMotion

timestamp: u32touch_id: i64finger_id: i64x: f32y: f32dx: f32dy: f32pressure: f32
DollarGesture
Show fields

Fields of DollarGesture

timestamp: u32touch_id: i64gesture_id: i64num_fingers: u32error: f32x: f32y: f32
DollarRecord
Show fields

Fields of DollarRecord

timestamp: u32touch_id: i64gesture_id: i64num_fingers: u32error: f32x: f32y: f32
MultiGesture
Show fields

Fields of MultiGesture

timestamp: u32touch_id: i64d_theta: f32d_dist: f32x: f32y: f32num_fingers: u16
ClipboardUpdate
Show fields

Fields of ClipboardUpdate

timestamp: u32
DropFile
Show fields

Fields of DropFile

timestamp: u32window_id: u32filename: String
DropText
Show fields

Fields of DropText

timestamp: u32window_id: u32filename: String
DropBegin
Show fields

Fields of DropBegin

timestamp: u32window_id: u32
DropComplete
Show fields

Fields of DropComplete

timestamp: u32window_id: u32
AudioDeviceAdded
Show fields

Fields of AudioDeviceAdded

timestamp: u32which: u32iscapture: bool
AudioDeviceRemoved
Show fields

Fields of AudioDeviceRemoved

timestamp: u32which: u32iscapture: bool
RenderTargetsReset
Show fields

Fields of RenderTargetsReset

timestamp: u32
RenderDeviceReset
Show fields

Fields of RenderDeviceReset

timestamp: u32
User
Show fields

Fields of User

timestamp: u32window_id: u32type_: u32code: i32data1: *mut c_voiddata2: *mut c_void
Unknown
Show fields

Fields of Unknown

timestamp: u32type_: u32

Implementations

impl Event[src]

pub fn is_user_event(&self) -> bool[src]

pub fn as_user_event_type<T: Any>(&self) -> Option<T>[src]

pub fn is_same_kind_as(&self, other: &Event) -> bool[src]

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!

pub fn get_timestamp(&self) -> u32[src]

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);

pub fn get_window_id(&self) -> Option<u32>[src]

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));

pub fn is_window(&self) -> bool[src]

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!

pub fn is_keyboard(&self) -> bool[src]

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!

pub fn is_text(&self) -> bool[src]

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!

pub fn is_mouse(&self) -> bool[src]

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!

pub fn is_controller(&self) -> bool[src]

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!

pub fn is_joy(&self) -> bool[src]

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!

pub fn is_finger(&self) -> bool[src]

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!

pub fn is_dollar(&self) -> bool[src]

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!

pub fn is_drop(&self) -> bool[src]

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!

pub fn is_audio(&self) -> bool[src]

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!

pub fn is_render(&self) -> bool[src]

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!

pub fn is_user(&self) -> bool[src]

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!

pub fn is_unknown(&self) -> bool[src]

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

impl Clone for Event[src]

impl Debug for Event[src]

impl PartialEq<Event> for Event[src]

impl Send for Event[src]

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.

impl StructuralPartialEq for Event[src]

impl Sync for Event[src]

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

impl RefUnwindSafe for Event

impl Unpin for Event

impl UnwindSafe for Event

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.