@@ -6,7 +6,6 @@ use std::ffi::CStr;
6
6
use std:: mem;
7
7
use libc:: { c_int, c_void, uint32_t} ;
8
8
use num:: FromPrimitive ;
9
- use num:: ToPrimitive ;
10
9
use std:: ptr;
11
10
use std:: borrow:: ToOwned ;
12
11
use std:: iter:: FromIterator ;
@@ -267,56 +266,56 @@ impl ::EventSubsystem {
267
266
#[ derive( Copy , Clone , Eq , PartialEq , Hash , Debug ) ]
268
267
#[ repr( u32 ) ]
269
268
pub 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 ,
320
319
}
321
320
322
321
impl FromPrimitive for EventType {
@@ -515,15 +514,15 @@ pub enum Event {
515
514
timestamp : u32 ,
516
515
window_id : u32 ,
517
516
which : u32 ,
518
- mouse_btn : Option < MouseButton > ,
517
+ mouse_btn : MouseButton ,
519
518
x : i32 ,
520
519
y : i32
521
520
} ,
522
521
MouseButtonUp {
523
522
timestamp : u32 ,
524
523
window_id : u32 ,
525
524
which : u32 ,
526
- mouse_btn : Option < MouseButton > ,
525
+ mouse_btn : MouseButton ,
527
526
x : i32 ,
528
527
y : i32
529
528
} ,
@@ -746,10 +745,10 @@ fn mk_keysym(scancode: Option<Scancode>,
746
745
keycode : Option < Keycode > ,
747
746
keymod : Mod ) -> syskeyboard:: SDL_Keysym {
748
747
let scancode = scancode
749
- . map ( |sc| sc. to_u32 ( ) . unwrap_or ( 0u32 ) )
748
+ . map ( |sc| sc as scancode :: SDL_Scancode )
750
749
. unwrap_or ( scancode:: SDL_SCANCODE_UNKNOWN ) ;
751
750
let keycode = keycode
752
- . map ( |kc| kc. to_i32 ( ) . unwrap_or ( 0i32 ) )
751
+ . map ( |kc| kc as keycode :: SDL_Keycode )
753
752
. unwrap_or ( keycode:: SDLK_UNKNOWN ) ;
754
753
let keymod = keymod. bits ( ) as u16 ;
755
754
syskeyboard:: SDL_Keysym {
@@ -760,11 +759,6 @@ fn mk_keysym(scancode: Option<Scancode>,
760
759
}
761
760
}
762
761
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
-
768
762
// TODO: Remove this when from_utf8 is updated in Rust
769
763
// This would honestly be nice if it took &self instead of self,
770
764
// but Event::User's raw pointers kind of removes that possibility.
@@ -905,13 +899,12 @@ impl Event {
905
899
x,
906
900
y
907
901
} => {
908
- let button = mk_mouse_button ( mouse_btn) ;
909
902
let event = ll:: SDL_MouseButtonEvent {
910
903
type_ : ll:: SDL_MOUSEBUTTONDOWN ,
911
904
timestamp : timestamp,
912
905
windowID : window_id,
913
906
which : which,
914
- button : button ,
907
+ button : mouse_btn as u8 ,
915
908
state : ll:: SDL_PRESSED ,
916
909
padding1 : 0 ,
917
910
padding2 : 0 ,
@@ -931,13 +924,12 @@ impl Event {
931
924
x,
932
925
y
933
926
} => {
934
- let button = mk_mouse_button ( mouse_btn) ;
935
927
let event = ll:: SDL_MouseButtonEvent {
936
928
type_ : ll:: SDL_MOUSEBUTTONUP ,
937
929
timestamp : timestamp,
938
930
windowID : window_id,
939
931
which : which,
940
- button : button ,
932
+ button : mouse_btn as u8 ,
941
933
state : ll:: SDL_RELEASED ,
942
934
padding1 : 0 ,
943
935
padding2 : 0 ,
@@ -1304,8 +1296,8 @@ impl Event {
1304
1296
Event :: KeyDown {
1305
1297
timestamp : event. timestamp ,
1306
1298
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 ) ,
1309
1301
keymod : keyboard:: Mod :: from_bits ( event. keysym . _mod as SDL_Keymod ) . unwrap ( ) ,
1310
1302
repeat : event. repeat != 0
1311
1303
}
@@ -1316,8 +1308,8 @@ impl Event {
1316
1308
Event :: KeyUp {
1317
1309
timestamp : event. timestamp ,
1318
1310
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 ) ,
1321
1313
keymod : keyboard:: Mod :: from_bits ( event. keysym . _mod as SDL_Keymod ) . unwrap ( ) ,
1322
1314
repeat : event. repeat != 0
1323
1315
}
@@ -1909,7 +1901,7 @@ mod test {
1909
1901
timestamp : 5634 ,
1910
1902
window_id : 2 ,
1911
1903
which : 0 ,
1912
- mouse_btn : Some ( MouseButton :: Left ) ,
1904
+ mouse_btn : MouseButton :: Left ,
1913
1905
x : 543 ,
1914
1906
y : 345 ,
1915
1907
} ;
@@ -1921,7 +1913,7 @@ mod test {
1921
1913
timestamp : 0 ,
1922
1914
window_id : 2 ,
1923
1915
which : 0 ,
1924
- mouse_btn : Some ( MouseButton :: Left ) ,
1916
+ mouse_btn : MouseButton :: Left ,
1925
1917
x : 543 ,
1926
1918
y : 345 ,
1927
1919
0 commit comments