1111use serde:: { Serialize , Deserialize } ;
1212use glutin:: {
1313 dpi:: { LogicalSize , PhysicalPosition } ,
14- event:: { self as glutin_event, ElementState , KeyboardInput , VirtualKeyCode , WindowEvent } ,
14+ event:: { self as glutin_event, WindowEvent , KeyboardInput } ,
1515} ;
1616
1717use crate :: Point ;
@@ -113,10 +113,10 @@ pub enum PressedState {
113113
114114impl PressedState {
115115 #[ cfg_attr( any( feature = "test" , test) , allow( dead_code) ) ]
116- fn from_state ( state : ElementState ) -> PressedState {
116+ fn from_state ( state : glutin_event :: ElementState ) -> PressedState {
117117 match state {
118- ElementState :: Pressed => PressedState :: Pressed ,
119- ElementState :: Released => PressedState :: Released ,
118+ glutin_event :: ElementState :: Pressed => PressedState :: Pressed ,
119+ glutin_event :: ElementState :: Released => PressedState :: Released ,
120120 }
121121 }
122122}
@@ -262,123 +262,179 @@ pub enum Key {
262262
263263impl Key {
264264 #[ cfg_attr( any( feature = "test" , test) , allow( dead_code) ) ]
265- fn from_keycode ( key : VirtualKeyCode ) -> Option < Self > {
265+ fn from_keycode ( key : glutin_event:: VirtualKeyCode ) -> Option < Self > {
266+ use glutin_event:: VirtualKeyCode :: * ;
267+ #[ deny( unreachable_patterns, unused_variables) ]
266268 Some ( match key {
267- VirtualKeyCode :: Key1 => Key :: Num1 ,
268- VirtualKeyCode :: Key2 => Key :: Num2 ,
269- VirtualKeyCode :: Key3 => Key :: Num3 ,
270- VirtualKeyCode :: Key4 => Key :: Num4 ,
271- VirtualKeyCode :: Key5 => Key :: Num5 ,
272- VirtualKeyCode :: Key6 => Key :: Num6 ,
273- VirtualKeyCode :: Key7 => Key :: Num7 ,
274- VirtualKeyCode :: Key8 => Key :: Num8 ,
275- VirtualKeyCode :: Key9 => Key :: Num9 ,
276- VirtualKeyCode :: Key0 => Key :: Num0 ,
277-
278- VirtualKeyCode :: A => Key :: A ,
279- VirtualKeyCode :: B => Key :: B ,
280- VirtualKeyCode :: C => Key :: C ,
281- VirtualKeyCode :: D => Key :: D ,
282- VirtualKeyCode :: E => Key :: E ,
283- VirtualKeyCode :: F => Key :: F ,
284- VirtualKeyCode :: G => Key :: G ,
285- VirtualKeyCode :: H => Key :: H ,
286- VirtualKeyCode :: I => Key :: I ,
287- VirtualKeyCode :: J => Key :: J ,
288- VirtualKeyCode :: K => Key :: K ,
289- VirtualKeyCode :: L => Key :: L ,
290- VirtualKeyCode :: M => Key :: M ,
291- VirtualKeyCode :: N => Key :: N ,
292- VirtualKeyCode :: O => Key :: O ,
293- VirtualKeyCode :: P => Key :: P ,
294- VirtualKeyCode :: Q => Key :: Q ,
295- VirtualKeyCode :: R => Key :: R ,
296- VirtualKeyCode :: S => Key :: S ,
297- VirtualKeyCode :: T => Key :: T ,
298- VirtualKeyCode :: U => Key :: U ,
299- VirtualKeyCode :: V => Key :: V ,
300- VirtualKeyCode :: W => Key :: W ,
301- VirtualKeyCode :: X => Key :: X ,
302- VirtualKeyCode :: Y => Key :: Y ,
303- VirtualKeyCode :: Z => Key :: Z ,
304-
305- VirtualKeyCode :: Escape => Key :: Esc ,
306-
307- VirtualKeyCode :: F1 => Key :: F1 ,
308- VirtualKeyCode :: F2 => Key :: F2 ,
309- VirtualKeyCode :: F3 => Key :: F3 ,
310- VirtualKeyCode :: F4 => Key :: F4 ,
311- VirtualKeyCode :: F5 => Key :: F5 ,
312- VirtualKeyCode :: F6 => Key :: F6 ,
313- VirtualKeyCode :: F7 => Key :: F7 ,
314- VirtualKeyCode :: F8 => Key :: F8 ,
315- VirtualKeyCode :: F9 => Key :: F9 ,
316- VirtualKeyCode :: F10 => Key :: F10 ,
317- VirtualKeyCode :: F11 => Key :: F11 ,
318- VirtualKeyCode :: F12 => Key :: F12 ,
319- VirtualKeyCode :: F13 => Key :: F13 ,
320- VirtualKeyCode :: F14 => Key :: F14 ,
321- VirtualKeyCode :: F15 => Key :: F15 ,
322- VirtualKeyCode :: F16 => Key :: F16 ,
323- VirtualKeyCode :: F17 => Key :: F17 ,
324- VirtualKeyCode :: F18 => Key :: F18 ,
325- VirtualKeyCode :: F19 => Key :: F19 ,
326- VirtualKeyCode :: F20 => Key :: F20 ,
327- VirtualKeyCode :: F21 => Key :: F21 ,
328- VirtualKeyCode :: F22 => Key :: F22 ,
329- VirtualKeyCode :: F23 => Key :: F23 ,
330- VirtualKeyCode :: F24 => Key :: F24 ,
331-
332- VirtualKeyCode :: Home => Key :: Home ,
333- VirtualKeyCode :: Delete => Key :: Delete ,
334- VirtualKeyCode :: End => Key :: End ,
335- VirtualKeyCode :: PageDown => Key :: PageDown ,
336- VirtualKeyCode :: PageUp => Key :: PageUp ,
337- VirtualKeyCode :: Back => Key :: Backspace ,
338- VirtualKeyCode :: Return => Key :: Return ,
339- VirtualKeyCode :: Space => Key :: Space ,
340-
341- VirtualKeyCode :: Left => Key :: LeftArrow ,
342- VirtualKeyCode :: Up => Key :: UpArrow ,
343- VirtualKeyCode :: Right => Key :: RightArrow ,
344- VirtualKeyCode :: Down => Key :: DownArrow ,
345-
346- VirtualKeyCode :: Numpad0 => Key :: Numpad0 ,
347- VirtualKeyCode :: Numpad1 => Key :: Numpad1 ,
348- VirtualKeyCode :: Numpad2 => Key :: Numpad2 ,
349- VirtualKeyCode :: Numpad3 => Key :: Numpad3 ,
350- VirtualKeyCode :: Numpad4 => Key :: Numpad4 ,
351- VirtualKeyCode :: Numpad5 => Key :: Numpad5 ,
352- VirtualKeyCode :: Numpad6 => Key :: Numpad6 ,
353- VirtualKeyCode :: Numpad7 => Key :: Numpad7 ,
354- VirtualKeyCode :: Numpad8 => Key :: Numpad8 ,
355- VirtualKeyCode :: Numpad9 => Key :: Numpad9 ,
356-
357- VirtualKeyCode :: Apostrophe => Key :: Apostrophe ,
358- VirtualKeyCode :: At => Key :: At ,
359- VirtualKeyCode :: Backslash => Key :: Backslash ,
360- VirtualKeyCode :: Colon => Key :: Colon ,
361- VirtualKeyCode :: Comma => Key :: Comma ,
362- VirtualKeyCode :: Equals => Key :: Equals ,
363- VirtualKeyCode :: Grave => Key :: Backtick ,
364- VirtualKeyCode :: LBracket => Key :: LeftBracket ,
365- VirtualKeyCode :: Minus => Key :: Minus ,
366- VirtualKeyCode :: NumpadAdd => Key :: Plus ,
367- VirtualKeyCode :: NumpadComma => Key :: NumpadComma ,
368- VirtualKeyCode :: NumpadDecimal => Key :: Decimal ,
369- VirtualKeyCode :: NumpadDivide => Key :: Divide ,
370- VirtualKeyCode :: NumpadEnter => Key :: NumpadEnter ,
371- VirtualKeyCode :: NumpadEquals => Key :: NumpadEquals ,
372- VirtualKeyCode :: NumpadMultiply => Key :: Multiply ,
373- VirtualKeyCode :: NumpadSubtract => Key :: Minus ,
374- VirtualKeyCode :: Period => Key :: Period ,
375- VirtualKeyCode :: RBracket => Key :: RightBracket ,
376- VirtualKeyCode :: Semicolon => Key :: Semicolon ,
377- VirtualKeyCode :: Slash => Key :: Slash ,
378- VirtualKeyCode :: Tab => Key :: Tab ,
269+ Key1 => Key :: Num1 ,
270+ Key2 => Key :: Num2 ,
271+ Key3 => Key :: Num3 ,
272+ Key4 => Key :: Num4 ,
273+ Key5 => Key :: Num5 ,
274+ Key6 => Key :: Num6 ,
275+ Key7 => Key :: Num7 ,
276+ Key8 => Key :: Num8 ,
277+ Key9 => Key :: Num9 ,
278+ Key0 => Key :: Num0 ,
279+
280+ A => Key :: A ,
281+ B => Key :: B ,
282+ C => Key :: C ,
283+ D => Key :: D ,
284+ E => Key :: E ,
285+ F => Key :: F ,
286+ G => Key :: G ,
287+ H => Key :: H ,
288+ I => Key :: I ,
289+ J => Key :: J ,
290+ K => Key :: K ,
291+ L => Key :: L ,
292+ M => Key :: M ,
293+ N => Key :: N ,
294+ O => Key :: O ,
295+ P => Key :: P ,
296+ Q => Key :: Q ,
297+ R => Key :: R ,
298+ S => Key :: S ,
299+ T => Key :: T ,
300+ U => Key :: U ,
301+ V => Key :: V ,
302+ W => Key :: W ,
303+ X => Key :: X ,
304+ Y => Key :: Y ,
305+ Z => Key :: Z ,
306+
307+ Escape => Key :: Esc ,
308+
309+ F1 => Key :: F1 ,
310+ F2 => Key :: F2 ,
311+ F3 => Key :: F3 ,
312+ F4 => Key :: F4 ,
313+ F5 => Key :: F5 ,
314+ F6 => Key :: F6 ,
315+ F7 => Key :: F7 ,
316+ F8 => Key :: F8 ,
317+ F9 => Key :: F9 ,
318+ F10 => Key :: F10 ,
319+ F11 => Key :: F11 ,
320+ F12 => Key :: F12 ,
321+ F13 => Key :: F13 ,
322+ F14 => Key :: F14 ,
323+ F15 => Key :: F15 ,
324+ F16 => Key :: F16 ,
325+ F17 => Key :: F17 ,
326+ F18 => Key :: F18 ,
327+ F19 => Key :: F19 ,
328+ F20 => Key :: F20 ,
329+ F21 => Key :: F21 ,
330+ F22 => Key :: F22 ,
331+ F23 => Key :: F23 ,
332+ F24 => Key :: F24 ,
333+
334+ Home => Key :: Home ,
335+ Delete => Key :: Delete ,
336+ End => Key :: End ,
337+ PageDown => Key :: PageDown ,
338+ PageUp => Key :: PageUp ,
339+ Back => Key :: Backspace ,
340+ Return => Key :: Return ,
341+ Space => Key :: Space ,
342+
343+ Left => Key :: LeftArrow ,
344+ Up => Key :: UpArrow ,
345+ Right => Key :: RightArrow ,
346+ Down => Key :: DownArrow ,
347+
348+ Numpad0 => Key :: Numpad0 ,
349+ Numpad1 => Key :: Numpad1 ,
350+ Numpad2 => Key :: Numpad2 ,
351+ Numpad3 => Key :: Numpad3 ,
352+ Numpad4 => Key :: Numpad4 ,
353+ Numpad5 => Key :: Numpad5 ,
354+ Numpad6 => Key :: Numpad6 ,
355+ Numpad7 => Key :: Numpad7 ,
356+ Numpad8 => Key :: Numpad8 ,
357+ Numpad9 => Key :: Numpad9 ,
358+
359+ Apostrophe => Key :: Apostrophe ,
360+ At => Key :: At ,
361+ Backslash => Key :: Backslash ,
362+ Colon => Key :: Colon ,
363+ Comma => Key :: Comma ,
364+ Equals => Key :: Equals ,
365+ Grave => Key :: Backtick ,
366+ LBracket => Key :: LeftBracket ,
367+ NumpadAdd | Plus => Key :: Plus ,
368+ NumpadComma => Key :: NumpadComma ,
369+ NumpadDecimal => Key :: Decimal ,
370+ NumpadDivide => Key :: Divide ,
371+ NumpadEnter => Key :: NumpadEnter ,
372+ NumpadEquals => Key :: NumpadEquals ,
373+ NumpadMultiply | Asterisk => Key :: Multiply ,
374+ NumpadSubtract | Minus => Key :: Minus ,
375+ Period => Key :: Period ,
376+ RBracket => Key :: RightBracket ,
377+ Semicolon => Key :: Semicolon ,
378+ Slash => Key :: Slash ,
379+ Tab => Key :: Tab ,
379380
380381 // Unsupported keys (could be changed in the future)
381- _ => return None ,
382+ Snapshot |
383+ Scroll |
384+ Pause |
385+ Insert |
386+ Compose |
387+ Caret |
388+ Numlock |
389+ AbntC1 |
390+ AbntC2 |
391+ Apps |
392+ Ax |
393+ Calculator |
394+ Capital |
395+ Convert |
396+ Kana |
397+ Kanji |
398+ LAlt |
399+ LControl |
400+ LShift |
401+ LWin |
402+ Mail |
403+ MediaSelect |
404+ MediaStop |
405+ Mute |
406+ MyComputer |
407+ NavigateForward |
408+ NavigateBackward |
409+ NextTrack |
410+ NoConvert |
411+ OEM102 |
412+ PlayPause |
413+ Power |
414+ PrevTrack |
415+ RAlt |
416+ RControl |
417+ RShift |
418+ RWin |
419+ Sleep |
420+ Stop |
421+ Sysrq |
422+ Underline |
423+ Unlabeled |
424+ VolumeDown |
425+ VolumeUp |
426+ Wake |
427+ WebBack |
428+ WebFavorites |
429+ WebForward |
430+ WebHome |
431+ WebRefresh |
432+ WebSearch |
433+ WebStop |
434+ Yen |
435+ Copy |
436+ Paste |
437+ Cut => return None ,
382438 } )
383439 }
384440}
@@ -398,11 +454,13 @@ pub enum MouseButton {
398454impl MouseButton {
399455 #[ cfg_attr( any( feature = "test" , test) , allow( dead_code) ) ]
400456 fn from_button ( button : glutin_event:: MouseButton ) -> Option < Self > {
457+ use glutin_event:: MouseButton :: * ;
458+ #[ deny( unreachable_patterns, unused_variables) ]
401459 match button {
402- glutin_event :: MouseButton :: Left => Some ( MouseButton :: LeftButton ) ,
403- glutin_event :: MouseButton :: Middle => Some ( MouseButton :: MiddleButton ) ,
404- glutin_event :: MouseButton :: Right => Some ( MouseButton :: RightButton ) ,
405- glutin_event :: MouseButton :: Other ( _) => None ,
460+ Left => Some ( MouseButton :: LeftButton ) ,
461+ Middle => Some ( MouseButton :: MiddleButton ) ,
462+ Right => Some ( MouseButton :: RightButton ) ,
463+ Other ( _) => None ,
406464 }
407465 }
408466}
0 commit comments