#include #include 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(Window* window, int width, int height) { for(EventListener* listener : m_listeners) { listener->onSizeChanged(window, width, height); } } void MessageHandler::onEvent(const Event& event) { for(EventListener* listener : m_listeners) { listener->onEvent(event); } } } // namespace sp