Add project files.
This commit is contained in:
@@ -0,0 +1,297 @@
|
||||
|
||||
#include "cEvent.hpp"
|
||||
|
||||
using EventEngine::cEvent;
|
||||
|
||||
cEvent::cEvent()
|
||||
{}
|
||||
|
||||
/*virtual*/ cEvent::~cEvent()
|
||||
{
|
||||
//Do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnEvent( const SDL_Event& event )
|
||||
{
|
||||
switch (event.type)
|
||||
{
|
||||
case SDL_WINDOWEVENT:
|
||||
OnWindowsEvent(event);
|
||||
break;
|
||||
case SDL_KEYDOWN:
|
||||
OnKeyDown(event.key.keysym.sym, event.key.keysym.mod);// , Event->key.keysym.unicode);
|
||||
break;
|
||||
case SDL_KEYUP:
|
||||
OnKeyUp(event.key.keysym.sym, event.key.keysym.mod);//, Event->key.keysym.unicode);
|
||||
break;
|
||||
case SDL_MOUSEMOTION:
|
||||
OnMouseMove(event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel, (event.motion.state&SDL_BUTTON(SDL_BUTTON_LEFT)) != 0, (event.motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT)) != 0, (event.motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE)) != 0);
|
||||
break;
|
||||
case SDL_MOUSEBUTTONDOWN:
|
||||
OnMouseButtonUp(event);
|
||||
break;
|
||||
case SDL_MOUSEBUTTONUP:
|
||||
OnMouseButtonDown(event);
|
||||
break;
|
||||
case SDL_JOYAXISMOTION:
|
||||
OnJoyAxis(event.jaxis.which, event.jaxis.axis, event.jaxis.value);
|
||||
break;
|
||||
case SDL_JOYBALLMOTION:
|
||||
OnJoyBall(event.jball.which, event.jball.ball, event.jball.xrel, event.jball.yrel);
|
||||
break;
|
||||
case SDL_JOYHATMOTION:
|
||||
OnJoyHat(event.jhat.which, event.jhat.hat, event.jhat.value);
|
||||
break;
|
||||
case SDL_JOYBUTTONDOWN:
|
||||
OnJoyButtonDown(event.jbutton.which, event.jbutton.button);
|
||||
break;
|
||||
case SDL_JOYBUTTONUP:
|
||||
OnJoyButtonUp(event.jbutton.which, event.jbutton.button);
|
||||
break;
|
||||
case SDL_QUIT:
|
||||
OnExit();
|
||||
break;
|
||||
case SDL_SYSWMEVENT:
|
||||
//Ignore
|
||||
break;
|
||||
default:
|
||||
OnUser(event.user.type, event.user.code, event.user.data1, event.user.data2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnInputFocus()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnInputBlur()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnKeyDown(SDL_Keycode sym, Uint16 mod)//, Uint16 unicode)
|
||||
{
|
||||
sym, mod;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnKeyUp(SDL_Keycode sym, Uint16 mod)//, Uint16 unicode)
|
||||
{
|
||||
sym, mod;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMouseFocus()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMouseBlur()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMouseMove(int mX, int mY, int relX, int relY, bool Left, bool Right, bool Middle)
|
||||
{
|
||||
mX, mY, relX, relY, Left, Right, Middle;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMouseWheel(bool Up, bool Down)
|
||||
{
|
||||
Up, Down;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnLButtonDown(int mX, int mY)
|
||||
{
|
||||
mX, mY;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnLButtonUp(int mX, int mY)
|
||||
{
|
||||
mX, mY;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnRButtonDown(int mX, int mY)
|
||||
{
|
||||
mX, mY;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnRButtonUp(int mX, int mY)
|
||||
{
|
||||
mX, mY;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMButtonDown(int mX, int mY)
|
||||
{
|
||||
mX, mY;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMButtonUp(int mX, int mY)
|
||||
{
|
||||
mX, mY;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnJoyAxis(SDL_JoystickID which, Uint8 axis, Sint16 value)
|
||||
{
|
||||
which, axis, value;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnJoyButtonDown(SDL_JoystickID which, Uint8 button)
|
||||
{
|
||||
which, button;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnJoyButtonUp(SDL_JoystickID which, Uint8 button)
|
||||
{
|
||||
which, button;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnJoyHat(SDL_JoystickID which, Uint8 hat, Uint8 value)
|
||||
{
|
||||
which, hat, value;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnJoyBall(SDL_JoystickID which, Uint8 ball, Sint16 xrel, Sint16 yrel)
|
||||
{
|
||||
which, ball, xrel, yrel;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMinimize()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnRestore()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnResize(int w, int h)
|
||||
{
|
||||
w, h;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnExpose()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnExit()
|
||||
{
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnUser(Uint32 type, int code, void* data1, void* data2)
|
||||
{
|
||||
type, code, data1, data2;
|
||||
//Pure virtual, do nothing
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnWindowsEvent( const SDL_Event& event )
|
||||
{
|
||||
switch (event.window.event)
|
||||
{
|
||||
case SDL_WINDOWEVENT_SHOWN:
|
||||
SDL_Log("Window %d shown", event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_HIDDEN:
|
||||
SDL_Log("Window %d hidden", event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_EXPOSED:
|
||||
SDL_Log("Window %d exposed", event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_MOVED:
|
||||
SDL_Log("Window %d moved to %d,%d",
|
||||
event.window.windowID, event.window.data1,
|
||||
event.window.data2);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_RESIZED:
|
||||
SDL_Log("Window %d resized to %dx%d",
|
||||
event.window.windowID, event.window.data1,
|
||||
event.window.data2);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
||||
SDL_Log("Window %d size changed to %dx%d",
|
||||
event.window.windowID, event.window.data1,
|
||||
event.window.data2);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_MINIMIZED:
|
||||
SDL_Log("Window %d minimized", event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_MAXIMIZED:
|
||||
SDL_Log("Window %d maximized", event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_RESTORED:
|
||||
SDL_Log("Window %d restored", event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_ENTER:
|
||||
SDL_Log("Mouse entered window %d",
|
||||
event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_LEAVE:
|
||||
SDL_Log("Mouse left window %d", event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_FOCUS_GAINED:
|
||||
SDL_Log("Window %d gained keyboard focus",
|
||||
event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_FOCUS_LOST:
|
||||
SDL_Log("Window %d lost keyboard focus",
|
||||
event.window.windowID);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_CLOSE:
|
||||
SDL_Log("Window %d closed", event.window.windowID);
|
||||
break;
|
||||
default:
|
||||
SDL_Log("Window %d got unknown event %d",
|
||||
event.window.windowID, event.window.event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMouseButtonDown( const SDL_Event& event )
|
||||
{
|
||||
switch (event.button.button)
|
||||
{
|
||||
case SDL_BUTTON_LEFT:
|
||||
OnLButtonDown(event.button.x, event.button.y);
|
||||
break;
|
||||
case SDL_BUTTON_RIGHT:
|
||||
OnRButtonDown(event.button.x, event.button.y);
|
||||
break;
|
||||
case SDL_BUTTON_MIDDLE:
|
||||
OnMButtonDown(event.button.x, event.button.y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*virtual*/ void cEvent::OnMouseButtonUp( const SDL_Event& event )
|
||||
{
|
||||
switch (event.button.button)
|
||||
{
|
||||
case SDL_BUTTON_LEFT:
|
||||
OnLButtonUp(event.button.x, event.button.y);
|
||||
break;
|
||||
case SDL_BUTTON_RIGHT:
|
||||
OnRButtonUp(event.button.x, event.button.y);
|
||||
break;
|
||||
case SDL_BUTTON_MIDDLE:
|
||||
OnMButtonUp(event.button.x, event.button.y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
#ifndef _CEVENT_HPP_
|
||||
#define _CEVENT_HPP_
|
||||
|
||||
/*** SDL Header Files ***/
|
||||
#include <SDL.h>
|
||||
|
||||
/*** DLL Header File ***/
|
||||
#include "dllExport.h"
|
||||
|
||||
namespace EventEngine {
|
||||
class EXPORT_FROM_MYDLL cEvent
|
||||
{
|
||||
public:
|
||||
public:
|
||||
cEvent();
|
||||
|
||||
virtual ~cEvent();
|
||||
|
||||
virtual void OnEvent( const SDL_Event& event );
|
||||
|
||||
virtual void OnInputFocus();
|
||||
|
||||
virtual void OnInputBlur();
|
||||
|
||||
virtual void OnKeyDown(SDL_Keycode sym, Uint16 mod);//, Uint16 unicode);
|
||||
|
||||
virtual void OnKeyUp(SDL_Keycode sym, Uint16 mod);//, Uint16 unicode);
|
||||
|
||||
virtual void OnMouseFocus();
|
||||
|
||||
virtual void OnMouseBlur();
|
||||
|
||||
virtual void OnMouseMove(int mX, int mY, int relX, int relY, bool Left, bool Right, bool Middle);
|
||||
|
||||
virtual void OnMouseWheel(bool Up, bool Down); //Not implemented
|
||||
|
||||
virtual void OnLButtonDown(int mX, int mY);
|
||||
|
||||
virtual void OnLButtonUp(int mX, int mY);
|
||||
|
||||
virtual void OnRButtonDown(int mX, int mY);
|
||||
|
||||
virtual void OnRButtonUp(int mX, int mY);
|
||||
|
||||
virtual void OnMButtonDown(int mX, int mY);
|
||||
|
||||
virtual void OnMButtonUp(int mX, int mY);
|
||||
|
||||
virtual void OnJoyAxis(SDL_JoystickID which, Uint8 axis, Sint16 value);
|
||||
|
||||
virtual void OnJoyButtonDown(SDL_JoystickID which, Uint8 button);
|
||||
|
||||
virtual void OnJoyButtonUp(SDL_JoystickID which, Uint8 button);
|
||||
|
||||
virtual void OnJoyHat(SDL_JoystickID which, Uint8 hat, Uint8 value);
|
||||
|
||||
virtual void OnJoyBall(SDL_JoystickID which, Uint8 ball, Sint16 xrel, Sint16 yrel);
|
||||
|
||||
virtual void OnMinimize();
|
||||
|
||||
virtual void OnRestore();
|
||||
|
||||
virtual void OnResize(int w, int h);
|
||||
|
||||
virtual void OnExpose();
|
||||
|
||||
virtual void OnExit();
|
||||
|
||||
virtual void OnUser(Uint32 type, int code, void* data1, void* data2);
|
||||
private:
|
||||
void OnWindowsEvent( const SDL_Event& event );
|
||||
void OnMouseButtonDown( const SDL_Event& event );
|
||||
void OnMouseButtonUp( const SDL_Event& event );
|
||||
};/// END CLASS DEFINITION cEvent
|
||||
}/// END NAMESPACE DEFINITION EventEngine
|
||||
#endif/// END IFNDEF _CEVENT_HPP_
|
||||
@@ -0,0 +1,123 @@
|
||||
#include "cEventControl.hpp"
|
||||
|
||||
/*** Custom Header Files ***/
|
||||
#include "../InputEngine/cInput.hpp"
|
||||
#include "../MathEngine/iVector/iVector2.hpp"
|
||||
#include "../GUIEngine/cGUI.hpp"
|
||||
|
||||
using EventEngine::cEventControl;
|
||||
using MathEngine::iVector2;
|
||||
|
||||
/*static*/ cEventControl* cEventControl::sp_inst = nullptr;
|
||||
|
||||
//Private
|
||||
cEventControl::cEventControl()
|
||||
{}
|
||||
|
||||
cEventControl::~cEventControl()
|
||||
{
|
||||
CleanUp();
|
||||
for (unsigned int i = 0; i < m_children.size(); ++i) {
|
||||
delete m_children[i];
|
||||
m_children[i] = nullptr;
|
||||
}
|
||||
m_children.clear();
|
||||
}
|
||||
|
||||
//Public
|
||||
/*static*/ cEventControl& cEventControl::Inst()
|
||||
{
|
||||
if (sp_inst == nullptr)
|
||||
sp_inst = new cEventControl();
|
||||
return *sp_inst;
|
||||
}
|
||||
|
||||
/*static*/ void cEventControl::Delete()
|
||||
{
|
||||
delete sp_inst;
|
||||
sp_inst = nullptr;
|
||||
}
|
||||
|
||||
//Functions
|
||||
const bool cEventControl::Initialize() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
const bool cEventControl::Setup()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void cEventControl::CleanUp()
|
||||
{
|
||||
}
|
||||
|
||||
/* Checks for Events */
|
||||
void cEventControl::CheckEvents()
|
||||
{
|
||||
SDL_Event event;
|
||||
while ( SDL_PollEvent(&event)) {
|
||||
std::vector<EventEngine::cEvent*>::iterator it;
|
||||
|
||||
for (it = m_children.begin(); it < m_children.end(); it++) {
|
||||
(*it)->OnEvent(event);
|
||||
}
|
||||
// iVector2 location = { 0, 0 };
|
||||
// switch (event.type)
|
||||
// {
|
||||
// case SDL_KEYUP:
|
||||
// case SDL_KEYDOWN:
|
||||
// case SDL_JOYAXISMOTION:
|
||||
// case SDL_JOYBALLMOTION:
|
||||
// case SDL_JOYHATMOTION:
|
||||
// case SDL_JOYBUTTONDOWN:
|
||||
// case SDL_JOYBUTTONUP:
|
||||
// InputEngine::cInput::Inst().CheckInputs(event);
|
||||
// break;
|
||||
// case SDL_MOUSEBUTTONDOWN:
|
||||
//
|
||||
// SDL_GetMouseState(&location.x, &location.y);
|
||||
// GUIEngine::cGUI::Inst().Event(location, GUIEngine::cGUI::eGUIEventType::MouseButton1);
|
||||
// break;
|
||||
// case SDL_MOUSEBUTTONUP:
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
void cEventControl::AddEvent(EventEngine::cEvent* event)
|
||||
{
|
||||
m_children.push_back(event);
|
||||
}
|
||||
|
||||
const bool cEventControl::RemoveEvent(EventEngine::cEvent* event)
|
||||
{
|
||||
bool rtn = false;
|
||||
std::vector<EventEngine::cEvent*>::iterator it;
|
||||
|
||||
for (it = m_children.begin(); it < m_children.end(); it++) {
|
||||
if (event == (*it)) {
|
||||
m_children.erase(it);
|
||||
rtn = true;
|
||||
//break out of the for loop
|
||||
break;
|
||||
}
|
||||
}
|
||||
return rtn;
|
||||
}
|
||||
|
||||
std::vector<EventEngine::cEvent*>& cEventControl::GetEvents()
|
||||
{
|
||||
return m_children;
|
||||
}
|
||||
|
||||
|
||||
///Sets
|
||||
|
||||
///Gets
|
||||
/* Gets return true if Event was initialized */
|
||||
const bool cEventControl::IsInit() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
#ifndef _CEVENTCONTROL_HPP_
|
||||
#define _CEVENTCONTROL_HPP_
|
||||
|
||||
/*** C++ STL Files ***/
|
||||
#include <vector>
|
||||
|
||||
/*** SDL Header Files ***/
|
||||
#include <SDL.h>
|
||||
|
||||
/*** DLL Header File ***/
|
||||
#include "dllExport.h"
|
||||
|
||||
#include "cEvent.hpp"
|
||||
|
||||
namespace EventEngine {
|
||||
/* Singleton */
|
||||
class EXPORT_FROM_MYDLL cEventControl
|
||||
{
|
||||
private:
|
||||
cEventControl();
|
||||
~cEventControl();
|
||||
|
||||
public:
|
||||
static cEventControl& Inst();
|
||||
static void Delete();
|
||||
|
||||
//Functions
|
||||
const bool Initialize() const;
|
||||
|
||||
const bool Setup();
|
||||
void CleanUp();
|
||||
|
||||
/* Checks for Events */
|
||||
void CheckEvents();
|
||||
|
||||
void AddEvent(EventEngine::cEvent* event);
|
||||
const bool RemoveEvent(EventEngine::cEvent* event);
|
||||
|
||||
std::vector<EventEngine::cEvent*>& GetEvents();
|
||||
|
||||
|
||||
///Sets
|
||||
|
||||
///Gets
|
||||
/* Gets return true if Event was initialized */
|
||||
const bool IsInit() const;
|
||||
|
||||
private:
|
||||
std::vector<cEvent*> m_children;
|
||||
static cEventControl* sp_inst;// = nullptr
|
||||
};/// END CLASS DEFINITION cEventControl
|
||||
}/// END NAMESPACE DEFINITION EventEngine
|
||||
#endif/// END IFNDEF _CEVENTCONTROL_HPP_
|
||||
Reference in New Issue
Block a user