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

pub enum Event {
    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

Fields of Quit

timestamp: u32
AppTerminating

Fields of AppTerminating

timestamp: u32
AppLowMemory

Fields of AppLowMemory

timestamp: u32
AppWillEnterBackground

Fields of AppWillEnterBackground

timestamp: u32
AppDidEnterBackground

Fields of AppDidEnterBackground

timestamp: u32
AppWillEnterForeground

Fields of AppWillEnterForeground

timestamp: u32
AppDidEnterForeground

Fields of AppDidEnterForeground

timestamp: u32
Window

Fields of Window

timestamp: u32window_id: u32win_event: WindowEvent
KeyDown

Fields of KeyDown

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

Fields of KeyUp

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

Fields of TextEditing

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

Fields of TextInput

timestamp: u32window_id: u32text: String
MouseMotion

Fields of MouseMotion

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

Fields of MouseButtonDown

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

Fields of MouseButtonUp

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

Fields of MouseWheel

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

Fields of JoyAxisMotion

timestamp: u32which: u32

The joystick's id

axis_idx: u8value: i16
JoyBallMotion

Fields of JoyBallMotion

timestamp: u32which: u32

The joystick's id

ball_idx: u8xrel: i16yrel: i16
JoyHatMotion

Fields of JoyHatMotion

timestamp: u32which: u32

The joystick's id

hat_idx: u8state: HatState
JoyButtonDown

Fields of JoyButtonDown

timestamp: u32which: u32

The joystick's id

button_idx: u8
JoyButtonUp

Fields of JoyButtonUp

timestamp: u32which: u32

The joystick's id

button_idx: u8
JoyDeviceAdded

Fields of JoyDeviceAdded

timestamp: u32which: u32

The newly added joystick's joystick_index

JoyDeviceRemoved

Fields of JoyDeviceRemoved

timestamp: u32which: u32

The joystick's id

ControllerAxisMotion

Fields of ControllerAxisMotion

timestamp: u32which: u32

The controller's joystick id

axis: Axisvalue: i16
ControllerButtonDown

Fields of ControllerButtonDown

timestamp: u32which: u32

The controller's joystick id

button: Button
ControllerButtonUp

Fields of ControllerButtonUp

timestamp: u32which: u32

The controller's joystick id

button: Button
ControllerDeviceAdded

Fields of ControllerDeviceAdded

timestamp: u32which: u32

The newly added controller's joystick_index

ControllerDeviceRemoved

Fields of ControllerDeviceRemoved

timestamp: u32which: u32

The controller's joystick id

ControllerDeviceRemapped

Fields of ControllerDeviceRemapped

timestamp: u32which: u32

The controller's joystick id

FingerDown

Fields of FingerDown

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

Fields of FingerUp

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

Fields of FingerMotion

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

Fields of DollarGesture

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

Fields of DollarRecord

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

Fields of MultiGesture

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

Fields of ClipboardUpdate

timestamp: u32
DropFile

Fields of DropFile

timestamp: u32window_id: u32filename: String
DropText

Fields of DropText

timestamp: u32window_id: u32filename: String
DropBegin

Fields of DropBegin

timestamp: u32window_id: u32
DropComplete

Fields of DropComplete

timestamp: u32window_id: u32
AudioDeviceAdded

Fields of AudioDeviceAdded

timestamp: u32which: u32iscapture: bool
AudioDeviceRemoved

Fields of AudioDeviceRemoved

timestamp: u32which: u32iscapture: bool
RenderTargetsReset

Fields of RenderTargetsReset

timestamp: u32
RenderDeviceReset

Fields of RenderDeviceReset

timestamp: u32
User

Fields of User

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

Fields of Unknown

timestamp: u32type_: u32

Methods

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.