Skip to content

Commit 960049a

Browse files
PaulDancesunjay
authored andcommitted
Go back on most of the changes
See #208 for the details. Also, the newly added keycodes have been merged with already existing supported keys. Signed-off-by: Paul Mabileau <[email protected]>
1 parent 37eab2c commit 960049a

File tree

1 file changed

+180
-122
lines changed

1 file changed

+180
-122
lines changed

src/event.rs

Lines changed: 180 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use serde::{Serialize, Deserialize};
1212
use 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

1717
use crate::Point;
@@ -113,10 +113,10 @@ pub enum PressedState {
113113

114114
impl 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

263263
impl 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 {
398454
impl 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

Comments
 (0)