Esempio n. 1
0
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;
}
Esempio n. 2
0
  void	EventListener::Function::operator()(EventListener const& eventListener)
  {
    if (eventListener.getType() == this->_type)
      {
	eventListener.execute(this->_widget, this->_event);
	++this->_executed;
      }
  }
Esempio n. 3
0
 bool	EventListener::Compare::operator()(EventListener const& eventListener)
 {
   return (eventListener.getType() == this->_type);
 }