@@ -4088,6 +4088,19 @@ pub const PROCESSING_KEY_F9: u32 = 298;
40884088pub const PROCESSING_KEY_F10 : u32 = 299 ;
40894089pub const PROCESSING_KEY_F11 : u32 = 300 ;
40904090pub const PROCESSING_KEY_F12 : u32 = 301 ;
4091+ pub const PROCESSING_KEY_F13 : u32 = 302 ;
4092+ pub const PROCESSING_KEY_F14 : u32 = 303 ;
4093+ pub const PROCESSING_KEY_F15 : u32 = 304 ;
4094+ pub const PROCESSING_KEY_F16 : u32 = 305 ;
4095+ pub const PROCESSING_KEY_F17 : u32 = 306 ;
4096+ pub const PROCESSING_KEY_F18 : u32 = 307 ;
4097+ pub const PROCESSING_KEY_F19 : u32 = 308 ;
4098+ pub const PROCESSING_KEY_F20 : u32 = 309 ;
4099+ pub const PROCESSING_KEY_F21 : u32 = 310 ;
4100+ pub const PROCESSING_KEY_F22 : u32 = 311 ;
4101+ pub const PROCESSING_KEY_F23 : u32 = 312 ;
4102+ pub const PROCESSING_KEY_F24 : u32 = 313 ;
4103+ pub const PROCESSING_KEY_F25 : u32 = 314 ;
40914104pub const PROCESSING_KEY_NUMPAD_0 : u32 = 320 ;
40924105pub const PROCESSING_KEY_NUMPAD_1 : u32 = 321 ;
40934106pub const PROCESSING_KEY_NUMPAD_2 : u32 = 322 ;
@@ -4306,7 +4319,8 @@ pub extern "C" fn processing_key() -> u32 {
43064319#[ unsafe( no_mangle) ]
43074320pub extern "C" fn processing_key_code ( ) -> u32 {
43084321 error:: clear_error ( ) ;
4309- error:: check ( || input_key_code ( ) . map ( |opt| opt. map ( key_code_to_u32) . unwrap_or ( 0 ) ) ) . unwrap_or ( 0 )
4322+ error:: check ( || input_key_code ( ) . map ( |opt| opt. and_then ( key_code_to_u32) . unwrap_or ( 0 ) ) )
4323+ . unwrap_or ( 0 )
43104324}
43114325
43124326#[ unsafe( no_mangle) ]
@@ -4326,227 +4340,3 @@ pub extern "C" fn processing_mouse_wheel() -> f32 {
43264340 error:: clear_error ( ) ;
43274341 error:: check ( input_mouse_wheel) . unwrap_or ( 0.0 )
43284342}
4329-
4330- fn key_code_from_u32 ( val : u32 ) -> processing:: prelude:: error:: Result < KeyCode > {
4331- match val {
4332- PROCESSING_KEY_SPACE => Ok ( KeyCode :: Space ) ,
4333- PROCESSING_KEY_QUOTE => Ok ( KeyCode :: Quote ) ,
4334- PROCESSING_KEY_COMMA => Ok ( KeyCode :: Comma ) ,
4335- PROCESSING_KEY_MINUS => Ok ( KeyCode :: Minus ) ,
4336- PROCESSING_KEY_PERIOD => Ok ( KeyCode :: Period ) ,
4337- PROCESSING_KEY_SLASH => Ok ( KeyCode :: Slash ) ,
4338- PROCESSING_KEY_0 => Ok ( KeyCode :: Digit0 ) ,
4339- PROCESSING_KEY_1 => Ok ( KeyCode :: Digit1 ) ,
4340- PROCESSING_KEY_2 => Ok ( KeyCode :: Digit2 ) ,
4341- PROCESSING_KEY_3 => Ok ( KeyCode :: Digit3 ) ,
4342- PROCESSING_KEY_4 => Ok ( KeyCode :: Digit4 ) ,
4343- PROCESSING_KEY_5 => Ok ( KeyCode :: Digit5 ) ,
4344- PROCESSING_KEY_6 => Ok ( KeyCode :: Digit6 ) ,
4345- PROCESSING_KEY_7 => Ok ( KeyCode :: Digit7 ) ,
4346- PROCESSING_KEY_8 => Ok ( KeyCode :: Digit8 ) ,
4347- PROCESSING_KEY_9 => Ok ( KeyCode :: Digit9 ) ,
4348- PROCESSING_KEY_SEMICOLON => Ok ( KeyCode :: Semicolon ) ,
4349- PROCESSING_KEY_EQUAL => Ok ( KeyCode :: Equal ) ,
4350- PROCESSING_KEY_A => Ok ( KeyCode :: KeyA ) ,
4351- PROCESSING_KEY_B => Ok ( KeyCode :: KeyB ) ,
4352- PROCESSING_KEY_C => Ok ( KeyCode :: KeyC ) ,
4353- PROCESSING_KEY_D => Ok ( KeyCode :: KeyD ) ,
4354- PROCESSING_KEY_E => Ok ( KeyCode :: KeyE ) ,
4355- PROCESSING_KEY_F => Ok ( KeyCode :: KeyF ) ,
4356- PROCESSING_KEY_G => Ok ( KeyCode :: KeyG ) ,
4357- PROCESSING_KEY_H => Ok ( KeyCode :: KeyH ) ,
4358- PROCESSING_KEY_I => Ok ( KeyCode :: KeyI ) ,
4359- PROCESSING_KEY_J => Ok ( KeyCode :: KeyJ ) ,
4360- PROCESSING_KEY_K => Ok ( KeyCode :: KeyK ) ,
4361- PROCESSING_KEY_L => Ok ( KeyCode :: KeyL ) ,
4362- PROCESSING_KEY_M => Ok ( KeyCode :: KeyM ) ,
4363- PROCESSING_KEY_N => Ok ( KeyCode :: KeyN ) ,
4364- PROCESSING_KEY_O => Ok ( KeyCode :: KeyO ) ,
4365- PROCESSING_KEY_P => Ok ( KeyCode :: KeyP ) ,
4366- PROCESSING_KEY_Q => Ok ( KeyCode :: KeyQ ) ,
4367- PROCESSING_KEY_R => Ok ( KeyCode :: KeyR ) ,
4368- PROCESSING_KEY_S => Ok ( KeyCode :: KeyS ) ,
4369- PROCESSING_KEY_T => Ok ( KeyCode :: KeyT ) ,
4370- PROCESSING_KEY_U => Ok ( KeyCode :: KeyU ) ,
4371- PROCESSING_KEY_V => Ok ( KeyCode :: KeyV ) ,
4372- PROCESSING_KEY_W => Ok ( KeyCode :: KeyW ) ,
4373- PROCESSING_KEY_X => Ok ( KeyCode :: KeyX ) ,
4374- PROCESSING_KEY_Y => Ok ( KeyCode :: KeyY ) ,
4375- PROCESSING_KEY_Z => Ok ( KeyCode :: KeyZ ) ,
4376- PROCESSING_KEY_BRACKET_LEFT => Ok ( KeyCode :: BracketLeft ) ,
4377- PROCESSING_KEY_BACKSLASH => Ok ( KeyCode :: Backslash ) ,
4378- PROCESSING_KEY_BRACKET_RIGHT => Ok ( KeyCode :: BracketRight ) ,
4379- PROCESSING_KEY_BACKQUOTE => Ok ( KeyCode :: Backquote ) ,
4380- PROCESSING_KEY_ESCAPE => Ok ( KeyCode :: Escape ) ,
4381- PROCESSING_KEY_ENTER => Ok ( KeyCode :: Enter ) ,
4382- PROCESSING_KEY_TAB => Ok ( KeyCode :: Tab ) ,
4383- PROCESSING_KEY_BACKSPACE => Ok ( KeyCode :: Backspace ) ,
4384- PROCESSING_KEY_INSERT => Ok ( KeyCode :: Insert ) ,
4385- PROCESSING_KEY_DELETE => Ok ( KeyCode :: Delete ) ,
4386- PROCESSING_KEY_RIGHT => Ok ( KeyCode :: ArrowRight ) ,
4387- PROCESSING_KEY_LEFT => Ok ( KeyCode :: ArrowLeft ) ,
4388- PROCESSING_KEY_DOWN => Ok ( KeyCode :: ArrowDown ) ,
4389- PROCESSING_KEY_UP => Ok ( KeyCode :: ArrowUp ) ,
4390- PROCESSING_KEY_PAGE_UP => Ok ( KeyCode :: PageUp ) ,
4391- PROCESSING_KEY_PAGE_DOWN => Ok ( KeyCode :: PageDown ) ,
4392- PROCESSING_KEY_HOME => Ok ( KeyCode :: Home ) ,
4393- PROCESSING_KEY_END => Ok ( KeyCode :: End ) ,
4394- PROCESSING_KEY_CAPS_LOCK => Ok ( KeyCode :: CapsLock ) ,
4395- PROCESSING_KEY_SCROLL_LOCK => Ok ( KeyCode :: ScrollLock ) ,
4396- PROCESSING_KEY_NUM_LOCK => Ok ( KeyCode :: NumLock ) ,
4397- PROCESSING_KEY_PRINT_SCREEN => Ok ( KeyCode :: PrintScreen ) ,
4398- PROCESSING_KEY_PAUSE => Ok ( KeyCode :: Pause ) ,
4399- PROCESSING_KEY_F1 => Ok ( KeyCode :: F1 ) ,
4400- PROCESSING_KEY_F2 => Ok ( KeyCode :: F2 ) ,
4401- PROCESSING_KEY_F3 => Ok ( KeyCode :: F3 ) ,
4402- PROCESSING_KEY_F4 => Ok ( KeyCode :: F4 ) ,
4403- PROCESSING_KEY_F5 => Ok ( KeyCode :: F5 ) ,
4404- PROCESSING_KEY_F6 => Ok ( KeyCode :: F6 ) ,
4405- PROCESSING_KEY_F7 => Ok ( KeyCode :: F7 ) ,
4406- PROCESSING_KEY_F8 => Ok ( KeyCode :: F8 ) ,
4407- PROCESSING_KEY_F9 => Ok ( KeyCode :: F9 ) ,
4408- PROCESSING_KEY_F10 => Ok ( KeyCode :: F10 ) ,
4409- PROCESSING_KEY_F11 => Ok ( KeyCode :: F11 ) ,
4410- PROCESSING_KEY_F12 => Ok ( KeyCode :: F12 ) ,
4411- PROCESSING_KEY_NUMPAD_0 => Ok ( KeyCode :: Numpad0 ) ,
4412- PROCESSING_KEY_NUMPAD_1 => Ok ( KeyCode :: Numpad1 ) ,
4413- PROCESSING_KEY_NUMPAD_2 => Ok ( KeyCode :: Numpad2 ) ,
4414- PROCESSING_KEY_NUMPAD_3 => Ok ( KeyCode :: Numpad3 ) ,
4415- PROCESSING_KEY_NUMPAD_4 => Ok ( KeyCode :: Numpad4 ) ,
4416- PROCESSING_KEY_NUMPAD_5 => Ok ( KeyCode :: Numpad5 ) ,
4417- PROCESSING_KEY_NUMPAD_6 => Ok ( KeyCode :: Numpad6 ) ,
4418- PROCESSING_KEY_NUMPAD_7 => Ok ( KeyCode :: Numpad7 ) ,
4419- PROCESSING_KEY_NUMPAD_8 => Ok ( KeyCode :: Numpad8 ) ,
4420- PROCESSING_KEY_NUMPAD_9 => Ok ( KeyCode :: Numpad9 ) ,
4421- PROCESSING_KEY_NUMPAD_DECIMAL => Ok ( KeyCode :: NumpadDecimal ) ,
4422- PROCESSING_KEY_NUMPAD_DIVIDE => Ok ( KeyCode :: NumpadDivide ) ,
4423- PROCESSING_KEY_NUMPAD_MULTIPLY => Ok ( KeyCode :: NumpadMultiply ) ,
4424- PROCESSING_KEY_NUMPAD_SUBTRACT => Ok ( KeyCode :: NumpadSubtract ) ,
4425- PROCESSING_KEY_NUMPAD_ADD => Ok ( KeyCode :: NumpadAdd ) ,
4426- PROCESSING_KEY_NUMPAD_ENTER => Ok ( KeyCode :: NumpadEnter ) ,
4427- PROCESSING_KEY_NUMPAD_EQUAL => Ok ( KeyCode :: NumpadEqual ) ,
4428- PROCESSING_KEY_SHIFT_LEFT => Ok ( KeyCode :: ShiftLeft ) ,
4429- PROCESSING_KEY_CONTROL_LEFT => Ok ( KeyCode :: ControlLeft ) ,
4430- PROCESSING_KEY_ALT_LEFT => Ok ( KeyCode :: AltLeft ) ,
4431- PROCESSING_KEY_SUPER_LEFT => Ok ( KeyCode :: SuperLeft ) ,
4432- PROCESSING_KEY_SHIFT_RIGHT => Ok ( KeyCode :: ShiftRight ) ,
4433- PROCESSING_KEY_CONTROL_RIGHT => Ok ( KeyCode :: ControlRight ) ,
4434- PROCESSING_KEY_ALT_RIGHT => Ok ( KeyCode :: AltRight ) ,
4435- PROCESSING_KEY_SUPER_RIGHT => Ok ( KeyCode :: SuperRight ) ,
4436- PROCESSING_KEY_CONTEXT_MENU => Ok ( KeyCode :: ContextMenu ) ,
4437- _ => Err ( ProcessingError :: InvalidArgument ( format ! (
4438- "unknown key code: {val}"
4439- ) ) ) ,
4440- }
4441- }
4442-
4443- fn key_code_to_u32 ( kc : KeyCode ) -> u32 {
4444- match kc {
4445- KeyCode :: Space => PROCESSING_KEY_SPACE ,
4446- KeyCode :: Quote => PROCESSING_KEY_QUOTE ,
4447- KeyCode :: Comma => PROCESSING_KEY_COMMA ,
4448- KeyCode :: Minus => PROCESSING_KEY_MINUS ,
4449- KeyCode :: Period => PROCESSING_KEY_PERIOD ,
4450- KeyCode :: Slash => PROCESSING_KEY_SLASH ,
4451- KeyCode :: Digit0 => PROCESSING_KEY_0 ,
4452- KeyCode :: Digit1 => PROCESSING_KEY_1 ,
4453- KeyCode :: Digit2 => PROCESSING_KEY_2 ,
4454- KeyCode :: Digit3 => PROCESSING_KEY_3 ,
4455- KeyCode :: Digit4 => PROCESSING_KEY_4 ,
4456- KeyCode :: Digit5 => PROCESSING_KEY_5 ,
4457- KeyCode :: Digit6 => PROCESSING_KEY_6 ,
4458- KeyCode :: Digit7 => PROCESSING_KEY_7 ,
4459- KeyCode :: Digit8 => PROCESSING_KEY_8 ,
4460- KeyCode :: Digit9 => PROCESSING_KEY_9 ,
4461- KeyCode :: Semicolon => PROCESSING_KEY_SEMICOLON ,
4462- KeyCode :: Equal => PROCESSING_KEY_EQUAL ,
4463- KeyCode :: KeyA => PROCESSING_KEY_A ,
4464- KeyCode :: KeyB => PROCESSING_KEY_B ,
4465- KeyCode :: KeyC => PROCESSING_KEY_C ,
4466- KeyCode :: KeyD => PROCESSING_KEY_D ,
4467- KeyCode :: KeyE => PROCESSING_KEY_E ,
4468- KeyCode :: KeyF => PROCESSING_KEY_F ,
4469- KeyCode :: KeyG => PROCESSING_KEY_G ,
4470- KeyCode :: KeyH => PROCESSING_KEY_H ,
4471- KeyCode :: KeyI => PROCESSING_KEY_I ,
4472- KeyCode :: KeyJ => PROCESSING_KEY_J ,
4473- KeyCode :: KeyK => PROCESSING_KEY_K ,
4474- KeyCode :: KeyL => PROCESSING_KEY_L ,
4475- KeyCode :: KeyM => PROCESSING_KEY_M ,
4476- KeyCode :: KeyN => PROCESSING_KEY_N ,
4477- KeyCode :: KeyO => PROCESSING_KEY_O ,
4478- KeyCode :: KeyP => PROCESSING_KEY_P ,
4479- KeyCode :: KeyQ => PROCESSING_KEY_Q ,
4480- KeyCode :: KeyR => PROCESSING_KEY_R ,
4481- KeyCode :: KeyS => PROCESSING_KEY_S ,
4482- KeyCode :: KeyT => PROCESSING_KEY_T ,
4483- KeyCode :: KeyU => PROCESSING_KEY_U ,
4484- KeyCode :: KeyV => PROCESSING_KEY_V ,
4485- KeyCode :: KeyW => PROCESSING_KEY_W ,
4486- KeyCode :: KeyX => PROCESSING_KEY_X ,
4487- KeyCode :: KeyY => PROCESSING_KEY_Y ,
4488- KeyCode :: KeyZ => PROCESSING_KEY_Z ,
4489- KeyCode :: BracketLeft => PROCESSING_KEY_BRACKET_LEFT ,
4490- KeyCode :: Backslash => PROCESSING_KEY_BACKSLASH ,
4491- KeyCode :: BracketRight => PROCESSING_KEY_BRACKET_RIGHT ,
4492- KeyCode :: Backquote => PROCESSING_KEY_BACKQUOTE ,
4493- KeyCode :: Escape => PROCESSING_KEY_ESCAPE ,
4494- KeyCode :: Enter => PROCESSING_KEY_ENTER ,
4495- KeyCode :: Tab => PROCESSING_KEY_TAB ,
4496- KeyCode :: Backspace => PROCESSING_KEY_BACKSPACE ,
4497- KeyCode :: Insert => PROCESSING_KEY_INSERT ,
4498- KeyCode :: Delete => PROCESSING_KEY_DELETE ,
4499- KeyCode :: ArrowRight => PROCESSING_KEY_RIGHT ,
4500- KeyCode :: ArrowLeft => PROCESSING_KEY_LEFT ,
4501- KeyCode :: ArrowDown => PROCESSING_KEY_DOWN ,
4502- KeyCode :: ArrowUp => PROCESSING_KEY_UP ,
4503- KeyCode :: PageUp => PROCESSING_KEY_PAGE_UP ,
4504- KeyCode :: PageDown => PROCESSING_KEY_PAGE_DOWN ,
4505- KeyCode :: Home => PROCESSING_KEY_HOME ,
4506- KeyCode :: End => PROCESSING_KEY_END ,
4507- KeyCode :: CapsLock => PROCESSING_KEY_CAPS_LOCK ,
4508- KeyCode :: ScrollLock => PROCESSING_KEY_SCROLL_LOCK ,
4509- KeyCode :: NumLock => PROCESSING_KEY_NUM_LOCK ,
4510- KeyCode :: PrintScreen => PROCESSING_KEY_PRINT_SCREEN ,
4511- KeyCode :: Pause => PROCESSING_KEY_PAUSE ,
4512- KeyCode :: F1 => PROCESSING_KEY_F1 ,
4513- KeyCode :: F2 => PROCESSING_KEY_F2 ,
4514- KeyCode :: F3 => PROCESSING_KEY_F3 ,
4515- KeyCode :: F4 => PROCESSING_KEY_F4 ,
4516- KeyCode :: F5 => PROCESSING_KEY_F5 ,
4517- KeyCode :: F6 => PROCESSING_KEY_F6 ,
4518- KeyCode :: F7 => PROCESSING_KEY_F7 ,
4519- KeyCode :: F8 => PROCESSING_KEY_F8 ,
4520- KeyCode :: F9 => PROCESSING_KEY_F9 ,
4521- KeyCode :: F10 => PROCESSING_KEY_F10 ,
4522- KeyCode :: F11 => PROCESSING_KEY_F11 ,
4523- KeyCode :: F12 => PROCESSING_KEY_F12 ,
4524- KeyCode :: Numpad0 => PROCESSING_KEY_NUMPAD_0 ,
4525- KeyCode :: Numpad1 => PROCESSING_KEY_NUMPAD_1 ,
4526- KeyCode :: Numpad2 => PROCESSING_KEY_NUMPAD_2 ,
4527- KeyCode :: Numpad3 => PROCESSING_KEY_NUMPAD_3 ,
4528- KeyCode :: Numpad4 => PROCESSING_KEY_NUMPAD_4 ,
4529- KeyCode :: Numpad5 => PROCESSING_KEY_NUMPAD_5 ,
4530- KeyCode :: Numpad6 => PROCESSING_KEY_NUMPAD_6 ,
4531- KeyCode :: Numpad7 => PROCESSING_KEY_NUMPAD_7 ,
4532- KeyCode :: Numpad8 => PROCESSING_KEY_NUMPAD_8 ,
4533- KeyCode :: Numpad9 => PROCESSING_KEY_NUMPAD_9 ,
4534- KeyCode :: NumpadDecimal => PROCESSING_KEY_NUMPAD_DECIMAL ,
4535- KeyCode :: NumpadDivide => PROCESSING_KEY_NUMPAD_DIVIDE ,
4536- KeyCode :: NumpadMultiply => PROCESSING_KEY_NUMPAD_MULTIPLY ,
4537- KeyCode :: NumpadSubtract => PROCESSING_KEY_NUMPAD_SUBTRACT ,
4538- KeyCode :: NumpadAdd => PROCESSING_KEY_NUMPAD_ADD ,
4539- KeyCode :: NumpadEnter => PROCESSING_KEY_NUMPAD_ENTER ,
4540- KeyCode :: NumpadEqual => PROCESSING_KEY_NUMPAD_EQUAL ,
4541- KeyCode :: ShiftLeft => PROCESSING_KEY_SHIFT_LEFT ,
4542- KeyCode :: ControlLeft => PROCESSING_KEY_CONTROL_LEFT ,
4543- KeyCode :: AltLeft => PROCESSING_KEY_ALT_LEFT ,
4544- KeyCode :: SuperLeft => PROCESSING_KEY_SUPER_LEFT ,
4545- KeyCode :: ShiftRight => PROCESSING_KEY_SHIFT_RIGHT ,
4546- KeyCode :: ControlRight => PROCESSING_KEY_CONTROL_RIGHT ,
4547- KeyCode :: AltRight => PROCESSING_KEY_ALT_RIGHT ,
4548- KeyCode :: SuperRight => PROCESSING_KEY_SUPER_RIGHT ,
4549- KeyCode :: ContextMenu => PROCESSING_KEY_CONTEXT_MENU ,
4550- _ => 0 ,
4551- }
4552- }
0 commit comments