Add minor changes according to the review
This commit is contained in:
parent
8b23ac1c48
commit
4ac3033d1a
|
@ -29,11 +29,12 @@
|
||||||
// Headers
|
// Headers
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
#include <SFML/Window/Export.hpp>
|
#include <SFML/Window/Export.hpp>
|
||||||
#include <SFML/System/String.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
namespace sf
|
namespace sf
|
||||||
{
|
{
|
||||||
|
class String;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
/// \brief Give access to the real-time state of the keyboard
|
/// \brief Give access to the real-time state of the keyboard
|
||||||
///
|
///
|
||||||
|
@ -169,14 +170,14 @@ public:
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
/// \brief Scancodes
|
/// \brief Scancodes
|
||||||
///
|
///
|
||||||
/// The enumerators are bound to a physical key and do *not* depend
|
/// The enumerators are bound to a physical key and do not depend on
|
||||||
/// on the keyboard layout used by the operating system. Usually, the AT-101
|
/// the keyboard layout used by the operating system. Usually, the AT-101
|
||||||
/// keyboard can be used as reference for the physical position of the keys.
|
/// keyboard can be used as reference for the physical position of the keys.
|
||||||
///
|
///
|
||||||
/// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page
|
/// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page
|
||||||
/// of Universal Serial Bus (USB): HID Usage Tables, v1.12.
|
/// of Universal Serial Bus (USB): HID Usage Tables, v1.12.
|
||||||
///
|
///
|
||||||
/// \todo When porting this for SFML 3, remove the `s` prefix and use
|
/// \todo When porting this for SFML 3, remove the `Scan` prefix and use
|
||||||
/// enum class.
|
/// enum class.
|
||||||
///
|
///
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
|
@ -219,10 +220,9 @@ public:
|
||||||
ScanNum8, ///< Keyboard 8 and * key
|
ScanNum8, ///< Keyboard 8 and * key
|
||||||
ScanNum9, ///< Keyboard 9 and ) key
|
ScanNum9, ///< Keyboard 9 and ) key
|
||||||
ScanNum0, ///< Keyboard 0 and ) key
|
ScanNum0, ///< Keyboard 0 and ) key
|
||||||
ScanEnter, ///< Keyboard Return (ENTER) key
|
ScanEnter, ///< Keyboard Enter/Return key
|
||||||
ScanEscape, ///< Keyboard Escape key
|
ScanEscape, ///< Keyboard Escape key
|
||||||
ScanBackspace, ///< Keyboard Backspace key
|
ScanBackspace, ///< Keyboard Backspace key
|
||||||
// TODO above it's BackSpace, but is it correct? What do we use here?
|
|
||||||
ScanTab, ///< Keyboard Tab key
|
ScanTab, ///< Keyboard Tab key
|
||||||
ScanSpace, ///< Keyboard Space key
|
ScanSpace, ///< Keyboard Space key
|
||||||
ScanHyphen, ///< Keyboard - and _ key
|
ScanHyphen, ///< Keyboard - and _ key
|
||||||
|
@ -230,15 +230,14 @@ public:
|
||||||
ScanLBracket, ///< Keyboard [ and { key
|
ScanLBracket, ///< Keyboard [ and { key
|
||||||
ScanRBracket, ///< Keyboard ] and } key
|
ScanRBracket, ///< Keyboard ] and } key
|
||||||
ScanBackslash, ///< Keyboard \ and | key
|
ScanBackslash, ///< Keyboard \ and | key
|
||||||
// TODO capitalisation
|
|
||||||
ScanDash, ///< Keyboard Non-US # and ~
|
ScanDash, ///< Keyboard Non-US # and ~
|
||||||
|
// TODO hyphen vs minus vs dash
|
||||||
ScanSemicolon, ///< Keyboard ; and : key
|
ScanSemicolon, ///< Keyboard ; and : key
|
||||||
// TODO capitalisation
|
|
||||||
ScanQuote, ///< Keyboard ' and " key
|
ScanQuote, ///< Keyboard ' and " key
|
||||||
ScanGraveAccent, ///< Keyboard ` and ~ key
|
ScanGraveAccent, ///< Keyboard ` and ~ key
|
||||||
ScanComma, ///< Keyboard , and < key
|
ScanComma, ///< Keyboard , and < key
|
||||||
ScanPeriod, ///< Keyboard . and > key
|
ScanPeriod, ///< Keyboard . and > key
|
||||||
ScanForwardSlash, ///< Keyboard / and ? key
|
ScanSlash, ///< Keyboard / and ? key
|
||||||
ScanF1, ///< Keyboard F1 key
|
ScanF1, ///< Keyboard F1 key
|
||||||
ScanF2, ///< Keyboard F2 key
|
ScanF2, ///< Keyboard F2 key
|
||||||
ScanF3, ///< Keyboard F3 key
|
ScanF3, ///< Keyboard F3 key
|
||||||
|
@ -273,8 +272,8 @@ public:
|
||||||
ScanMultiply, ///< Keypad * key
|
ScanMultiply, ///< Keypad * key
|
||||||
ScanMinus, ///< Keypad - key
|
ScanMinus, ///< Keypad - key
|
||||||
ScanPlus, ///< Keypad + key
|
ScanPlus, ///< Keypad + key
|
||||||
ScanPadEquals, ///< keypad = key, probably Mac only
|
ScanNumpadEquals, ///< keypad = key, probably Mac only
|
||||||
ScanReturn, ///< Keypad Enter (return) key
|
ScanNumpadEnter, ///< Keypad Enter/Return key
|
||||||
ScanDecimal, ///< Keypad . and Delete key
|
ScanDecimal, ///< Keypad . and Delete key
|
||||||
ScanNumpad1, ///< Keypad 1 and End key
|
ScanNumpad1, ///< Keypad 1 and End key
|
||||||
ScanNumpad2, ///< Keypad 2 and Down Arrow key
|
ScanNumpad2, ///< Keypad 2 and Down Arrow key
|
||||||
|
@ -381,7 +380,7 @@ public:
|
||||||
/// "Left Command" on macOS.
|
/// "Left Command" on macOS.
|
||||||
///
|
///
|
||||||
/// The current keyboard layout set by the operating system is used to
|
/// The current keyboard layout set by the operating system is used to
|
||||||
/// interpret the scancode: for example, sf::Keyboard::SemiColon is
|
/// interpret the scancode: for example, sf::Keyboard::Semicolon is
|
||||||
/// mapped to ";" for layout and to "é" for others.
|
/// mapped to ";" for layout and to "é" for others.
|
||||||
///
|
///
|
||||||
/// \return The localized description of the code
|
/// \return The localized description of the code
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
#include <SFML/Window/Keyboard.hpp>
|
#include <SFML/Window/Keyboard.hpp>
|
||||||
#include <SFML/Window/InputImpl.hpp>
|
#include <SFML/Window/InputImpl.hpp>
|
||||||
|
#include <SFML/System/String.hpp>
|
||||||
|
|
||||||
|
|
||||||
namespace sf
|
namespace sf
|
||||||
|
|
|
@ -280,8 +280,8 @@ private:
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
IOHIDManagerRef m_manager; ///< Underlying HID Manager
|
IOHIDManagerRef m_manager; ///< Underlying HID Manager
|
||||||
IOHIDElements m_keys[Keyboard::ScanCodeCount]; ///< All the keys on any connected keyboard
|
IOHIDElements m_keys[Keyboard::ScanCodeCount]; ///< All the keys on any connected keyboard
|
||||||
Keyboard::Scancode m_mapping[Keyboard::KeyCount]; ///< Mapping from Key to Scancode
|
Keyboard::Scancode m_keyToScancodeMapping[Keyboard::KeyCount]; ///< Mapping from Key to Scancode
|
||||||
Keyboard::Key m_gnippam[Keyboard::ScanCodeCount]; ///< Mapping from Scancode to Key
|
Keyboard::Key m_scancodeToKeyMapping[Keyboard::ScanCodeCount]; ///< Mapping from Scancode to Key
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
/// m_keys' index corresponds to sf::Keyboard::Scancode enum.
|
/// m_keys' index corresponds to sf::Keyboard::Scancode enum.
|
||||||
|
|
|
@ -111,7 +111,7 @@ bool HIDInputManager::isKeyPressed(Keyboard::Scancode code)
|
||||||
Keyboard::Key HIDInputManager::localize(Keyboard::Scancode code)
|
Keyboard::Key HIDInputManager::localize(Keyboard::Scancode code)
|
||||||
{
|
{
|
||||||
// TODO ensure mapping is still valid
|
// TODO ensure mapping is still valid
|
||||||
return m_gnippam[code];
|
return m_scancodeToKeyMapping[code];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ Keyboard::Key HIDInputManager::localize(Keyboard::Scancode code)
|
||||||
Keyboard::Scancode HIDInputManager::unlocalize(Keyboard::Key key)
|
Keyboard::Scancode HIDInputManager::unlocalize(Keyboard::Key key)
|
||||||
{
|
{
|
||||||
// TODO ensure mapping is still valid
|
// TODO ensure mapping is still valid
|
||||||
return m_mapping[key];
|
return m_keyToScancodeMapping[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,8 +177,8 @@ String HIDInputManager::localizedRepresentation(Keyboard::Scancode code)
|
||||||
case sf::Keyboard::ScanMultiply: return "Multiply (Numpad)";
|
case sf::Keyboard::ScanMultiply: return "Multiply (Numpad)";
|
||||||
case sf::Keyboard::ScanMinus: return "Minux (Numpad)";
|
case sf::Keyboard::ScanMinus: return "Minux (Numpad)";
|
||||||
case sf::Keyboard::ScanPlus: return "Plus (Numpad)";
|
case sf::Keyboard::ScanPlus: return "Plus (Numpad)";
|
||||||
case sf::Keyboard::ScanPadEquals: return "Equals (Numpad)";
|
case sf::Keyboard::ScanNumpadEquals: return "Equals (Numpad)";
|
||||||
case sf::Keyboard::ScanReturn: return "Return (Numpad)";
|
case sf::Keyboard::ScanNumpadEnter: return "Enter (Numpad)";
|
||||||
case sf::Keyboard::ScanDecimal: return "Decimal (Numpad)";
|
case sf::Keyboard::ScanDecimal: return "Decimal (Numpad)";
|
||||||
|
|
||||||
case sf::Keyboard::ScanNumpad0: return "0 (Numpad)";
|
case sf::Keyboard::ScanNumpad0: return "0 (Numpad)";
|
||||||
|
@ -329,9 +329,9 @@ void HIDInputManager::buildMappings()
|
||||||
{
|
{
|
||||||
// Reset the mappings
|
// Reset the mappings
|
||||||
for (int i = 0; i < Keyboard::KeyCount; ++i)
|
for (int i = 0; i < Keyboard::KeyCount; ++i)
|
||||||
m_mapping[i] = Keyboard::ScanUnknown;
|
m_keyToScancodeMapping[i] = Keyboard::ScanUnknown;
|
||||||
for (int i = 0; i < Keyboard::ScanCodeCount; ++i)
|
for (int i = 0; i < Keyboard::ScanCodeCount; ++i)
|
||||||
m_gnippam[i] = Keyboard::Unknown;
|
m_scancodeToKeyMapping[i] = Keyboard::Unknown;
|
||||||
|
|
||||||
// Get the current keyboard layout
|
// Get the current keyboard layout
|
||||||
TISInputSourceRef tis = TISCopyCurrentKeyboardLayoutInputSource();
|
TISInputSourceRef tis = TISCopyCurrentKeyboardLayoutInputSource();
|
||||||
|
@ -380,8 +380,8 @@ void HIDInputManager::buildMappings()
|
||||||
if (code == Keyboard::Unknown) continue;
|
if (code == Keyboard::Unknown) continue;
|
||||||
|
|
||||||
// Register the bi-mapping
|
// Register the bi-mapping
|
||||||
m_mapping[code] = scan;
|
m_keyToScancodeMapping[code] = scan;
|
||||||
m_gnippam[scan] = code;
|
m_scancodeToKeyMapping[scan] = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
CFRelease(tis);
|
CFRelease(tis);
|
||||||
|
@ -523,7 +523,7 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage)
|
||||||
case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::ScanGraveAccent;
|
case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::ScanGraveAccent;
|
||||||
case kHIDUsage_KeyboardComma: return sf::Keyboard::ScanComma;
|
case kHIDUsage_KeyboardComma: return sf::Keyboard::ScanComma;
|
||||||
case kHIDUsage_KeyboardPeriod: return sf::Keyboard::ScanPeriod;
|
case kHIDUsage_KeyboardPeriod: return sf::Keyboard::ScanPeriod;
|
||||||
case kHIDUsage_KeyboardSlash: return sf::Keyboard::ScanForwardSlash;
|
case kHIDUsage_KeyboardSlash: return sf::Keyboard::ScanSlash;
|
||||||
case kHIDUsage_KeyboardCapsLock: return sf::Keyboard::ScanCapsLock;
|
case kHIDUsage_KeyboardCapsLock: return sf::Keyboard::ScanCapsLock;
|
||||||
|
|
||||||
case kHIDUsage_KeyboardF1: return sf::Keyboard::ScanF1;
|
case kHIDUsage_KeyboardF1: return sf::Keyboard::ScanF1;
|
||||||
|
@ -559,7 +559,7 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage)
|
||||||
case kHIDUsage_KeypadAsterisk: return sf::Keyboard::ScanMultiply;
|
case kHIDUsage_KeypadAsterisk: return sf::Keyboard::ScanMultiply;
|
||||||
case kHIDUsage_KeypadHyphen: return sf::Keyboard::ScanMinus;
|
case kHIDUsage_KeypadHyphen: return sf::Keyboard::ScanMinus;
|
||||||
case kHIDUsage_KeypadPlus: return sf::Keyboard::ScanPlus;
|
case kHIDUsage_KeypadPlus: return sf::Keyboard::ScanPlus;
|
||||||
case kHIDUsage_KeypadEnter: return sf::Keyboard::ScanReturn;
|
case kHIDUsage_KeypadEnter: return sf::Keyboard::ScanEnter;
|
||||||
|
|
||||||
case kHIDUsage_Keypad1: return sf::Keyboard::ScanNumpad1;
|
case kHIDUsage_Keypad1: return sf::Keyboard::ScanNumpad1;
|
||||||
case kHIDUsage_Keypad2: return sf::Keyboard::ScanNumpad2;
|
case kHIDUsage_Keypad2: return sf::Keyboard::ScanNumpad2;
|
||||||
|
@ -576,7 +576,7 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage)
|
||||||
case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::ScanReverseSolidus;
|
case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::ScanReverseSolidus;
|
||||||
case kHIDUsage_KeyboardApplication: return sf::Keyboard::ScanApplication;
|
case kHIDUsage_KeyboardApplication: return sf::Keyboard::ScanApplication;
|
||||||
case kHIDUsage_KeyboardPower: return sf::Keyboard::ScanUnknown;
|
case kHIDUsage_KeyboardPower: return sf::Keyboard::ScanUnknown;
|
||||||
case kHIDUsage_KeypadEqualSign: return sf::Keyboard::ScanPadEquals;
|
case kHIDUsage_KeypadEqualSign: return sf::Keyboard::ScanNumpadEquals;
|
||||||
|
|
||||||
case kHIDUsage_KeyboardF13: return sf::Keyboard::ScanF13;
|
case kHIDUsage_KeyboardF13: return sf::Keyboard::ScanF13;
|
||||||
case kHIDUsage_KeyboardF14: return sf::Keyboard::ScanF14;
|
case kHIDUsage_KeyboardF14: return sf::Keyboard::ScanF14;
|
||||||
|
@ -1011,7 +1011,7 @@ Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode)
|
||||||
case 0x32: return sf::Keyboard::ScanGraveAccent;
|
case 0x32: return sf::Keyboard::ScanGraveAccent;
|
||||||
case 0x2b: return sf::Keyboard::ScanComma;
|
case 0x2b: return sf::Keyboard::ScanComma;
|
||||||
case 0x2f: return sf::Keyboard::ScanPeriod;
|
case 0x2f: return sf::Keyboard::ScanPeriod;
|
||||||
case 0x2c: return sf::Keyboard::ScanForwardSlash;
|
case 0x2c: return sf::Keyboard::ScanSlash;
|
||||||
|
|
||||||
case 0x7a: return sf::Keyboard::ScanF1;
|
case 0x7a: return sf::Keyboard::ScanF1;
|
||||||
case 0x78: return sf::Keyboard::ScanF2;
|
case 0x78: return sf::Keyboard::ScanF2;
|
||||||
|
@ -1054,8 +1054,8 @@ Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode)
|
||||||
case 0x43: return sf::Keyboard::ScanMultiply;
|
case 0x43: return sf::Keyboard::ScanMultiply;
|
||||||
case 0x4e: return sf::Keyboard::ScanMinus;
|
case 0x4e: return sf::Keyboard::ScanMinus;
|
||||||
case 0x45: return sf::Keyboard::ScanPlus;
|
case 0x45: return sf::Keyboard::ScanPlus;
|
||||||
case 0x51: return sf::Keyboard::ScanPadEquals;
|
case 0x51: return sf::Keyboard::ScanNumpadEquals;
|
||||||
case 0x4c: return sf::Keyboard::ScanReturn;
|
case 0x4c: return sf::Keyboard::ScanNumpadEnter;
|
||||||
case 0x41: return sf::Keyboard::ScanDecimal;
|
case 0x41: return sf::Keyboard::ScanDecimal;
|
||||||
|
|
||||||
case 0x53: return sf::Keyboard::ScanNumpad1;
|
case 0x53: return sf::Keyboard::ScanNumpad1;
|
||||||
|
@ -1167,7 +1167,7 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code)
|
||||||
case sf::Keyboard::ScanGraveAccent: return 0x32;
|
case sf::Keyboard::ScanGraveAccent: return 0x32;
|
||||||
case sf::Keyboard::ScanComma: return 0x2b;
|
case sf::Keyboard::ScanComma: return 0x2b;
|
||||||
case sf::Keyboard::ScanPeriod: return 0x2f;
|
case sf::Keyboard::ScanPeriod: return 0x2f;
|
||||||
case sf::Keyboard::ScanForwardSlash: return 0x2c;
|
case sf::Keyboard::ScanSlash: return 0x2c;
|
||||||
|
|
||||||
case sf::Keyboard::ScanF1: return 0x7a;
|
case sf::Keyboard::ScanF1: return 0x7a;
|
||||||
case sf::Keyboard::ScanF2: return 0x78;
|
case sf::Keyboard::ScanF2: return 0x78;
|
||||||
|
@ -1209,8 +1209,8 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code)
|
||||||
case sf::Keyboard::ScanMultiply: return 0x43;
|
case sf::Keyboard::ScanMultiply: return 0x43;
|
||||||
case sf::Keyboard::ScanMinus: return 0x4e;
|
case sf::Keyboard::ScanMinus: return 0x4e;
|
||||||
case sf::Keyboard::ScanPlus: return 0x45;
|
case sf::Keyboard::ScanPlus: return 0x45;
|
||||||
case sf::Keyboard::ScanPadEquals: return 0x51;
|
case sf::Keyboard::ScanNumpadEquals: return 0x51;
|
||||||
case sf::Keyboard::ScanReturn: return 0x4c;
|
case sf::Keyboard::ScanNumpadEnter: return 0x4c;
|
||||||
case sf::Keyboard::ScanDecimal: return 0x41;
|
case sf::Keyboard::ScanDecimal: return 0x41;
|
||||||
|
|
||||||
case sf::Keyboard::ScanNumpad1: return 0x53;
|
case sf::Keyboard::ScanNumpad1: return 0x53;
|
||||||
|
|
Loading…
Reference in a new issue