tagging release
[dasher.git] / Src / DasherCore / EventHandler.h
blobacbe8102a538787bb8a131303b9a2b32b1dfb136
1 #ifndef __eventhandler_h__
2 #define __eventhandler_h__
4 #include <vector>
6 namespace Dasher {
7 class CEventHandler;
8 class CDasherComponent;
9 class CDasherInterfaceBase;
10 class CEvent;
13 /// \ingroup Core
14 /// @{
15 class Dasher::CEventHandler {
16 public:
18 CEventHandler(Dasher::CDasherInterfaceBase * pInterface):m_pInterface(pInterface) {
19 m_iInHandler = 0;
22 ~CEventHandler() {
25 // Insert an event, which will be propagated to all listeners.
27 void InsertEvent(Dasher::CEvent * pEvent);
29 // (Un)register a listener with the event handler.
31 void RegisterListener(Dasher::CDasherComponent * pListener);
32 void UnregisterListener(Dasher::CDasherComponent * pListener);
34 protected:
36 // Vector containing all currently registered listeners.
38 std::vector < Dasher::CDasherComponent * >m_vListeners;
39 std::vector < Dasher::CDasherComponent * >m_vListenerQueue;
41 int m_iInHandler;
43 Dasher::CDasherInterfaceBase * m_pInterface;
46 /// @}
48 #endif