Exemple #1
0
int LWF::AddButtonEventHandler(string instanceName,
	const ButtonEventHandlerDictionary &h, ButtonKeyPressHandler kh)
{
	if (h.empty())
		return -1;

	int instId = SearchInstanceId(GetStringId(instanceName));
	if (instId >= 0)
		return AddButtonEventHandler(instId, h, kh);

	if (instanceName.find('.') == string::npos)
		return -1;

	SetInteractive();

	ButtonEventHandlersDictionary::iterator it =
		m_buttonEventHandlersByFullName.find(instanceName);
	if (it == m_buttonEventHandlersByFullName.end()) {
		m_buttonEventHandlersByFullName[instanceName] = ButtonEventHandlers();
		it = m_buttonEventHandlersByFullName.find(instanceName);
	}
	int id = GetEventOffset();
	it->second.Add(id, h, kh);

	Button *b = SearchButtonInstance(instId);
	if (b)
		b->AddHandlers(&it->second);

	return id;
}
Exemple #2
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;
}
Exemple #3
0
bool LWF::RemoveDenyButton(string buttonName)
{
	int instId = SearchInstanceId(GetStringId(buttonName));
	if (instId < 0)
		return false;

	return m_denyButtonList.erase(instId) != 0;
}
Exemple #4
0
bool LWF::AddDenyButton(string buttonName)
{
	int instId = SearchInstanceId(GetStringId(buttonName));
	if (instId < 0)
		return false;

	m_denyButtonList[instId] = true;
	return true;
}
Exemple #5
0
void LWF::ClearButtonEventHandler(string instanceName, string type)
{
	int instId = SearchInstanceId(GetStringId(instanceName));
	if (instId >= 0) {
		ClearButtonEventHandler(instId, type);
		return;
	}

	if (m_buttonEventHandlersByFullName.empty())
		return;

	ButtonEventHandlersDictionary::iterator it =
		m_buttonEventHandlersByFullName.find(instanceName);
	if (it == m_buttonEventHandlersByFullName.end())
		return;

	it->second.Clear(type);
}
Exemple #6
0
void LWF::RemoveButtonEventHandler(string instanceName, int id)
{
	int instId = SearchInstanceId(GetStringId(instanceName));
	if (instId >= 0) {
		RemoveButtonEventHandler(instId, id);
		return;
	}

	if (m_buttonEventHandlersByFullName.empty())
		return;

	ButtonEventHandlersDictionary::iterator it =
		m_buttonEventHandlersByFullName.find(instanceName);
	if (it == m_buttonEventHandlersByFullName.end())
		return;

	it->second.Remove(id);
}
Exemple #7
0
void LWFCore::ClearMovieEventHandler(string instanceName)
{
	int instId = SearchInstanceId(GetStringId(instanceName));
	if (instId >= 0) {
		ClearMovieEventHandler(instId);
		return;
	}

	if (m_movieEventHandlersByFullName.empty())
		return;

	MovieEventHandlersDictionary::iterator it =
		m_movieEventHandlersByFullName.find(instanceName);
	if (it == m_movieEventHandlersByFullName.end())
		return;

	it->second.Clear();
}
Exemple #8
0
void LWF::Init()
{
	time = 0;
	m_progress = 0;

	m_instances.clear();
	m_instances.resize(data->instanceNames.size());
	focus = 0;
	pressed = 0;
	buttonHead = 0;

	m_movieCommands.clear();

	m_rootMovieStringId = GetStringId("_root");
	if (rootMovie)
		rootMovie->Destroy();
	rootMovie = make_shared<Movie>(this, (Movie *)0,
		data->header.rootMovieId, SearchInstanceId(m_rootMovieStringId));
}
Exemple #9
0
Button *LWF::SearchButtonInstance(int stringId) const
{
	return SearchButtonInstanceByInstanceId(SearchInstanceId(stringId));
}
Exemple #10
0
Movie *LWF::SearchMovieInstance(int stringId) const
{
	return SearchMovieInstanceByInstanceId(SearchInstanceId(stringId));
}