bool nuiEventSource::SendEvent(const nuiEvent& rEvent) { if (IsEnabled() && !mpTargets.empty()) { rEvent.SetSource(this); std::vector<nuiEventTargetBase*> targets(mpTargets); std::vector<nuiEventTargetBase*>::const_iterator it = targets.begin(); std::vector<nuiEventTargetBase*>::const_iterator end = targets.end(); mEnumerating++; bool handled = false; while (it != end && !handled) { nuiEventTargetBase* pETB = *it; if (mGraveYard.find(pETB) == mGraveYard.end()) { pETB->OnEvent(rEvent); handled = rEvent.IsCanceled(); } ++it; } mEnumerating--; mGraveYard.clear(); return handled; } return false; }
bool nuiEventSource::SendEvent(const nuiEvent& rEvent) { if (IsEnabled() && !mpTargets.empty()) { rEvent.SetSource(this); std::vector<nuiEventTargetBase*> targets(mpTargets); std::vector<nuiEventTargetBase*>::const_iterator it = targets.begin(); std::vector<nuiEventTargetBase*>::const_iterator end = targets.end(); bool handled = false; while (it != end && !handled) { ((*it)->OnEvent(rEvent)); handled = rEvent.IsCanceled(); ++it; } return handled; } return false; }