1
0
Fork 0

System/MessageHandler: Make this class useful by implementing EventListener and also add a vector of listeners with register/unregister methods.

This commit is contained in:
Henrik Hautakoski 2020-01-30 23:54:43 +01:00
parent cd32d0b7c2
commit a30fd37032
No known key found for this signature in database
GPG key ID: 96765B12FEAC4745
2 changed files with 47 additions and 4 deletions

View file

@ -4,8 +4,42 @@
namespace sp {
void MessageHandler::registerListener(EventListener *listener)
{
for(auto it = m_listeners.begin(); it != m_listeners.end(); it++) {
if (listener == *it) {
// Already in vector. nothing to do.
return;
}
}
m_listeners.push_back(listener);
}
void MessageHandler::unregisterListener(EventListener *listener)
{
for(auto it = m_listeners.begin(); it != m_listeners.end(); it++) {
if (listener == *it) {
m_listeners.erase(it);
break;
}
}
}
void MessageHandler::onSizeChanged(Display* display, int width, int height)
{
for(EventListener* listener : m_listeners) {
listener->onSizeChanged(display, width, height);
}
}
void MessageHandler::onEvent(const Event& event)
{
for(EventListener* listener : m_listeners) {
listener->onEvent(event);
}
}
} // namespace sp