bool EventDispatcher::dispatchEvent( Event& event ) { event.setSender( this ); EventDispatcher::EventListeners::iterator iter = listeners_.begin(); EventDispatcher::EventListeners::iterator endIter = listeners_.end(); EventListener* el; // std::cout << "event dispatched: " << event.getType() << std::endl; while (iter != endIter) { el = (*iter); // std::cout << "listener of " << el->getType() << std::endl; // std::cout << "comparsion result: " << (el->getType().compare(event.getType()) == 1) << std::endl; if (el->getType().compare(event.getType()) == 0) { if (!el->exec(event)) { return false; } } ++iter; } return true; }
void EventListener::Function::operator()(EventListener const& eventListener) { if (eventListener.getType() == this->_type) { eventListener.execute(this->_widget, this->_event); ++this->_executed; } }
bool EventListener::Compare::operator()(EventListener const& eventListener) { return (eventListener.getType() == this->_type); }