bool nuiEventTargetBase::CallEvent(void* pTarget, nuiDelegateMemento pFunc, const nuiEvent& rEvent) { Delegate del; del.SetMemento(pFunc); del(rEvent); return rEvent.IsCanceled(); }
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; }
void ProjectGenerator::OnTargetSelected(const nuiEvent& rEvent) { nuiDialogSelectDirectory* pDialog = (nuiDialogSelectDirectory*)rEvent.mpUser; mProjectTargetPath = pDialog->GetSelectedDirectory(); mpProjectTarget->SetText(mProjectTargetPath); nglPath path(mProjectTargetPath); OnTargetTextChanged(rEvent); if (!rEvent.IsCanceled()) { rEvent.Cancel(); return; } GetPreferences().SetString(PREFERENCES_PROJECTGENERATOR, _T("nuiTargetPath"), path.GetParent().GetPathName()); }
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; }