void RenderListBox::autoscroll() { IntPoint pos = document()->frame()->view()->windowToContents(document()->frame()->eventHandler()->currentMousePosition()); int endIndex = scrollToward(pos); if (endIndex >= 0) { SelectElement* select = toSelectElement(static_cast<Element*>(node())); m_inAutoscroll = true; if (!select->multiple()) select->setActiveSelectionAnchorIndex(endIndex); select->setActiveSelectionEndIndex(endIndex); select->updateListBoxSelection(!select->multiple()); m_inAutoscroll = false; } }
void RenderMenuList::setTextFromItem(unsigned listIndex) { SelectElement* select = toSelectElement(static_cast<Element*>(node())); setTextFromOption(select->listToOptionIndex(listIndex)); }
int RenderMenuList::selectedIndex() const { SelectElement* select = toSelectElement(static_cast<Element*>(node())); return select->optionToListIndex(select->selectedIndex()); }
int RenderMenuList::listSize() const { SelectElement* select = toSelectElement(static_cast<Element*>(node())); return select->listItems().size(); }
bool RenderMenuList::multiple() { SelectElement* select = toSelectElement(static_cast<Element*>(node())); return select->multiple(); }
void RenderMenuList::listBoxSelectItem(int listIndex, bool allowMultiplySelections, bool shift, bool fireOnChangeNow) { SelectElement* select = toSelectElement(static_cast<Element*>(node())); select->listBoxSelectItem(listIndex, allowMultiplySelections, shift, fireOnChangeNow); }