Input.hpp
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef SFML_INPUT_HPP
26#define SFML_INPUT_HPP
27
29// Headers
31#include <SFML/Config.hpp>
32#include <SFML/System/NonCopyable.hpp>
33#include <SFML/Window/Event.hpp>
34#include <SFML/Window/WindowListener.hpp>
35
36
37namespace sf
38{
44class SFML_API Input : public WindowListener, NonCopyable
45{
46public :
47
52 Input();
53
62 bool IsKeyDown(Key::Code KeyCode) const;
63
72 bool IsMouseButtonDown(Mouse::Button Button) const;
73
83 bool IsJoystickButtonDown(unsigned int JoyId, unsigned int Button) const;
84
91 int GetMouseX() const;
92
99 int GetMouseY() const;
100
110 float GetJoystickAxis(unsigned int JoyId, Joy::Axis Axis) const;
111
112private :
113
118 virtual void OnEvent(const Event& EventReceived);
119
124 void ResetStates();
125
127 // Member data
129 bool myKeys[Key::Count];
130 bool myMouseButtons[Mouse::ButtonCount];
131 int myMouseX;
132 int myMouseY;
133 bool myJoystickButtons[Joy::Count][Joy::ButtonCount];
134 float myJoystickAxis[Joy::Count][Joy::AxisCount];
135};
136
137} // namespace sf
138
139
140#endif // SFML_INPUT_HPP
Event defines a system event and its parameters.
Definition Event.hpp:198
bool IsKeyDown(Key::Code KeyCode) const
Get the state of a key.
Definition Input.cpp:47
Input()
Default constructor.
Definition Input.cpp:36
bool IsJoystickButtonDown(unsigned int JoyId, unsigned int Button) const
Get the state of a joystick button.
Definition Input.cpp:65
bool IsMouseButtonDown(Mouse::Button Button) const
Get the state of a mouse button.
Definition Input.cpp:56
float GetJoystickAxis(unsigned int JoyId, Joy::Axis Axis) const
Get a joystick axis position.
Definition Input.cpp:95
int GetMouseX() const
Get the mouse X position.
Definition Input.cpp:77
int GetMouseY() const
Get the mouse Y position.
Definition Input.cpp:86
Base class for classes that want to receive events from a window (for internal use only).
@ Count
Total number of supported joysticks.
Definition Event.hpp:188
@ ButtonCount
Total number of supported joystick buttons.
Definition Event.hpp:189
NonCopyable()
The default constructor won't be generated, so provide it.