bool EventListenerMap::add(const AtomicString& eventType, PassRefPtr<EventListener> listener, bool useCapture) { ASSERT(!m_activeIteratorCount); if (m_singleEventListenerVector && m_singleEventListenerType != eventType) { // We already have a single (first) listener vector, and this event is not // of that type, so create the hash map and move the first listener vector there. ASSERT(!m_hashMap); m_hashMap = adoptPtr(new EventListenerHashMap); m_hashMap->add(m_singleEventListenerType, m_singleEventListenerVector.leakPtr()); m_singleEventListenerType = nullAtom; } if (m_hashMap) { pair<EventListenerHashMap::iterator, bool> result = m_hashMap->add(eventType, 0); if (result.second) result.first->second = new EventListenerVector; return addListenerToVector(result.first->second, listener, useCapture); } if (!m_singleEventListenerVector) { m_singleEventListenerType = eventType; m_singleEventListenerVector = adoptPtr(new EventListenerVector); } ASSERT(m_singleEventListenerType == eventType); return addListenerToVector(m_singleEventListenerVector.get(), listener, useCapture); }
bool EventListenerMap::add(const AtomicString& eventType, PassRefPtr<EventListener> listener, bool useCapture) { assertNoActiveIterators(); for (unsigned i = 0; i < m_entries.size(); ++i) { if (m_entries[i].first == eventType) return addListenerToVector(m_entries[i].second.get(), listener, useCapture); } m_entries.append(std::make_pair(eventType, std::make_unique<EventListenerVector>())); return addListenerToVector(m_entries.last().second.get(), listener, useCapture); }
bool EventListenerMap::add(const AtomicString& eventType, EventListener* listener, const AddEventListenerOptionsResolved& options, RegisteredEventListener* registeredListener) { checkNoActiveIterators(); for (const auto& entry : m_entries) { if (entry.first == eventType) return addListenerToVector(entry.second.get(), listener, options, registeredListener); } m_entries.append(std::make_pair(eventType, new EventListenerVector)); return addListenerToVector(m_entries.back().second.get(), listener, options, registeredListener); }
/** * Add an options dialog event listener. * @param listener The listener that will receive options dialog events. */ void OptionsBox::addOptionsBoxListener(OptionsBoxListener* listener) { addListenerToVector(mListeners, listener); }
/** * Add an navigation bar event listener. * @param listener The listener that will receive navigation bar events. */ void NavigationBar::addNavigationBarListener(NavigationBarListener* listener) { addListenerToVector(mNavigationBarListeners, listener); }
/** * Add a map pin event listener. * @param listener The listener that will receive map pin events. */ void MapPin::addMapPinListener(MapPinListener* listener) { addListenerToVector(mMapPinListeners, listener); }
/** * Add a radio button event listener. * @param listener The listener that will receive radio button events. */ void RadioButton::addRadioButtonListener(RadioButtonListener* listener) { addListenerToVector(mRadioButtonListeners, listener); }
/** * Add an stack screen event listener. * @param listener The listener that will receive stack screen events. */ void StackScreen::addStackScreenListener(StackScreenListener* listener) { addListenerToVector( mStackScreenListeners, listener); }
/** * Add an time picker event listener. * @param listener The listener that will receive time picker events. */ void TimePicker::addTimePickerListener(TimePickerListener* listener) { addListenerToVector(mTimePickerListeners, listener); }
/** * Add a rating bar event listener. * @param listener The listener that will receive rating bar events. */ void RatingBar::addRatingBarListener(RatingBarListener* listener) { addListenerToVector(mRatingBarListeners, listener); }
/** * Add an date picker event listener. * @param listener The listener that will receive date picker events. */ void DatePicker::addDatePickerListener(DatePickerListener* listener) { addListenerToVector(mDatePickerListeners, listener); }
void ListView::addListViewListener(ListViewListener* listener) { addListenerToVector(mListViewListeners, listener); }
/** * Add an slider event listener. * @param listener The listener that will receive slider events. */ void Slider::addSliderListener(SliderListener* listener) { addListenerToVector(mSliderListeners, listener); }
/** * Add an tab screen event listener. * @param listener The listener that will receive tab screen events. */ void TabScreen::addTabScreenListener(TabScreenListener* listener) { addListenerToVector( mTabScreenListeners, listener); }
/** * Add an edit box event listener. * @param listener The listener that will receive edit box events. */ void EditBox::addEditBoxListener(EditBoxListener* listener) { addListenerToVector(mEditBoxListeners, listener); }
/** * Add an web view event listener. * @param listener The listener that will receive web view events. */ void WebView::addWebViewListener(WebViewListener* listener) { addListenerToVector(mWebViewListeners, listener); }
/** * Add an video view event listener. * @param listener The listener that will receive video view events. */ void VideoView::addVideoViewListener(VideoViewListener* listener) { addListenerToVector(mVideoViewListeners, listener); }
/** * Add an button event listener. * @param listener The listener that will receive button events. */ void ImageButton::addButtonListener(ButtonListener* listener) { addListenerToVector(mButtonListeners, listener); }
/** * Add an GL view event listener. * @param listener The listener that will receive GL view events. */ void GLView::addGLViewListener(GLViewListener* listener) { addListenerToVector(mGLViewListeners, listener); }