233 lines
8.5 KiB
C++
233 lines
8.5 KiB
C++
|
////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// SFML - Simple and Fast Multimedia Library
|
||
|
// Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org)
|
||
|
//
|
||
|
// This software is provided 'as-is', without any express or implied warranty.
|
||
|
// In no event will the authors be held liable for any damages arising from the use of this software.
|
||
|
//
|
||
|
// Permission is granted to anyone to use this software for any purpose,
|
||
|
// including commercial applications, and to alter it and redistribute it freely,
|
||
|
// subject to the following restrictions:
|
||
|
//
|
||
|
// 1. The origin of this software must not be misrepresented;
|
||
|
// you must not claim that you wrote the original software.
|
||
|
// If you use this software in a product, an acknowledgment
|
||
|
// in the product documentation would be appreciated but is not required.
|
||
|
//
|
||
|
// 2. Altered source versions must be plainly marked as such,
|
||
|
// and must not be misrepresented as being the original software.
|
||
|
//
|
||
|
// 3. This notice may not be removed or altered from any source distribution.
|
||
|
//
|
||
|
////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef SFML_KEYBOARD_HPP
|
||
|
#define SFML_KEYBOARD_HPP
|
||
|
|
||
|
////////////////////////////////////////////////////////////
|
||
|
// Headers
|
||
|
////////////////////////////////////////////////////////////
|
||
|
#include <SFML/Window/Export.hpp>
|
||
|
|
||
|
|
||
|
namespace sf
|
||
|
{
|
||
|
////////////////////////////////////////////////////////////
|
||
|
/// \brief Give access to the real-time state of the keyboard
|
||
|
///
|
||
|
////////////////////////////////////////////////////////////
|
||
|
class SFML_WINDOW_API Keyboard
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
////////////////////////////////////////////////////////////
|
||
|
/// \brief Key codes
|
||
|
///
|
||
|
////////////////////////////////////////////////////////////
|
||
|
enum Key
|
||
|
{
|
||
|
Unknown = -1, ///< Unhandled key
|
||
|
A = 0, ///< 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 X), ...
|
||
|
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 X), ...
|
||
|
Menu, ///< The Menu key
|
||
|
LBracket, ///< The [ key
|
||
|
RBracket, ///< The ] key
|
||
|
Semicolon, ///< The ; key
|
||
|
Comma, ///< The , key
|
||
|
Period, ///< The . key
|
||
|
Quote, ///< The ' key
|
||
|
Slash, ///< The / key
|
||
|
Backslash, ///< The \ key
|
||
|
Tilde, ///< 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
|
||
|
|
||
|
KeyCount, ///< Keep last -- the total number of keyboard keys
|
||
|
|
||
|
// Deprecated values:
|
||
|
|
||
|
Dash = Hyphen, ///< \deprecated Use Hyphen instead
|
||
|
BackSpace = Backspace, ///< \deprecated Use Backspace instead
|
||
|
BackSlash = Backslash, ///< \deprecated Use Backslash instead
|
||
|
SemiColon = Semicolon, ///< \deprecated Use Semicolon instead
|
||
|
Return = Enter ///< \deprecated Use Enter instead
|
||
|
};
|
||
|
|
||
|
////////////////////////////////////////////////////////////
|
||
|
/// \brief Check if a key is pressed
|
||
|
///
|
||
|
/// \param key Key to check
|
||
|
///
|
||
|
/// \return True if the key is pressed, false otherwise
|
||
|
///
|
||
|
////////////////////////////////////////////////////////////
|
||
|
static bool isKeyPressed(Key key);
|
||
|
|
||
|
////////////////////////////////////////////////////////////
|
||
|
/// \brief 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.
|
||
|
///
|
||
|
/// \param visible True to show, false to hide
|
||
|
///
|
||
|
////////////////////////////////////////////////////////////
|
||
|
static void setVirtualKeyboardVisible(bool visible);
|
||
|
};
|
||
|
|
||
|
} // namespace sf
|
||
|
|
||
|
|
||
|
#endif // SFML_KEYBOARD_HPP
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////
|
||
|
/// \class sf::Keyboard
|
||
|
/// \ingroup window
|
||
|
///
|
||
|
/// sf::Keyboard provides an interface to the state of the
|
||
|
/// keyboard. It only contains static functions (a single
|
||
|
/// keyboard is assumed), so it's not meant to be instantiated.
|
||
|
///
|
||
|
/// This class 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:
|
||
|
/// \code
|
||
|
/// if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
|
||
|
/// {
|
||
|
/// // move left...
|
||
|
/// }
|
||
|
/// else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
|
||
|
/// {
|
||
|
/// // move right...
|
||
|
/// }
|
||
|
/// else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
|
||
|
/// {
|
||
|
/// // quit...
|
||
|
/// }
|
||
|
/// \endcode
|
||
|
///
|
||
|
/// \see sf::Joystick, sf::Mouse, sf::Touch
|
||
|
///
|
||
|
////////////////////////////////////////////////////////////
|