@@ -6,7 +6,6 @@ use std::ffi::CStr;
66use std:: mem;
77use libc:: { c_int, c_void, uint32_t} ;
88use num:: FromPrimitive ;
9- use num:: ToPrimitive ;
109use std:: ptr;
1110use std:: borrow:: ToOwned ;
1211use std:: iter:: FromIterator ;
@@ -267,56 +266,56 @@ impl ::EventSubsystem {
267266#[ derive( Copy , Clone , Eq , PartialEq , Hash , Debug ) ]
268267#[ repr( u32 ) ]
269268pub enum EventType {
270- First = ll:: SDL_FIRSTEVENT ,
271-
272- Quit = ll:: SDL_QUIT ,
273- AppTerminating = ll:: SDL_APP_TERMINATING ,
274- AppLowMemory = ll:: SDL_APP_LOWMEMORY ,
275- AppWillEnterBackground = ll:: SDL_APP_WILLENTERBACKGROUND ,
276- AppDidEnterBackground = ll:: SDL_APP_DIDENTERBACKGROUND ,
277- AppWillEnterForeground = ll:: SDL_APP_WILLENTERFOREGROUND ,
278- AppDidEnterForeground = ll:: SDL_APP_DIDENTERFOREGROUND ,
279-
280- Window = ll:: SDL_WINDOWEVENT ,
281- // TODO: SysWM = ll::SDL_SYSWMEVENT,
282-
283- KeyDown = ll:: SDL_KEYDOWN ,
284- KeyUp = ll:: SDL_KEYUP ,
285- TextEditing = ll:: SDL_TEXTEDITING ,
286- TextInput = ll:: SDL_TEXTINPUT ,
287-
288- MouseMotion = ll:: SDL_MOUSEMOTION ,
289- MouseButtonDown = ll:: SDL_MOUSEBUTTONDOWN ,
290- MouseButtonUp = ll:: SDL_MOUSEBUTTONUP ,
291- MouseWheel = ll:: SDL_MOUSEWHEEL ,
292-
293- JoyAxisMotion = ll:: SDL_JOYAXISMOTION ,
294- JoyBallMotion = ll:: SDL_JOYBALLMOTION ,
295- JoyHatMotion = ll:: SDL_JOYHATMOTION ,
296- JoyButtonDown = ll:: SDL_JOYBUTTONDOWN ,
297- JoyButtonUp = ll:: SDL_JOYBUTTONUP ,
298- JoyDeviceAdded = ll:: SDL_JOYDEVICEADDED ,
299- JoyDeviceRemoved = ll:: SDL_JOYDEVICEREMOVED ,
300-
301- ControllerAxisMotion = ll:: SDL_CONTROLLERAXISMOTION ,
302- ControllerButtonDown = ll:: SDL_CONTROLLERBUTTONDOWN ,
303- ControllerButtonUp = ll:: SDL_CONTROLLERBUTTONUP ,
304- ControllerDeviceAdded = ll:: SDL_CONTROLLERDEVICEADDED ,
305- ControllerDeviceRemoved = ll:: SDL_CONTROLLERDEVICEREMOVED ,
306- ControllerDeviceRemapped = ll:: SDL_CONTROLLERDEVICEREMAPPED ,
307-
308- FingerDown = ll:: SDL_FINGERDOWN ,
309- FingerUp = ll:: SDL_FINGERUP ,
310- FingerMotion = ll:: SDL_FINGERMOTION ,
311- DollarGesture = ll:: SDL_DOLLARGESTURE ,
312- DollarRecord = ll:: SDL_DOLLARRECORD ,
313- MultiGesture = ll:: SDL_MULTIGESTURE ,
314-
315- ClipboardUpdate = ll:: SDL_CLIPBOARDUPDATE ,
316- DropFile = ll:: SDL_DROPFILE ,
317-
318- User = ll:: SDL_USEREVENT ,
319- Last = ll:: SDL_LASTEVENT ,
269+ First = ll:: SDL_FIRSTEVENT as u32 ,
270+
271+ Quit = ll:: SDL_QUIT as u32 ,
272+ AppTerminating = ll:: SDL_APP_TERMINATING as u32 ,
273+ AppLowMemory = ll:: SDL_APP_LOWMEMORY as u32 ,
274+ AppWillEnterBackground = ll:: SDL_APP_WILLENTERBACKGROUND as u32 ,
275+ AppDidEnterBackground = ll:: SDL_APP_DIDENTERBACKGROUND as u32 ,
276+ AppWillEnterForeground = ll:: SDL_APP_WILLENTERFOREGROUND as u32 ,
277+ AppDidEnterForeground = ll:: SDL_APP_DIDENTERFOREGROUND as u32 ,
278+
279+ Window = ll:: SDL_WINDOWEVENT as u32 ,
280+ // TODO: SysWM = ll::SDL_SYSWMEVENT as u32 ,
281+
282+ KeyDown = ll:: SDL_KEYDOWN as u32 ,
283+ KeyUp = ll:: SDL_KEYUP as u32 ,
284+ TextEditing = ll:: SDL_TEXTEDITING as u32 ,
285+ TextInput = ll:: SDL_TEXTINPUT as u32 ,
286+
287+ MouseMotion = ll:: SDL_MOUSEMOTION as u32 ,
288+ MouseButtonDown = ll:: SDL_MOUSEBUTTONDOWN as u32 ,
289+ MouseButtonUp = ll:: SDL_MOUSEBUTTONUP as u32 ,
290+ MouseWheel = ll:: SDL_MOUSEWHEEL as u32 ,
291+
292+ JoyAxisMotion = ll:: SDL_JOYAXISMOTION as u32 ,
293+ JoyBallMotion = ll:: SDL_JOYBALLMOTION as u32 ,
294+ JoyHatMotion = ll:: SDL_JOYHATMOTION as u32 ,
295+ JoyButtonDown = ll:: SDL_JOYBUTTONDOWN as u32 ,
296+ JoyButtonUp = ll:: SDL_JOYBUTTONUP as u32 ,
297+ JoyDeviceAdded = ll:: SDL_JOYDEVICEADDED as u32 ,
298+ JoyDeviceRemoved = ll:: SDL_JOYDEVICEREMOVED as u32 ,
299+
300+ ControllerAxisMotion = ll:: SDL_CONTROLLERAXISMOTION as u32 ,
301+ ControllerButtonDown = ll:: SDL_CONTROLLERBUTTONDOWN as u32 ,
302+ ControllerButtonUp = ll:: SDL_CONTROLLERBUTTONUP as u32 ,
303+ ControllerDeviceAdded = ll:: SDL_CONTROLLERDEVICEADDED as u32 ,
304+ ControllerDeviceRemoved = ll:: SDL_CONTROLLERDEVICEREMOVED as u32 ,
305+ ControllerDeviceRemapped = ll:: SDL_CONTROLLERDEVICEREMAPPED as u32 ,
306+
307+ FingerDown = ll:: SDL_FINGERDOWN as u32 ,
308+ FingerUp = ll:: SDL_FINGERUP as u32 ,
309+ FingerMotion = ll:: SDL_FINGERMOTION as u32 ,
310+ DollarGesture = ll:: SDL_DOLLARGESTURE as u32 ,
311+ DollarRecord = ll:: SDL_DOLLARRECORD as u32 ,
312+ MultiGesture = ll:: SDL_MULTIGESTURE as u32 ,
313+
314+ ClipboardUpdate = ll:: SDL_CLIPBOARDUPDATE as u32 ,
315+ DropFile = ll:: SDL_DROPFILE as u32 ,
316+
317+ User = ll:: SDL_USEREVENT as u32 ,
318+ Last = ll:: SDL_LASTEVENT as u32 ,
320319}
321320
322321impl FromPrimitive for EventType {
@@ -515,15 +514,15 @@ pub enum Event {
515514 timestamp : u32 ,
516515 window_id : u32 ,
517516 which : u32 ,
518- mouse_btn : Option < MouseButton > ,
517+ mouse_btn : MouseButton ,
519518 x : i32 ,
520519 y : i32
521520 } ,
522521 MouseButtonUp {
523522 timestamp : u32 ,
524523 window_id : u32 ,
525524 which : u32 ,
526- mouse_btn : Option < MouseButton > ,
525+ mouse_btn : MouseButton ,
527526 x : i32 ,
528527 y : i32
529528 } ,
@@ -746,10 +745,10 @@ fn mk_keysym(scancode: Option<Scancode>,
746745 keycode : Option < Keycode > ,
747746 keymod : Mod ) -> syskeyboard:: SDL_Keysym {
748747 let scancode = scancode
749- . map ( |sc| sc. to_u32 ( ) . unwrap_or ( 0u32 ) )
748+ . map ( |sc| sc as scancode :: SDL_Scancode )
750749 . unwrap_or ( scancode:: SDL_SCANCODE_UNKNOWN ) ;
751750 let keycode = keycode
752- . map ( |kc| kc. to_i32 ( ) . unwrap_or ( 0i32 ) )
751+ . map ( |kc| kc as keycode :: SDL_Keycode )
753752 . unwrap_or ( keycode:: SDLK_UNKNOWN ) ;
754753 let keymod = keymod. bits ( ) as u16 ;
755754 syskeyboard:: SDL_Keysym {
@@ -760,11 +759,6 @@ fn mk_keysym(scancode: Option<Scancode>,
760759 }
761760}
762761
763- /// Helper function is only to unwrap a mouse_button to u8
764- fn mk_mouse_button ( mouse_button : Option < MouseButton > ) -> u8 {
765- mouse_button. unwrap ( ) . to_ll ( ) . unwrap ( )
766- }
767-
768762// TODO: Remove this when from_utf8 is updated in Rust
769763// This would honestly be nice if it took &self instead of self,
770764// but Event::User's raw pointers kind of removes that possibility.
@@ -905,13 +899,12 @@ impl Event {
905899 x,
906900 y
907901 } => {
908- let button = mk_mouse_button ( mouse_btn) ;
909902 let event = ll:: SDL_MouseButtonEvent {
910903 type_ : ll:: SDL_MOUSEBUTTONDOWN ,
911904 timestamp : timestamp,
912905 windowID : window_id,
913906 which : which,
914- button : button ,
907+ button : mouse_btn as u8 ,
915908 state : ll:: SDL_PRESSED ,
916909 padding1 : 0 ,
917910 padding2 : 0 ,
@@ -931,13 +924,12 @@ impl Event {
931924 x,
932925 y
933926 } => {
934- let button = mk_mouse_button ( mouse_btn) ;
935927 let event = ll:: SDL_MouseButtonEvent {
936928 type_ : ll:: SDL_MOUSEBUTTONUP ,
937929 timestamp : timestamp,
938930 windowID : window_id,
939931 which : which,
940- button : button ,
932+ button : mouse_btn as u8 ,
941933 state : ll:: SDL_RELEASED ,
942934 padding1 : 0 ,
943935 padding2 : 0 ,
@@ -1304,8 +1296,8 @@ impl Event {
13041296 Event :: KeyDown {
13051297 timestamp : event. timestamp ,
13061298 window_id : event. windowID ,
1307- keycode : FromPrimitive :: from_i32 ( event. keysym . sym ) ,
1308- scancode : FromPrimitive :: from_u32 ( event. keysym . scancode ) ,
1299+ keycode : Keycode :: from_i32 ( event. keysym . sym as i32 ) ,
1300+ scancode : Scancode :: from_i32 ( event. keysym . scancode as i32 ) ,
13091301 keymod : keyboard:: Mod :: from_bits ( event. keysym . _mod as SDL_Keymod ) . unwrap ( ) ,
13101302 repeat : event. repeat != 0
13111303 }
@@ -1316,8 +1308,8 @@ impl Event {
13161308 Event :: KeyUp {
13171309 timestamp : event. timestamp ,
13181310 window_id : event. windowID ,
1319- keycode : FromPrimitive :: from_i32 ( event. keysym . sym ) ,
1320- scancode : FromPrimitive :: from_u32 ( event. keysym . scancode ) ,
1311+ keycode : Keycode :: from_i32 ( event. keysym . sym as i32 ) ,
1312+ scancode : Scancode :: from_i32 ( event. keysym . scancode as i32 ) ,
13211313 keymod : keyboard:: Mod :: from_bits ( event. keysym . _mod as SDL_Keymod ) . unwrap ( ) ,
13221314 repeat : event. repeat != 0
13231315 }
@@ -1909,7 +1901,7 @@ mod test {
19091901 timestamp : 5634 ,
19101902 window_id : 2 ,
19111903 which : 0 ,
1912- mouse_btn : Some ( MouseButton :: Left ) ,
1904+ mouse_btn : MouseButton :: Left ,
19131905 x : 543 ,
19141906 y : 345 ,
19151907 } ;
@@ -1921,7 +1913,7 @@ mod test {
19211913 timestamp : 0 ,
19221914 window_id : 2 ,
19231915 which : 0 ,
1924- mouse_btn : Some ( MouseButton :: Left ) ,
1916+ mouse_btn : MouseButton :: Left ,
19251917 x : 543 ,
19261918 y : 345 ,
19271919
0 commit comments