Пример #1
0
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;
}
Пример #2
0
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);
	}
}
Пример #3
0
void LWF::SetMovieEventHandler(int instId, const MovieEventHandlerDictionary &h)
{
	ClearMovieEventHandler(instId);
	AddMovieEventHandler(instId, h);
}
Пример #4
0
void LWF::SetMovieEventHandler(
	string instanceName, const MovieEventHandlerDictionary &h)
{
	ClearMovieEventHandler(instanceName);
	AddMovieEventHandler(instanceName, h);
}