Zen 0.3.0
Loading...
Searching...
No Matches
ZEN_Events.h
1#pragma once
2
3#include <zen/zen_pch.h>
4
5#include <zen/events/ZEN_Event.h>
6
7namespace Zen {
9 public:
10 virtual ~EventListener() = default;
11
12 virtual bool onEvent(const ZenEvent &event) = 0;
13 virtual int getPriority() const = 0;
14 };
15
17 public:
18 void dispatch(const ZenEvent &event);
19 void registerListener(EventListener *newListener);
20 void unregisterListener(EventListener *targetListener);
21
22 private:
23 struct Listener {
24 int priority;
25 EventListener *listener_ptr;
26 };
27
28 std::vector<Listener> m_listeners;
29 };
30}; // namespace Zen