Because this class is implemented with unique pointers, copy semantics
are implicitly deleted. This can be verified by the type trait tests
which continue to affirm that these types are noncopyable.
This is not accurate because modifier state and key state are not the
same thing for caps lock, but at least some events are generated
instead of nothing.
- Describe keys in separate words when applicable on macOS
- Use "Option" instead of "Alt" to describe keys on macOS
- Filter key up events like key down events
- Use localize to generate keyboard events
That is better than translating to text because several keys can
generate the same text.
- Add fallback mapping for NumpadEnter
- Handle swapped virtual key codes with ISO keyboard
- Aligned mappings
- ScanDash -> ScanHyphen
- Numpad keys include Numpad
- *Equals -> *Equal
- Key 29/42 are Backslash
- Key 45 is Non-US Backslash
- Add additional media & more scancodes
- Rename ScanAgain to ScanRedo
- Rename ScanMute to ScanVolumeMute
- Add the missing F-key mappings for macOS
- Fix mapping in Windows code
- Correctly handle numpad keys on Windows for isKeyPressed
- Refactorings
- Use mapping for Linux from different key config
- Refactor some mapping code
- Fix map initialization
- Layout independent keys also don't have unicode characters, so it
makes more sense to translate them first and use unicode as fallback
- Fix iteration limits on Windows
- Consistently use 'Scancode' instead of 'ScanCode' everywhere
- Use 'delocalize' instead of 'unlocalize'
- Fix conversion warnings
- Remove unused mapping function
- Hide parameters for non-applicable iOS functions
- Update documentation
- Add Android InputImpl scancode function stubs
- getDescription implementation for X11
- Generate KeySym -> Unicode mapping, so we don't need
to make fake events in getDescription now
- KeySym to sf::Keyboard::Key mapping
- Better names for keycode, sf::Scancode and sf::Key conversion functions
- X11InputManager doesn't need m_display now
- Move a lot of stuff into free functions
- X11InputManager now only has static members
- X11InputManager -> KeyboardImpl
- Removed redundant "sf::" where possible
- Moved some functions from sf::priv::anonymous to anonymous namespace.
- Added NullKeyCode constant for readability
Fixed formatting issues per review
Implemented copy constructor since operator= is implemented
Reverted operator=, add NOLINT for copy constructor per review
Fixed clang-tidy escape in examples
Fixed OSX clang-tidy escapes
This is required since Windows can't support she-bang scripts like
macOS and Linux were taking advantange of. This is more verbose but
ultimately the same as before.