Loading...
Searching...
No Matches
sf::Keyboard Namespace Reference

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:

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

Typedef Documentation

◆ Scancode

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.

The A key.

The B key.

The C key.

The D key.

The E key.

The F key.

The G key.

The H key.

The I key.

The J key.

The K key.

The L key.

The M key.

The N key.

The O key.

The P key.

The Q key.

The R key.

The S key.

The T key.

The U key.

The V key.

The W key.

The X key.

The Y key.

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.

Keyboard a and A key.

Keyboard b and B key.

Keyboard c and C key.

Keyboard d and D key.

Keyboard e and E key.

Keyboard f and F key.

Keyboard g and G key.

Keyboard h and H key.

Keyboard i and I key.

Keyboard j and J key.

Keyboard k and K key.

Keyboard l and L key.

Keyboard m and M key.

Keyboard n and N key.

Keyboard o and O key.

Keyboard p and P key.

Keyboard q and Q key.

Keyboard r and R key.

Keyboard s and S key.

Keyboard t and T key.

Keyboard u and U key.

Keyboard v and V key.

Keyboard w and W key.

Keyboard x and X key.

Keyboard y and Y key.

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
keyKey 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
codeScancode 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
keyKey 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
codeScancode 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
codeScancode 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
visibletrue to show, false to hide

Variable Documentation

◆ KeyCount

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

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}
staticconstexpr

The total number of scancodes, ignoring Scan::Unknown

Definition at line 336 of file Keyboard.hpp.