SUNENGINE 0.0.2
A simple and bright C++ game engine.
 
Loading...
Searching...
No Matches
SingleKeyEventManager.h
1#ifndef SingleKeyEventManager_H
2#define SingleKeyEventManager_H
3
4#include "AzulCore.h"
5#include <list>
6#include "../EventType.h"
7
8class Inputable;
9
17class SingleKeyEventManager
18{
19private:
23 using InputableCollection = std::list<Inputable*>;
24
28 using CollectionIterator = InputableCollection::iterator;
29
33 AZUL_KEY key;
34
39
44
49
54
59
60public:
61 SingleKeyEventManager() = default;
62 SingleKeyEventManager(const SingleKeyEventManager&) = delete;
63 SingleKeyEventManager& operator=(const SingleKeyEventManager&) = delete;
64 ~SingleKeyEventManager() = default;
65
70 SingleKeyEventManager(AZUL_KEY k);
71
77 void Register(Inputable* in, EventType e);
78
84 void Deregister(Inputable* in, EventType e);
85
89 void ProcessKeyEvent();
90
95 bool IsEmpty();
96};
97
98#endif
Defines the event types for input handling.
EventType
Enum class representing the types of input events.
Definition EventType.h:19
Base class for objects that can handle keyboard input events.
Definition Inputable.h:23
void Deregister(Inputable *in, EventType e)
Deregisters a GameObject for a key event.
Definition SingleKeyEventManager.cpp:35
void Register(Inputable *in, EventType e)
Registers a GameObject for a key event.
Definition SingleKeyEventManager.cpp:16
AZUL_KEY key
The key associated with this manager.
Definition SingleKeyEventManager.h:33
InputableCollection keyPressCol
Collection of GameObjects for key press events.
Definition SingleKeyEventManager.h:43
InputableCollection keyHeldCol
Collection of GameObjects for key held events.
Definition SingleKeyEventManager.h:48
InputableCollection keyReleaseCol
Collection of GameObjects for key release events.
Definition SingleKeyEventManager.h:53
EventType eventState
The current event state of the key.
Definition SingleKeyEventManager.h:58
bool IsEmpty()
Checks if there are no registered GameObjects.
Definition SingleKeyEventManager.cpp:100
std::list< Inputable * > InputableCollection
Type alias for the collection of inputable GameObjects.
Definition SingleKeyEventManager.h:23
InputableCollection keyInactiveCol
Collection of GameObjects for key inactive events.
Definition SingleKeyEventManager.h:38
void ProcessKeyEvent()
Processes the key event for all registered GameObjects.
Definition SingleKeyEventManager.cpp:54
InputableCollection::iterator CollectionIterator
Type alias for the collection iterator.
Definition SingleKeyEventManager.h:28