2010-04-21 14:48:36 +00:00
|
|
|
#ifndef EVENTHANDLER_H
|
|
|
|
#define EVENTHANDLER_H
|
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
#include <map>
|
|
|
|
#include <utility>
|
|
|
|
|
2019-03-07 11:12:09 -05:00
|
|
|
#include <irrlicht/irrlicht.h>
|
2010-04-21 14:48:36 +00:00
|
|
|
|
|
|
|
#include "Debug.h"
|
|
|
|
|
|
|
|
using std::cout;
|
|
|
|
using std::endl;
|
|
|
|
using std::map;
|
|
|
|
using std::make_pair;
|
|
|
|
|
|
|
|
enum EventReceiverType
|
|
|
|
{
|
|
|
|
ERT_USERINTERFACE = 1,
|
|
|
|
ERT_3DVIEW = 2
|
|
|
|
};
|
|
|
|
|
2010-04-23 07:28:59 +00:00
|
|
|
enum UserEventIdentifier
|
|
|
|
{
|
|
|
|
UEI_WINDOWSIZECHANGED = 1
|
|
|
|
};
|
|
|
|
|
2019-03-07 22:18:07 -05:00
|
|
|
class EventHandler : public irr::IEventReceiver
|
2010-04-21 14:48:36 +00:00
|
|
|
{
|
|
|
|
private:
|
2019-03-07 22:18:07 -05:00
|
|
|
irr::IrrlichtDevice *m_Device;
|
2010-04-21 14:48:36 +00:00
|
|
|
map<EventReceiverType, IEventReceiver*> *m_EventReceivers;
|
2019-03-07 22:18:07 -05:00
|
|
|
bool KeyIsDown[irr::KEY_KEY_CODES_COUNT];
|
|
|
|
irr::s32 keyState[irr::KEY_KEY_CODES_COUNT];
|
|
|
|
irr::s32 LMouseState,RMouseState;
|
2010-04-21 14:48:36 +00:00
|
|
|
public:
|
2019-03-07 22:18:07 -05:00
|
|
|
EventHandler( irr::IrrlichtDevice *device );
|
2010-04-21 14:48:36 +00:00
|
|
|
~EventHandler();
|
|
|
|
|
2019-03-07 22:18:07 -05:00
|
|
|
bool addEventReceiver(EventReceiverType type, irr::IEventReceiver *receiver );
|
2010-04-21 14:48:36 +00:00
|
|
|
|
|
|
|
// IEventReceiver
|
2019-03-07 22:18:07 -05:00
|
|
|
virtual bool OnEvent( const irr::SEvent &event );
|
|
|
|
std::wstring m_PreviousPath;
|
2010-04-21 14:48:36 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // EVENTHANDLER_H
|