本文整理汇总了C++中HTMLOptionElement类的典型用法代码示例。如果您正苦于以下问题:C++ HTMLOptionElement类的具体用法?C++ HTMLOptionElement怎么用?C++ HTMLOptionElement使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HTMLOptionElement类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isMatchingElement
template <> inline bool isMatchingElement(const HTMLCollection* htmlCollection, Element* element)
{
CollectionType type = htmlCollection->type();
if (!element->isHTMLElement() && !(type == DocAll || type == NodeChildren || type == WindowNamedItems))
return false;
switch (type) {
case DocImages:
return element->hasLocalName(imgTag);
case DocScripts:
return element->hasLocalName(scriptTag);
case DocForms:
return element->hasLocalName(formTag);
case TableTBodies:
return element->hasLocalName(tbodyTag);
case TRCells:
return element->hasLocalName(tdTag) || element->hasLocalName(thTag);
case TSectionRows:
return element->hasLocalName(trTag);
case SelectOptions:
return element->hasLocalName(optionTag);
case SelectedOptions:
return element->hasLocalName(optionTag) && toHTMLOptionElement(element)->selected();
case DataListOptions:
if (element->hasLocalName(optionTag)) {
HTMLOptionElement* option = toHTMLOptionElement(element);
if (!option->isDisabledFormControl() && !option->value().isEmpty())
return true;
}
return false;
case MapAreas:
return element->hasLocalName(areaTag);
case DocApplets:
return element->hasLocalName(appletTag) || (element->hasLocalName(objectTag) && static_cast<HTMLObjectElement*>(element)->containsJavaApplet());
case DocEmbeds:
return element->hasLocalName(embedTag);
case DocLinks:
return (element->hasLocalName(aTag) || element->hasLocalName(areaTag)) && element->fastHasAttribute(hrefAttr);
case DocAnchors:
return element->hasLocalName(aTag) && element->fastHasAttribute(nameAttr);
case DocAll:
case NodeChildren:
return true;
case DocumentNamedItems:
return static_cast<const DocumentNameCollection*>(htmlCollection)->nodeMatches(element);
case WindowNamedItems:
return static_cast<const WindowNameCollection*>(htmlCollection)->nodeMatches(element);
case FormControls:
case TableRows:
case ChildNodeListType:
case ClassNodeListType:
case NameNodeListType:
case TagNodeListType:
case HTMLTagNodeListType:
case RadioNodeListType:
case LabelsNodeListType:
ASSERT_NOT_REACHED();
}
return false;
}
示例2: ASSERT
void SelectPopupClient::setValueAndClosePopup(int, const String& stringValue)
{
ASSERT(m_size == stringValue.length());
if (m_size > 0) {
bool selecteds[m_size];
for (unsigned i = 0; i < m_size; i++)
selecteds[i] = stringValue[i] - '0';
const WTF::Vector<HTMLElement*>& items = m_element->listItems();
if (items.size() != static_cast<unsigned int>(m_size))
return;
HTMLOptionElement* option;
for (unsigned i = 0; i < m_size; i++) {
if (items[i]->hasTagName(HTMLNames::optionTag)) {
option = static_cast<HTMLOptionElement*>(items[i]);
option->setSelectedState(selecteds[i]);
}
}
}
// Force repaint because we do not send mouse events to the select element
// and the element doesn't automatically repaint itself.
m_element->dispatchFormControlChangeEvent();
m_element->renderer()->repaint();
closePopup();
}
示例3: valueAttrSetter
static void valueAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) {
INC_STATS("DOM.HTMLOptionElement.value._set");
HTMLOptionElement* imp = V8HTMLOptionElement::toNative(info.Holder());
V8Parameter<WithNullCheck> v = value;
imp->setValue(v);
return;
}
示例4: ASSERT
void HTMLSelectElement::updateListBoxSelection(bool deselectOtherOptions)
{
ASSERT(renderer() && renderer()->isListBox());
unsigned start;
unsigned end;
ASSERT(m_activeSelectionAnchorIndex >= 0);
start = min(m_activeSelectionAnchorIndex, m_activeSelectionEndIndex);
end = max(m_activeSelectionAnchorIndex, m_activeSelectionEndIndex);
const Vector<HTMLElement*>& items = listItems();
for (unsigned i = 0; i < items.size(); i++) {
if (items[i]->hasLocalName(optionTag)) {
HTMLOptionElement* option = static_cast<HTMLOptionElement*>(items[i]);
if (!option->disabled()) {
if (i >= start && i <= end)
option->setSelectedState(m_activeSelectionState);
else if (deselectOtherOptions || i >= m_cachedStateForActiveSelection.size())
option->setSelectedState(false);
else
option->setSelectedState(m_cachedStateForActiveSelection[i]);
}
}
}
scrollToSelection();
}
示例5: if
void HTMLSelectElement::recalcListItems(bool updateSelectedStates) const
{
m_listItems.clear();
HTMLOptionElement* foundSelected = 0;
for (Node* current = firstChild(); current; current = current->traverseNextSibling(this)) {
if (current->hasTagName(optgroupTag) && current->firstChild()) {
// FIXME: It doesn't make sense to add an optgroup to the list items,
// when it has children, but not to add it if it happens to have,
// children (say some comment nodes or text nodes), yet that's what
// this code does!
m_listItems.append(static_cast<HTMLElement*>(current));
current = current->firstChild();
// FIXME: It doesn't make sense to handle an <optgroup> inside another <optgroup>
// if it's not the first child, but not handle it if it happens to be the first
// child, yet that's what this code does!
}
if (current->hasTagName(optionTag)) {
m_listItems.append(static_cast<HTMLElement*>(current));
if (updateSelectedStates) {
if (!foundSelected && (usesMenuList() || (!m_multiple && static_cast<HTMLOptionElement*>(current)->selected()))) {
foundSelected = static_cast<HTMLOptionElement*>(current);
foundSelected->setSelectedState(true);
} else if (foundSelected && !m_multiple && static_cast<HTMLOptionElement*>(current)->selected()) {
foundSelected->setSelectedState(false);
foundSelected = static_cast<HTMLOptionElement*>(current);
}
}
}
if (current->hasTagName(hrTag))
m_listItems.append(static_cast<HTMLElement*>(current));
}
m_recalcListItems = false;
}
示例6: listItems
void HTMLSelectElement::setSelectedIndex(int optionIndex, bool deselect, bool fireOnChange)
{
const Vector<HTMLElement*>& items = listItems();
int listIndex = optionToListIndex(optionIndex);
HTMLOptionElement* element = 0;
if (!multiple())
deselect = true;
if (listIndex >= 0) {
if (m_activeSelectionAnchorIndex < 0 || deselect)
setActiveSelectionAnchorIndex(listIndex);
if (m_activeSelectionEndIndex < 0 || deselect)
setActiveSelectionEndIndex(listIndex);
element = static_cast<HTMLOptionElement*>(items[listIndex]);
element->setSelectedState(true);
}
if (deselect)
deselectItems(element);
scrollToSelection();
// This only gets called with fireOnChange for menu lists.
if (fireOnChange && usesMenuList())
menuListOnChange();
Frame* frame = document()->frame();
if (frame)
frame->page()->chrome()->client()->formStateDidChange(this);
}
示例7: disabledAttrSetter
static void disabledAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) {
INC_STATS("DOM.HTMLOptionElement.disabled._set");
HTMLOptionElement* imp = V8HTMLOptionElement::toNative(info.Holder());
bool v = value->BooleanValue();
imp->setDisabled(v);
return;
}
示例8: selectedAttrSetter
static void selectedAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
HTMLOptionElement* imp = V8HTMLOptionElement::toNative(info.Holder());
bool v = value->BooleanValue();
imp->setSelected(v);
return;
}
示例9:
void
HTMLSelectOptionAccessible::SetSelected(bool aSelect)
{
HTMLOptionElement* option = HTMLOptionElement::FromContent(mContent);
if (option)
option->SetSelected(aSelect);
}
示例10:
void
HTMLOptionsCollection::GetSupportedNames(nsTArray<nsString>& aNames)
{
AutoTArray<nsIAtom*, 8> atoms;
for (uint32_t i = 0; i < mElements.Length(); ++i) {
HTMLOptionElement* content = mElements.ElementAt(i);
if (content) {
// Note: HasName means the names is exposed on the document,
// which is false for options, so we don't check it here.
const nsAttrValue* val = content->GetParsedAttr(nsGkAtoms::name);
if (val && val->Type() == nsAttrValue::eAtom) {
nsIAtom* name = val->GetAtomValue();
if (!atoms.Contains(name)) {
atoms.AppendElement(name);
}
}
if (content->HasID()) {
nsIAtom* id = content->GetID();
if (!atoms.Contains(id)) {
atoms.AppendElement(id);
}
}
}
}
uint32_t atomsLen = atoms.Length();
nsString* names = aNames.AppendElements(atomsLen);
for (uint32_t i = 0; i < atomsLen; ++i) {
atoms[i]->ToString(names[i]);
}
}
示例11:
void
HTMLOptionsCollection::GetSupportedNames(unsigned aFlags,
nsTArray<nsString>& aNames)
{
if (!(aFlags & JSITER_HIDDEN)) {
return;
}
nsAutoTArray<nsIAtom*, 8> atoms;
for (uint32_t i = 0; i < mElements.Length(); ++i) {
HTMLOptionElement* content = mElements.ElementAt(i);
if (content) {
// Note: HasName means the names is exposed on the document,
// which is false for options, so we don't check it here.
const nsAttrValue* val = content->GetParsedAttr(nsGkAtoms::name);
if (val && val->Type() == nsAttrValue::eAtom) {
nsIAtom* name = val->GetAtomValue();
if (!atoms.Contains(name)) {
atoms.AppendElement(name);
}
}
if (content->HasID()) {
nsIAtom* id = content->GetID();
if (!atoms.Contains(id)) {
atoms.AppendElement(id);
}
}
}
}
aNames.SetCapacity(atoms.Length());
for (uint32_t i = 0; i < atoms.Length(); ++i) {
aNames.AppendElement(nsDependentAtomString(atoms[i]));
}
}
示例12: defaultSelectedAttrSetter
static void defaultSelectedAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
HTMLOptionElement* imp = V8HTMLOptionElement::toNative(info.Holder());
bool v = value->BooleanValue();
imp->setBooleanAttribute(WebCore::HTMLNames::selectedAttr, v);
return;
}
示例13: labelAttrSetter
static void labelAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
HTMLOptionElement* imp = V8HTMLOptionElement::toNative(info.Holder());
V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, v, value);
imp->setLabel(v);
return;
}
示例14: jsHTMLOptionElementValue
JSValue jsHTMLOptionElementValue(ExecState* exec, JSValue slotBase, const Identifier&)
{
JSHTMLOptionElement* castedThis = static_cast<JSHTMLOptionElement*>(asObject(slotBase));
UNUSED_PARAM(exec);
HTMLOptionElement* imp = static_cast<HTMLOptionElement*>(castedThis->impl());
JSValue result = jsString(exec, imp->value());
return result;
}
示例15: setJSHTMLOptionElementText
void setJSHTMLOptionElementText(ExecState* exec, JSObject* thisObject, JSValue value)
{
JSHTMLOptionElement* castedThisObj = static_cast<JSHTMLOptionElement*>(thisObject);
HTMLOptionElement* imp = static_cast<HTMLOptionElement*>(castedThisObj->impl());
ExceptionCode ec = 0;
imp->setText(valueToStringWithNullCheck(exec, value), ec);
setDOMException(exec, ec);
}