aboutsummaryrefslogtreecommitdiff
path: root/mwe/events/include/iKeyListener.h
blob: 5fee2eb2eb0ab0f6534bf0927bdbfcb35f5ad048 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
#include "event.h"
#include "eventHandler.h"
#include "eventManager.h"
class IKeyListener {
public:
	virtual ~IKeyListener();
	virtual void onKeyPressed(const KeyPressedEvent & event) = 0;
	virtual void onKeyReleased(const KeyReleasedEvent & event) = 0;

protected:
	void subscribeEvents(int listenerId = 0);
	void unsubscribeEvents(int listenerId = 0);
	void activate(int listenerId = 0) { subscribeEvents(listenerId); }
	void deactivate(int listenerId = 0) { unsubscribeEvents(listenerId); }

private:
	EventHandler<KeyPressedEvent> keyPressedHandler;
	EventHandler<KeyReleasedEvent> keyReleasedHandler;
};