SFML 3.0.0

- Main Page
- Topics
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

Loading...
Searching...
No Matches
Typedefs | Enumerations | Functions | Variables
sf::Keyboard Namespace Reference
Window module

Give access to the real-time state of the keyboard. More...

## Typedefs
using | Scancode = Scan

## Enumerations
enum class | Key { Unknown = -1 , A = 0 , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z , Num0 , Num1 , Num2 , Num3 , Num4 , Num5 , Num6 , Num7 , Num8 , Num9 , Escape , LControl , LShift , LAlt , LSystem , RControl , RShift , RAlt , RSystem , Menu , LBracket , RBracket , Semicolon , Comma , Period , Apostrophe , Slash , Backslash , Grave , Equal , Hyphen , Space , Enter , Backspace , Tab , PageUp , PageDown , End , Home , Insert , Delete , Add , Subtract , Multiply , Divide , Left , Right , Up , Down , Numpad0 , Numpad1 , Numpad2 , Numpad3 , Numpad4 , Numpad5 , Numpad6 , Numpad7 , Numpad8 , Numpad9 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , F13 , F14 , F15 , Pause }
| Key codes. More...
enum class | Scan { Unknown = -1 , A = 0 , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z , Num1 , Num2 , Num3 , Num4 , Num5 , Num6 , Num7 , Num8 , Num9 , Num0 , Enter , Escape , Backspace , Tab , Space , Hyphen , Equal , LBracket , RBracket , Backslash , Semicolon , Apostrophe , Grave , Comma , Period , Slash , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , F13 , F14 , F15 , F16 , F17 , F18 , F19 , F20 , F21 , F22 , F23 , F24 , CapsLock , PrintScreen , ScrollLock , Pause , Insert , Home , PageUp , Delete , End , PageDown , Right , Left , Down , Up , NumLock , NumpadDivide , NumpadMultiply , NumpadMinus , NumpadPlus , NumpadEqual , NumpadEnter , NumpadDecimal , Numpad1 , Numpad2 , Numpad3 , Numpad4 , Numpad5 , Numpad6 , Numpad7 , Numpad8 , Numpad9 , Numpad0 , NonUsBackslash , Application , Execute , ModeChange , Help , Menu , Select , Redo , Undo , Cut , Copy , Paste , VolumeMute , VolumeUp , VolumeDown , MediaPlayPause , MediaStop , MediaNextTrack , MediaPreviousTrack , LControl , LShift , LAlt , LSystem , RControl , RShift , RAlt , RSystem , Back , Forward , Refresh , Stop , Search , Favorites , HomePage , LaunchApplication1 , LaunchApplication2 , LaunchMail , LaunchMediaSelect }
| Scancodes. More...

## Functions
bool | isKeyPressed (Key key)
| Check if a key is pressed.
bool | isKeyPressed (Scancode code)
| Check if a key is pressed.
Key | localize (Scancode code)
| Localize a physical key to a logical one.
Scancode | delocalize (Key key)
| Identify the physical key corresponding to a logical one.
String | getDescription (Scancode code)
| Provide a string representation for a given scancode.
void | setVirtualKeyboardVisible (bool visible)
| Show or hide the virtual keyboard.

## Variables
static constexpr unsigned int | KeyCount {static_cast<unsigned int>(Key::Pause) + 1}
| The total number of keyboard keys, ignoring `Key::Unknown`
static constexpr unsigned int | ScancodeCount {static_cast<unsigned int>(Scan::LaunchMediaSelect) + 1}
| The total number of scancodes, ignoring `Scan::Unknown`

## Detailed Description

Give access to the real-time state of the keyboard.

`sf::Keyboard` provides an interface to the state of the keyboard.

This namespace allows users to query the keyboard state at any time and directly, without having to deal with a window and its events. Compared to the `KeyPressed` and `KeyReleased` events, `sf::Keyboard` can retrieve the state of a key at any time (you don't need to store and update a boolean on your side in order to know if a key is pressed or released), and you always get the real state of the keyboard, even if keys are pressed or released when your window is out of focus and no event is triggered.

Usage example:

if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Left))
{
// move left...
}
else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Right))
{
// move right...
}
else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Escape))
{
// quit...
}
else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Scan::Grave))
{
// open in-game command line (if it's not already open)
}
sf::Keyboard::Key::Escape
@ Escape
The Escape key.
sf::Keyboard::Key::Right
@ Right
Right arrow.
sf::Keyboard::Key::Left
@ Left
Left arrow.
sf::Keyboard::isKeyPressed
bool isKeyPressed(Key key)
Check if a key is pressed.
sf::Keyboard::Scan::Grave
@ Grave
Keyboard ` and ~ key.

See also
  `sf::Joystick`, `sf::Mouse`, `sf::Touch`

## Typedef Documentation

## ◆ Scancode

using sf::Keyboard::Scancode = Scan

Definition at line 329 of file Keyboard.hpp.

## Enumeration Type Documentation

## ◆ Key

enum class sf::Keyboard::Key
| strong

Key codes.

The enumerators refer to the "localized" key; i.e. depending on the layout set by the operating system, a key can be mapped to `Y` or `Z`.

Enumerator
Unknown | Unhandled key.
A | The A key.
B | The B key.
C | The C key.
D | The D key.
E | The E key.
F | The F key.
G | The G key.
H | The H key.
I | The I key.
J | The J key.
K | The K key.
L | The L key.
M | The M key.
N | The N key.
O | The O key.
P | The P key.
Q | The Q key.
R | The R key.
S | The S key.
T | The T key.
U | The U key.
V | The V key.
W | The W key.
X | The X key.
Y | The Y key.
Z | The Z key.
Num0 | The 0 key.
Num1 | The 1 key.
Num2 | The 2 key.
Num3 | The 3 key.
Num4 | The 4 key.
Num5 | The 5 key.
Num6 | The 6 key.
Num7 | The 7 key.
Num8 | The 8 key.
Num9 | The 9 key.
Escape | The Escape key.
LControl | The left Control key.
LShift | The left Shift key.
LAlt | The left Alt key.
LSystem | The left OS specific key: window (Windows and Linux), apple (macOS), ...
RControl | The right Control key.
RShift | The right Shift key.
RAlt | The right Alt key.
RSystem | The right OS specific key: window (Windows and Linux), apple (macOS), ...
Menu | The Menu key.
LBracket | The [ key.
RBracket | The ] key.
Semicolon | The ; key.
Comma | The , key.
Period | The . key.
Apostrophe | The ' key.
Slash | The / key.
Backslash | The \ key.
Grave | The ` key.
Equal | The = key.
Hyphen | The - key (hyphen)
Space | The Space key.
Enter | The Enter/Return keys.
Backspace | The Backspace key.
Tab | The Tabulation key.
PageUp | The Page up key.
PageDown | The Page down key.
End | The End key.
Home | The Home key.
Insert | The Insert key.
Delete | The Delete key.
Add | The + key.
Subtract | The - key (minus, usually from numpad)
Multiply | The * key.
Divide | The / key.
Left | Left arrow.
Right | Right arrow.
Up | Up arrow.
Down | Down arrow.
Numpad0 | The numpad 0 key.
Numpad1 | The numpad 1 key.
Numpad2 | The numpad 2 key.
Numpad3 | The numpad 3 key.
Numpad4 | The numpad 4 key.
Numpad5 | The numpad 5 key.
Numpad6 | The numpad 6 key.
Numpad7 | The numpad 7 key.
Numpad8 | The numpad 8 key.
Numpad9 | The numpad 9 key.
F1 | The F1 key.
F2 | The F2 key.
F3 | The F3 key.
F4 | The F4 key.
F5 | The F5 key.
F6 | The F6 key.
F7 | The F7 key.
F8 | The F8 key.
F9 | The F9 key.
F10 | The F10 key.
F11 | The F11 key.
F12 | The F12 key.
F13 | The F13 key.
F14 | The F14 key.
F15 | The F15 key.
Pause | The Pause key.

Definition at line 51 of file Keyboard.hpp.

## ◆ Scan

enum class sf::Keyboard::Scan
| strong

Scancodes.

The enumerators are bound to a physical key and do not depend on 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.

Enumerator
Unknown | Represents any scancode not present in this enum.
A | Keyboard a and A key.
B | Keyboard b and B key.
C | Keyboard c and C key.
D | Keyboard d and D key.
E | Keyboard e and E key.
F | Keyboard f and F key.
G | Keyboard g and G key.
H | Keyboard h and H key.
I | Keyboard i and I key.
J | Keyboard j and J key.
K | Keyboard k and K key.
L | Keyboard l and L key.
M | Keyboard m and M key.
N | Keyboard n and N key.
O | Keyboard o and O key.
P | Keyboard p and P key.
Q | Keyboard q and Q key.
R | Keyboard r and R key.
S | Keyboard s and S key.
T | Keyboard t and T key.
U | Keyboard u and U key.
V | Keyboard v and V key.
W | Keyboard w and W key.
X | Keyboard x and X key.
Y | Keyboard y and Y key.
Z | Keyboard z and Z key.
Num1 | Keyboard 1 and ! key.
Num2 | Keyboard 2 and @ key.
Num3 | Keyboard 3 and # key.
Num4 | Keyboard 4 and $ key.
Num5 | Keyboard 5 and % key.
Num6 | Keyboard 6 and ^ key.
Num7 | Keyboard 7 and & key.
Num8 | Keyboard 8 and * key.
Num9 | Keyboard 9 and ) key.
Num0 | Keyboard 0 and ) key.
Enter | Keyboard Enter/Return key.
Escape | Keyboard Escape key.
Backspace | Keyboard Backspace key.
Tab | Keyboard Tab key.
Space | Keyboard Space key.
Hyphen | Keyboard - and _ key.
Equal | Keyboard = and +.
LBracket | Keyboard [ and { key.
RBracket | Keyboard ] and } key.
Backslash | Keyboard \ and | key OR various keys for Non-US keyboards.
Semicolon | Keyboard ; and : key.
Apostrophe | Keyboard ' and " key.
Grave | Keyboard ` and ~ key.
Comma | Keyboard , and < key.
Period | Keyboard . and > key.
Slash | Keyboard / and ? key.
F1 | Keyboard F1 key.
F2 | Keyboard F2 key.
F3 | Keyboard F3 key.
F4 | Keyboard F4 key.
F5 | Keyboard F5 key.
F6 | Keyboard F6 key.
F7 | Keyboard F7 key.
F8 | Keyboard F8 key.
F9 | Keyboard F9 key.
F10 | Keyboard F10 key.
F11 | Keyboard F11 key.
F12 | Keyboard F12 key.
F13 | Keyboard F13 key.
F14 | Keyboard F14 key.
F15 | Keyboard F15 key.
F16 | Keyboard F16 key.
F17 | Keyboard F17 key.
F18 | Keyboard F18 key.
F19 | Keyboard F19 key.
F20 | Keyboard F20 key.
F21 | Keyboard F21 key.
F22 | Keyboard F22 key.
F23 | Keyboard F23 key.
F24 | Keyboard F24 key.
CapsLock | Keyboard Caps Lock key.
PrintScreen | Keyboard Print Screen key.
ScrollLock | Keyboard Scroll Lock key.
Pause | Keyboard Pause key.
Insert | Keyboard Insert key.
Home | Keyboard Home key.
PageUp | Keyboard Page Up key.
Delete | Keyboard Delete Forward key.
End | Keyboard End key.
PageDown | Keyboard Page Down key.
Right | Keyboard Right Arrow key.
Left | Keyboard Left Arrow key.
Down | Keyboard Down Arrow key.
Up | Keyboard Up Arrow key.
NumLock | Keypad Num Lock and Clear key.
NumpadDivide | Keypad / key.
NumpadMultiply | Keypad * key.
NumpadMinus | Keypad - key.
NumpadPlus | Keypad + key.
NumpadEqual | keypad = key
NumpadEnter | Keypad Enter/Return key.
NumpadDecimal | Keypad . and Delete key.
Numpad1 | Keypad 1 and End key.
Numpad2 | Keypad 2 and Down Arrow key.
Numpad3 | Keypad 3 and Page Down key.
Numpad4 | Keypad 4 and Left Arrow key.
Numpad5 | Keypad 5 key.
Numpad6 | Keypad 6 and Right Arrow key.
Numpad7 | Keypad 7 and Home key.
Numpad8 | Keypad 8 and Up Arrow key.
Numpad9 | Keypad 9 and Page Up key.
Numpad0 | Keypad 0 and Insert key.
NonUsBackslash | Keyboard Non-US \ and | key.
Application | Keyboard Application key.
Execute | Keyboard Execute key.
ModeChange | Keyboard Mode Change key.
Help | Keyboard Help key.
Menu | Keyboard Menu key.
Select | Keyboard Select key.
Redo | Keyboard Redo key.
Undo | Keyboard Undo key.
Cut | Keyboard Cut key.
Copy | Keyboard Copy key.
Paste | Keyboard Paste key.
VolumeMute | Keyboard Volume Mute key.
VolumeUp | Keyboard Volume Up key.
VolumeDown | Keyboard Volume Down key.
MediaPlayPause | Keyboard Media Play Pause key.
MediaStop | Keyboard Media Stop key.
MediaNextTrack | Keyboard Media Next Track key.
MediaPreviousTrack | Keyboard Media Previous Track key.
LControl | Keyboard Left Control key.
LShift | Keyboard Left Shift key.
LAlt | Keyboard Left Alt key.
LSystem | Keyboard Left System key.
RControl | Keyboard Right Control key.
RShift | Keyboard Right Shift key.
RAlt | Keyboard Right Alt key.
RSystem | Keyboard Right System key.
Back | Keyboard Back key.
Forward | Keyboard Forward key.
Refresh | Keyboard Refresh key.
Stop | Keyboard Stop key.
Search | Keyboard Search key.
Favorites | Keyboard Favorites key.
HomePage | Keyboard Home Page key.
LaunchApplication1 | Keyboard Launch Application 1 key.
LaunchApplication2 | Keyboard Launch Application 2 key.
LaunchMail | Keyboard Launch Mail key.
LaunchMediaSelect | Keyboard Launch Media Select key.

Definition at line 172 of file Keyboard.hpp.

## Function Documentation

## ◆ delocalize()

Scancode sf::Keyboard::delocalize | ( | Key | key | ) |
| nodiscard

Identify the physical key corresponding to a logical one.

Parameters

  key | Key to "delocalize"

Returns
  The scancode corresponding to the key under the current keyboard layout used by the operating system, or `sf::Keyboard::Scan::Unknown` when the key cannot be mapped to a `sf::Keyboard::Scancode`.

See also
  `localize`

## ◆ getDescription()

String sf::Keyboard::getDescription | ( | Scancode | code | ) |
| nodiscard

Provide a string representation for a given scancode.

The returned string is a short, non-technical description of the key represented with the given scancode. Most effectively used in user interfaces, as the description for the key takes the users keyboard layout into consideration.

Warning
  The result is OS-dependent: for example, `sf::Keyboard::Scan::LSystem` is "Left Meta" on Linux, "Left Windows" on Windows and "Left Command" on macOS.

The current keyboard layout set by the operating system is used to interpret the scancode: for example, `sf::Keyboard::Key::Semicolon` is mapped to ";" for layout and to "é" for others.

Parameters

  code | Scancode to check

Returns
  The localized description of the code

## ◆ isKeyPressed() [1/2]

bool sf::Keyboard::isKeyPressed | ( | Key | key | ) |
| nodiscard

Check if a key is pressed.

Warning
  On macOS you're required to grant input monitoring access for your application in order for `isKeyPressed` to work.

Parameters

  key | Key to check

Returns
  `true` if the key is pressed, `false` otherwise

## ◆ isKeyPressed() [2/2]

bool sf::Keyboard::isKeyPressed | ( | Scancode | code | ) |
| nodiscard

Check if a key is pressed.

Warning
  On macOS you're required to grant input monitoring access for your application in order for `isKeyPressed` to work.

Parameters

  code | Scancode to check

Returns
  `true` if the physical key is pressed, `false` otherwise

## ◆ localize()

Key sf::Keyboard::localize | ( | Scancode | code | ) |
| nodiscard

Localize a physical key to a logical one.

Parameters

  code | Scancode to localize

Returns
  The key corresponding to the scancode under the current keyboard layout used by the operating system, or `sf::Keyboard::Key::Unknown` when the scancode cannot be mapped to a Key.

See also
  `delocalize`

## ◆ setVirtualKeyboardVisible()

void sf::Keyboard::setVirtualKeyboardVisible | ( | bool | visible | ) |

Show or hide the virtual keyboard.

Warning
  The virtual keyboard is not supported on all systems. It will typically be implemented on mobile OSes (Android, iOS) but not on desktop OSes (Windows, Linux, ...).

If the virtual keyboard is not available, this function does nothing.

Parameters

  visible | `true` to show, `false` to hide

## Variable Documentation

## ◆ KeyCount

unsigned int sf::Keyboard::KeyCount {static_cast<unsigned int>(Key::Pause) + 1}
| static constexpr

The total number of keyboard keys, ignoring `Key::Unknown`

Definition at line 162 of file Keyboard.hpp.

## ◆ ScancodeCount

unsigned int sf::Keyboard::ScancodeCount {static_cast<unsigned int>(Scan::LaunchMediaSelect) + 1}
| static constexpr

The total number of scancodes, ignoring `Scan::Unknown`

Definition at line 336 of file Keyboard.hpp.