NRE_InputManager.hpp
Go to the documentation of this file.
1 
10  #include <vector>
11  #include <Header/NRE_Math.hpp>
12  #include <Header/NRE_Utility.hpp>
13 
14  #ifdef _WIN32 // Windows
15  #include "../../../OS/Windows/Event/Input/Keys/NRE_WindowsKeyTranslater.hpp"
16  #elif __linux__ // Linux
17  #include "../../../OS/Linux/Event/Input/Keys/NRE_LinuxKeyTranslater.hpp"
18  #else
19  #error "Not Supported Yet or Unknown compiler"
20  #endif
21 
22 
23  #include "../Event/NRE_Event.hpp"
24 
25  #pragma once
26 
31  namespace NRE {
36  namespace Event {
37 
42  class InputManager {
43  private : // Fields
44  KeyTranslater keyTranslater;
45  Utility::Vector<KeyCode> keys;
46  Utility::Vector<ButtonEventData> buttons;
48  public : // Methods
49  //## Getter ##//
55  bool isKeyPressed(KeyCode code) const;
61  bool isButtonPressed(ButtonCode code) const;
62 
63  //## Methods ##//
64  #ifdef _WIN32 // Windows
65 
71  KeyCode translateKey(WPARAM wParam, LPARAM lParam) const;
77  ButtonCode translateButton(WPARAM wParam) const;
78  #elif __linux__ // Linux
79 
84  KeyCode translateKey(XKeyEvent const& keyEvent) const;
90  ButtonCode translateButton(XButtonEvent const& buttonEvent) const;
91  #endif
92 
96  void processPressedKey(KeyCode key);
101  void processPressedButton(ButtonEventData const& buttonData);
106  void processReleasedKey(KeyCode key);
111  void processReleasedButton(ButtonEventData const& buttonData);
115  void update();
120  void updateButtonEventData(ButtonEventData const& buttonData);
121  };
122  }
123  }
124 
125  #include "NRE_InputManager.tpp"
126  #ifdef _WIN32 // Windows
127  #include "../../../OS/Windows/Event/Input/NRE_WindowsInputManager.tpp"
128  #elif __linux__ // Linux
129  #include "../../../OS/Linux/Event/Input/NRE_LinuxInputManager.tpp"
130  #endif
KeyCode
Definition: NRE_Keys.hpp:27
void updateButtonEventData(ButtonEventData const &buttonData)
Manage the process of native input.
Definition: NRE_InputManager.hpp:42
void update()
Definition: NRE_InputManager.cpp:20
Manage the translation of native key.
Definition: NRE_LinuxKeyTranslater.hpp:31
bool isButtonPressed(ButtonCode code) const
Event&#39;s API.
void processReleasedButton(ButtonEventData const &buttonData)
void processPressedButton(ButtonEventData const &buttonData)
void processReleasedKey(KeyCode key)
The NearlyRealEngine&#39;s global namespace.
Manage a button event.
Definition: NRE_ButtonEvent.hpp:31
ButtonCode
Definition: NRE_Buttons.hpp:27
void processPressedKey(KeyCode key)
bool isKeyPressed(KeyCode code) const