本文整理汇总了C++中HTMLSelectElement::listItems方法的典型用法代码示例。如果您正苦于以下问题:C++ HTMLSelectElement::listItems方法的具体用法?C++ HTMLSelectElement::listItems怎么用?C++ HTMLSelectElement::listItems使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTMLSelectElement
的用法示例。
在下文中一共展示了HTMLSelectElement::listItems方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: listBoxOptionIndex
int AccessibilityListBoxOption::listBoxOptionIndex() const
{
if (!m_optionElement)
return -1;
HTMLSelectElement* selectElement = listBoxOptionParentNode();
if (!selectElement)
return -1;
const auto& listItems = selectElement->listItems();
unsigned length = listItems.size();
for (unsigned i = 0; i < length; i++)
if (listItems[i] == m_optionElement)
return i;
return -1;
}
示例2: itemText
String RenderMenuList::itemText(unsigned listIndex) const
{
HTMLSelectElement* select = selectElement();
const Vector<HTMLElement*>& listItems = select->listItems();
if (listIndex >= listItems.size())
return String();
String itemString;
Element* element = listItems[listIndex];
if (isHTMLOptGroupElement(element))
itemString = toHTMLOptGroupElement(element)->groupLabelText();
else if (element->hasTagName(optionTag))
itemString = toHTMLOptionElement(element)->textIndentedToRespectGroupLabel();
applyTextTransform(style(), itemString, ' ');
return itemString;
}
开发者ID:IllusionRom-deprecated,项目名称:android_platform_external_chromium_org_third_party_WebKit,代码行数:17,代码来源:RenderMenuList.cpp
示例3: listBoxOptionIndex
int AXListBoxOption::listBoxOptionIndex() const
{
if (!m_optionElement)
return -1;
HTMLSelectElement* selectElement = listBoxOptionParentNode();
if (!selectElement)
return -1;
const WillBeHeapVector<RawPtrWillBeMember<HTMLElement> >& listItems = selectElement->listItems();
unsigned length = listItems.size();
for (unsigned i = 0; i < length; i++) {
if (listItems[i] == m_optionElement)
return i;
}
return -1;
}
示例4: setTextFromOption
void RenderMenuList::setTextFromOption(int optionIndex)
{
HTMLSelectElement* select = selectElement();
const Vector<HTMLElement*>& listItems = select->listItems();
int size = listItems.size();
int i = select->optionToListIndex(optionIndex);
String text = emptyString();
if (i >= 0 && i < size) {
Element* element = listItems[i];
if (element->hasTagName(optionTag)) {
text = toHTMLOptionElement(element)->textIndentedToRespectGroupLabel();
m_optionStyle = element->renderStyle();
}
}
setText(text.stripWhiteSpace());
didUpdateActiveOption(optionIndex);
}
开发者ID:IllusionRom-deprecated,项目名称:android_platform_external_chromium_org_third_party_WebKit,代码行数:19,代码来源:RenderMenuList.cpp
示例5: index
int HTMLOptionElement::index() const
{
// Let's do this dynamically. Might be a bit slow, but we're sure
// we won't forget to update a member variable in some cases...
HTMLSelectElement* select = ownerSelectElement();
if (select) {
const Vector<HTMLElement*>& items = select->listItems();
int l = items.size();
int optionIndex = 0;
for(int i = 0; i < l; i++) {
if (items[i]->hasLocalName(optionTag)) {
if (static_cast<HTMLOptionElement*>(items[i]) == this)
return optionIndex;
optionIndex++;
}
}
}
return 0;
}
示例6: index
int HTMLOptionElement::index() const
{
// It would be faster to cache the index, but harder to get it right in all cases.
HTMLSelectElement* selectElement = ownerSelectElement();
if (!selectElement)
return 0;
int optionIndex = 0;
for (auto& item : selectElement->listItems()) {
if (!is<HTMLOptionElement>(*item))
continue;
if (item == this)
return optionIndex;
++optionIndex;
}
return 0;
}
示例7: itemBackgroundColor
Color RenderMenuList::itemBackgroundColor(unsigned listIndex) const
{
HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
HTMLElement* element = select->listItems()[listIndex];
Color backgroundColor;
if (element->renderStyle())
backgroundColor = element->renderStyle()->backgroundColor();
// If the item has an opaque background color, return that.
if (!backgroundColor.hasAlpha())
return backgroundColor;
// Otherwise, the item's background is overlayed on top of the menu background.
backgroundColor = style()->backgroundColor().blend(backgroundColor);
if (!backgroundColor.hasAlpha())
return backgroundColor;
// If the menu background is not opaque, then add an opaque white background behind.
return Color(Color::white).blend(backgroundColor);
}
示例8: getPopupMenuInfo
void ExternalPopupMenu::getPopupMenuInfo(WebPopupMenuInfo& info, HTMLSelectElement& ownerElement)
{
const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& listItems = ownerElement.listItems();
size_t itemCount = listItems.size();
size_t count = 0;
Vector<WebMenuItemInfo> items(itemCount);
for (size_t i = 0; i < itemCount; ++i) {
if (ownerElement.itemIsDisplayNone(*listItems[i]))
continue;
Element& itemElement = *listItems[i];
WebMenuItemInfo& popupItem = items[count++];
popupItem.label = ownerElement.itemText(itemElement);
popupItem.toolTip = itemElement.title();
popupItem.checked = false;
if (isHTMLHRElement(itemElement)) {
popupItem.type = WebMenuItemInfo::Separator;
} else if (isHTMLOptGroupElement(itemElement)) {
popupItem.type = WebMenuItemInfo::Group;
} else {
popupItem.type = WebMenuItemInfo::Option;
popupItem.checked = toHTMLOptionElement(itemElement).selected();
}
popupItem.enabled = !itemElement.isDisabledFormControl();
const ComputedStyle& style = *ownerElement.itemComputedStyle(itemElement);
popupItem.textDirection = toWebTextDirection(style.direction());
popupItem.hasTextDirectionOverride = isOverride(style.unicodeBidi());
}
const ComputedStyle& menuStyle = ownerElement.computedStyle() ? *ownerElement.computedStyle() : *ownerElement.ensureComputedStyle();
info.itemHeight = menuStyle.font().fontMetrics().height();
info.itemFontSize = static_cast<int>(menuStyle.font().fontDescription().computedSize());
info.selectedIndex = toExternalPopupMenuItemIndex(ownerElement.optionToListIndex(ownerElement.selectedIndex()), ownerElement);
info.rightAligned = menuStyle.direction() == RTL;
info.allowMultipleSelection = ownerElement.multiple();
if (count < itemCount)
items.shrink(count);
info.items = items;
}
示例9: paintItemBackground
void RenderListBox::paintItemBackground(PaintInfo& paintInfo, int tx, int ty, int listIndex)
{
HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
const Vector<HTMLElement*>& listItems = select->listItems();
HTMLElement* element = listItems[listIndex];
Color backColor;
if (element->hasTagName(optionTag) && static_cast<HTMLOptionElement*>(element)->selected()) {
if (document()->frame()->isActive() && document()->focusedNode() == node())
backColor = theme()->activeListBoxSelectionBackgroundColor();
else
backColor = theme()->inactiveListBoxSelectionBackgroundColor();
} else
backColor = element->renderStyle() ? element->renderStyle()->backgroundColor() : style()->backgroundColor();
// Draw the background for this list box item
if (!element->renderStyle() || element->renderStyle()->visibility() != HIDDEN) {
IntRect itemRect = itemBoundingBoxRect(tx, ty, listIndex);
itemRect.intersect(controlClipRect(tx, ty));
paintInfo.context->fillRect(itemRect, backColor);
}
}
示例10: didUpdateActiveOption
void LayoutMenuList::didUpdateActiveOption(int optionIndex)
{
if (!document().existingAXObjectCache())
return;
if (m_lastActiveIndex == optionIndex)
return;
m_lastActiveIndex = optionIndex;
HTMLSelectElement* select = selectElement();
int listIndex = select->optionToListIndex(optionIndex);
if (listIndex < 0 || listIndex >= static_cast<int>(select->listItems().size()))
return;
// We skip sending accessiblity notifications for the very first option, otherwise
// we get extra focus and select events that are undesired.
if (!m_hasUpdatedActiveOption) {
m_hasUpdatedActiveOption = true;
return;
}
document().existingAXObjectCache()->handleUpdateActiveMenuOption(this, optionIndex);
}
示例11: itemHeight
LayoutUnit LayoutListBox::itemHeight() const {
HTMLSelectElement* select = selectElement();
if (!select)
return LayoutUnit();
const auto& items = select->listItems();
if (items.isEmpty())
return defaultItemHeight();
LayoutUnit maxHeight;
for (Element* element : items) {
if (isHTMLOptGroupElement(element))
element = &toHTMLOptGroupElement(element)->optGroupLabelElement();
LayoutObject* layoutObject = element->layoutObject();
LayoutUnit itemHeight;
if (layoutObject && layoutObject->isBox())
itemHeight = toLayoutBox(layoutObject)->size().height();
else
itemHeight = defaultItemHeight();
maxHeight = std::max(maxHeight, itemHeight);
}
return maxHeight;
}
示例12: itemIsLabel
bool RenderMenuList::itemIsLabel(unsigned listIndex) const
{
HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
HTMLElement* element = select->listItems()[listIndex];
return element->hasTagName(optgroupTag);
}
示例13: listSize
int RenderMenuList::listSize() const
{
HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
return select->listItems().size();
}