int LWF::AddMovieEventHandler( string instanceName, const MovieEventHandlerDictionary &h) { if (h.empty()) return -1; int instId = SearchInstanceId(GetStringId(instanceName)); if (instId >= 0) return AddMovieEventHandler(instId, h); if (instanceName.find('.') == string::npos) return -1; MovieEventHandlersDictionary::iterator it = m_movieEventHandlersByFullName.find(instanceName); if (it == m_movieEventHandlersByFullName.end()) { m_movieEventHandlersByFullName[instanceName] = MovieEventHandlers(); it = m_movieEventHandlersByFullName.find(instanceName); } int id = GetEventOffset(); it->second.Add(id, h); Movie *m = SearchMovieInstance(instId); if (m) m->AddHandlers(&it->second); return id; }
void LWF::SetMoviePostLoadCommand(string instanceName, MovieEventHandler handler) { Movie *movie = SearchMovieInstance(instanceName); if (movie) { handler(movie); } else { LoadHandlerWrapper h(instanceName, handler); MovieEventHandlerDictionary d; d["postLoad"] = h; h.handlerId = AddMovieEventHandler(instanceName, d); } }
void LWF::SetMovieEventHandler(int instId, const MovieEventHandlerDictionary &h) { ClearMovieEventHandler(instId); AddMovieEventHandler(instId, h); }
void LWF::SetMovieEventHandler( string instanceName, const MovieEventHandlerDictionary &h) { ClearMovieEventHandler(instanceName); AddMovieEventHandler(instanceName, h); }