Made the EventManager able to process Events

This commit is contained in:
2006-10-12 13:23:19 -04:00
parent 0011f899ac
commit 65f9f388ba
2 changed files with 30 additions and 2 deletions

View File

@@ -27,10 +27,31 @@
* @see EventManager.h
*/
#include "EventManager.h"
#include <cstdlib>
#include <iostream>
namespace OpenArena
{
EventManager::EventManager()
{
};
};
}
void EventManager::SendEvent(Event* event)
{
unsigned int index;
for(index=0; index < eventHandlers.Length(); index++)
{
Event::EventHandler* handler = eventHandlers[index];
if(handler->Handles(event->GetEventType()))
{
handler->HandleEvent(event);
}
}
}
void EventManager::RegisterEventHandler(Event::EventHandler* eventHandler)
{
eventHandlers.Insert(eventHandler);
}
};

View File

@@ -20,6 +20,9 @@
#ifndef __OpenArena_EventMangaer_h__
#define __OpenArena_EventMangaer_h__
#include "Events/Event.h"
#include "list.h"
/**
* @file EventManager.h
* @breif Specification of the EventManager class
@@ -36,6 +39,10 @@ namespace OpenArena
{
public:
EventManager();
void SendEvent(Event* event);
void RegisterEventHandler(Event::EventHandler* eventHandler);
private:
list<Event::EventHandler*> eventHandlers;
};
}
#endif /*__OpenArena_EventMangaer_h__*/