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