PolyEventDispatcher.h 986 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * PolyEventDispatcher.h
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 3/28/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. // @package Events
  10. #pragma once
  11. #include "PolyLogger.h"
  12. #include "PolyGlobals.h"
  13. #include "PolyEventHandler.h"
  14. #include "PolyEvent.h"
  15. #include <vector>
  16. using std::vector;
  17. namespace Polycode {
  18. typedef struct {
  19. EventHandler *handler;
  20. int eventCode;
  21. } EventEntry;
  22. class _PolyExport EventDispatcher : public EventHandler {
  23. public:
  24. EventDispatcher();
  25. virtual ~EventDispatcher();
  26. void removeAllHandlers();
  27. void removeAllHandlersForListener(void *listener);
  28. void addEventListener(EventHandler *handler, int eventCode);
  29. void removeEventListener(EventHandler *handler, int eventCode);
  30. void __dispatchEvent(Event *event, int eventCode);
  31. void dispatchEvent(Event *event, int eventCode);
  32. void dispatchEventNoDelete(Event *event, int eventCode);
  33. protected:
  34. vector<EventEntry> handlerEntries;
  35. };
  36. }