Enum sdl2::event::Event [−][src]
pub enum Event {
Show 46 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,
},
}Expand description
Different event types.
Variants
Fields of Quit
timestamp: u32Fields of AppTerminating
timestamp: u32Fields of AppLowMemory
timestamp: u32Fields of AppWillEnterBackground
timestamp: u32Fields of AppDidEnterBackground
timestamp: u32Fields of AppWillEnterForeground
timestamp: u32Fields of AppDidEnterForeground
timestamp: u32Fields of Window
Fields of KeyDown
Fields of KeyUp
Fields of MouseMotion
Fields of MouseButtonDown
Fields of MouseButtonUp
Fields of MouseWheel
Fields of ControllerAxisMotion
Fields of FingerDown
Fields of FingerMotion
Fields of DollarGesture
Fields of DollarRecord
Fields of MultiGesture
Fields of ClipboardUpdate
timestamp: u32Fields of RenderTargetsReset
timestamp: u32Fields of RenderDeviceReset
timestamp: u32Implementations
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
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
Mutably borrows from an owned value. Read more