MCPcopy Index your code
hub / github.com/endbasic/endbasic / on_key_event_into_key

Function on_key_event_into_key

web/src/input.rs:38–70  ·  view source on GitHub ↗

Converts an HTML keyboard event into our own `Key` representation.

(dom_event: KeyboardEvent)

Source from the content-addressed store, hash-verified

36
37/// Converts an HTML keyboard event into our own `Key` representation.
38fn on_key_event_into_key(dom_event: KeyboardEvent) -> Key {
39 match dom_event.key_code() as u8 {
40 8 => Key::Backspace,
41 9 => Key::Tab,
42 10 => Key::NewLine,
43 13 => Key::CarriageReturn,
44 27 => Key::Escape,
45 33 => Key::PageUp,
46 34 => Key::PageDown,
47 35 => Key::End,
48 36 => Key::Home,
49 37 => Key::ArrowLeft,
50 38 => Key::ArrowUp,
51 39 => Key::ArrowRight,
52 40 => Key::ArrowDown,
53 46 => Key::Delete,
54 b'A' if dom_event.ctrl_key() => Key::Home,
55 b'B' if dom_event.ctrl_key() => Key::ArrowLeft,
56 b'C' if dom_event.ctrl_key() => Key::Interrupt,
57 b'D' if dom_event.ctrl_key() => Key::EofOrDelete,
58 b'E' if dom_event.ctrl_key() => Key::End,
59 b'F' if dom_event.ctrl_key() => Key::ArrowRight,
60 b'J' if dom_event.ctrl_key() => Key::NewLine,
61 b'M' if dom_event.ctrl_key() => Key::NewLine,
62 b'N' if dom_event.ctrl_key() => Key::ArrowDown,
63 b'P' if dom_event.ctrl_key() => Key::ArrowUp,
64 _ => {
65 let printable = !dom_event.alt_key() && !dom_event.ctrl_key() && !dom_event.meta_key();
66 let chars = dom_event.key().chars().collect::<Vec<char>>();
67 if printable && chars.len() == 1 { Key::Char(chars[0]) } else { Key::Unknown }
68 }
69 }
70}
71
72/// Interface to implement an on-screen keyboard to provide keys that may not be available on
73/// mobile keyboards.

Callers 1

inject_keyboard_eventMethod · 0.85

Calls 2

charsMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected