#ifndef DEF_INPUT #define DEF_INPUT ///Jovian ///Centralisation du traitement d'évènement // Include #include #include #define MOUSE_LEFT 1 #define MOUSE_MIDDLE 2 #define MOUSE_RIGHT 3 #define MOUSE_ANNEX_A 4 #define MOUSE_ANNEX_B 5 class Input { /// Methods public: Input(); virtual ~Input(); virtual void updateEvents(); protected: // Deal with an event, return true if caught bool catchKeyBoardEvents(const SDL_Event &event); bool catchMouseEvents(const SDL_Event &event); bool catchWindowEvents(const SDL_Event &event); public: bool isFinished() const; void showCursor(bool flag) const; void capPtr(bool flag); bool getKey(const SDL_Scancode key) const; bool getInstantKey(const SDL_Scancode key) const; bool getMouseKey(const Uint8 key) const; bool isMouseMoving() const; int getX() const; int getY() const; int getXFromCenter(); int getYFromCenter(); int getXRel() const; int getYRel() const; void setWindow(SDL_Window *activWindow); /// Variables protected: SDL_Event m_event; bool m_keys[SDL_NUM_SCANCODES]; std::set m_instantKeys; bool m_mouseKeys[8]; int m_x; int m_y; int m_xRel; int m_yRel; bool m_finished; bool m_relativeMouse; SDL_Window *m_window; int m_windowHalfHeight; int m_windowHalfWidth; }; #endif