00001 #ifndef OIS_INPUT_IMPL_HPP
00002 #define OIS_INPUT_IMPL_HPP
00003
00004 #include <utils.hpp>
00005 #include <input.hpp>
00006
00007 namespace OIS {
00008 class InputManager;
00009 class Mouse;
00010 class Keyboard;
00011 }
00012
00013 namespace input
00014 {
00015 class ois_key_listener;
00016
00017 class ois_handler : public handler_impl
00018 {
00019 public :
00020
00022
00028 ois_handler(const std::string& sWindowHandle, float fScreenWidth, float fScreenHeight, bool bMouseGrab = false);
00029
00031 ~ois_handler();
00032
00033 ois_handler(const ois_handler&) = delete;
00034 ois_handler& operator = (const ois_handler&) = delete;
00035
00036 void toggle_mouse_grab() override;
00037
00038 void update() override;
00039
00040 private :
00041
00042 void create_ois_();
00043 void delete_ois_();
00044
00045 float fScreenWidth_;
00046 float fScreenHeight_;
00047
00048 std::string sWindowHandle_;
00049 bool bMouseGrab_;
00050
00051 float fOldMouseX_, fOldMouseY_;
00052
00053 OIS::InputManager* pOISInputMgr_;
00054 OIS::Keyboard* pKeyboard_;
00055 OIS::Mouse* pMouse_;
00056
00057 utils::refptr<ois_key_listener> pKeyListener_;
00058 };
00059 }
00060
00061 #endif