void ProjectLoaderHooks::CallHooks(cbProject* project, TiXmlElement* elem, bool isLoading) { for (HookFunctorsMap::iterator it = s_HookFunctorsMap.begin(); it != s_HookFunctorsMap.end(); ++it) { ProjectLoaderHooks::HookFunctorBase* functor = it->second; if (functor) functor->Call(project, elem, isLoading); } }
void EditorHooks::CallHooks(cbEditor* editor, wxScintillaEvent& event) { for (HookFunctorsMap::iterator it = s_HookFunctorsMap.begin(); it != s_HookFunctorsMap.end(); ++it) { EditorHooks::HookFunctorBase* functor = it->second; if (functor) functor->Call(editor, event); } }
int ProjectLoaderHooks::RegisterHook(ProjectLoaderHooks::HookFunctorBase* functor) { for (HookFunctorsMap::iterator it = s_HookFunctorsMap.begin(); it != s_HookFunctorsMap.end(); ++it) { if (it->second == functor) return it->first; } s_HookFunctorsMap[s_UniqueID] = functor; return s_UniqueID++; }
ProjectLoaderHooks::HookFunctorBase* ProjectLoaderHooks::UnregisterHook(int id, bool deleteHook) { HookFunctorsMap::iterator it = s_HookFunctorsMap.find(id); if (it != s_HookFunctorsMap.end()) { ProjectLoaderHooks::HookFunctorBase* functor = it->second; s_HookFunctorsMap.erase(it); if (deleteHook) { delete functor; return 0; } return functor; } return 0; }
bool ProjectLoaderHooks::HasRegisteredHooks() { return s_HookFunctorsMap.size() != 0; }
bool EditorHooks::HasRegisteredHooks() { return s_HookFunctorsMap.size() != 0; }