VEGO-Engine  0.1
Loading...
Searching...
No Matches
EventManager.h
1#pragma once
2
3#include <functional>
4#include <initializer_list>
5#include <map>
6#include <vector>
7
8#include "SDL3/SDL_events.h"
9#include "SDL3/SDL_init.h"
10
11typedef std::function<SDL_AppResult(SDL_EventType, SDL_Event* const)> EventListener;
12
13class EventManager {
14public:
15 EventManager();
16
17 void registerListener(EventListener listener, std::initializer_list<Uint32> eventTypes);
18 SDL_AppResult handleEvent(SDL_Event* const event);
19private:
20 std::map<Uint32, std::vector<EventListener>> eventListeners = std::map<Uint32, std::vector<EventListener>>();
21};