| 487 | } |
| 488 | |
| 489 | UINT sfScanToVirtualKey(sf::Keyboard::Scancode code) |
| 490 | { |
| 491 | const WORD winScancode = sfScanToWinScan(code); |
| 492 | |
| 493 | // Manually map non-extended key codes |
| 494 | // clang-format off |
| 495 | switch (code) |
| 496 | { |
| 497 | case sf::Keyboard::Scan::Numpad0: return VK_NUMPAD0; |
| 498 | case sf::Keyboard::Scan::Numpad1: return VK_NUMPAD1; |
| 499 | case sf::Keyboard::Scan::Numpad2: return VK_NUMPAD2; |
| 500 | case sf::Keyboard::Scan::Numpad3: return VK_NUMPAD3; |
| 501 | case sf::Keyboard::Scan::Numpad4: return VK_NUMPAD4; |
| 502 | case sf::Keyboard::Scan::Numpad5: return VK_NUMPAD5; |
| 503 | case sf::Keyboard::Scan::Numpad6: return VK_NUMPAD6; |
| 504 | case sf::Keyboard::Scan::Numpad7: return VK_NUMPAD7; |
| 505 | case sf::Keyboard::Scan::Numpad8: return VK_NUMPAD8; |
| 506 | case sf::Keyboard::Scan::Numpad9: return VK_NUMPAD9; |
| 507 | case sf::Keyboard::Scan::NumpadMinus: return VK_SUBTRACT; |
| 508 | case sf::Keyboard::Scan::NumpadDecimal: return VK_DECIMAL; |
| 509 | case sf::Keyboard::Scan::NumpadDivide: return VK_DIVIDE; |
| 510 | case sf::Keyboard::Scan::Pause: return VK_PAUSE; |
| 511 | case sf::Keyboard::Scan::RControl: return VK_RCONTROL; |
| 512 | case sf::Keyboard::Scan::RAlt: return VK_RMENU; |
| 513 | default: return MapVirtualKey(winScancode, MAPVK_VSC_TO_VK_EX); |
| 514 | } |
| 515 | // clang-format on |
| 516 | } |
| 517 | |
| 518 | std::optional<sf::String> sfScanToConsumerKeyName(sf::Keyboard::Scancode code) |
| 519 | { |
no test coverage detected