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; }
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; }
bool LWF::RemoveDenyButton(string buttonName) { int instId = SearchInstanceId(GetStringId(buttonName)); if (instId < 0) return false; return m_denyButtonList.erase(instId) != 0; }
bool LWF::AddDenyButton(string buttonName) { int instId = SearchInstanceId(GetStringId(buttonName)); if (instId < 0) return false; m_denyButtonList[instId] = true; return true; }
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); }
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); }
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(); }
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)); }
Button *LWF::SearchButtonInstance(int stringId) const { return SearchButtonInstanceByInstanceId(SearchInstanceId(stringId)); }
Movie *LWF::SearchMovieInstance(int stringId) const { return SearchMovieInstanceByInstanceId(SearchInstanceId(stringId)); }