/********************************************************************
*
* File: fsCInputManager.h
*
* Purpose: cocos2dx input manager impl
*
*********************************************************************/
#ifndef fsCInputManagerhdr
#define fsCInputManagerhdr
#include <base/CCEventListenerMouse.h>
#include <base/CCEventListenerKeyboard.h>
#include <base/CCEventListenerTouch.h>
#include "../../fsIInputManager.h"
#include <fsCore/fsStr.h>
class fsCInputManager : public fsIInputManager
{
friend class fsIInputManager;
public:
fsS32 pointerTypeGet() const override;
fsBool hasPhysicalKeyboardGet() const override;
protected:
void pollKeys() override;
virtual void stolenInputDo()
{
}
void initialiseDo() override;
void uninitialiseDo() override;
fsCInputManager();
virtual ~fsCInputManager();<--- Destructor in derived class
private:
#ifdef fsDesktop
void mouseListenerCreate();
void mouseButtonDownEventCallback(cocos2d::Event* pEvent);
void mouseButtonUpEventCallback(cocos2d::Event* pEvent);
void mouseMoveEventCallback(cocos2d::Event* pEvent);
cocos2d::EventListenerMouse* mMouseListener;
#endif
fsBool keyDecodeDo(fsS32& pKeyCode) override;
void keyboardListenerCreate();
void keyUpEventCallback(cocos2d::EventKeyboard::KeyCode pKeyCode, cocos2d::Event* pEvent);
void keyDownEventCallback(cocos2d::EventKeyboard::KeyCode pKeyCode, cocos2d::Event* pEvent);
void touchListenerCreate();
fsBool touchStartEventCallback(cocos2d::Touch* pTouch, cocos2d::Event* pEvent);
void touchEndEventCallback(cocos2d::Touch* pTouch, cocos2d::Event* pEvent);
void touchMoveEventCallback(cocos2d::Touch* pTouch, cocos2d::Event* pEvent);
cocos2d::EventListenerKeyboard* mKeyboardListener;
cocos2d::EventListenerTouchOneByOne* mTouchListener;
std::map<fsS32, fsS64> mKeysDown;
};
#endif