⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 domcoreclasses.cpp

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::setAttributeNode(         /* [in] */ IDOMAttr* /*newAttr*/,        /* [retval][out] */ IDOMAttr** /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::removeAttributeNode(         /* [in] */ IDOMAttr* /*oldAttr*/,        /* [retval][out] */ IDOMAttr** /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::getElementsByTagName(         /* [in] */ BSTR /*name*/,        /* [retval][out] */ IDOMNodeList** /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::getAttributeNS(         /* [in] */ BSTR /*namespaceURI*/,        /* [in] */ BSTR /*localName*/,        /* [retval][out] */ BSTR* /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::setAttributeNS(         /* [in] */ BSTR /*namespaceURI*/,        /* [in] */ BSTR /*qualifiedName*/,        /* [in] */ BSTR /*value*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::removeAttributeNS(         /* [in] */ BSTR /*namespaceURI*/,        /* [in] */ BSTR /*localName*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::getAttributeNodeNS(         /* [in] */ BSTR /*namespaceURI*/,        /* [in] */ BSTR /*localName*/,        /* [retval][out] */ IDOMAttr** /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::setAttributeNodeNS(         /* [in] */ IDOMAttr* /*newAttr*/,        /* [retval][out] */ IDOMAttr** /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::getElementsByTagNameNS(         /* [in] */ BSTR /*namespaceURI*/,        /* [in] */ BSTR /*localName*/,        /* [retval][out] */ IDOMNodeList** /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::hasAttribute(         /* [in] */ BSTR /*name*/,        /* [retval][out] */ BOOL* /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}    HRESULT STDMETHODCALLTYPE DOMElement::hasAttributeNS(         /* [in] */ BSTR /*namespaceURI*/,        /* [in] */ BSTR /*localName*/,        /* [retval][out] */ BOOL* /*result*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}HRESULT STDMETHODCALLTYPE DOMElement::focus( void){    if (!m_element)        return E_FAIL;    m_element->focus();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::blur( void){    if (!m_element)        return E_FAIL;    m_element->blur();    return S_OK;}// IDOMElementPrivate ---------------------------------------------------------HRESULT DOMElement::coreElement(void **element){    if (!m_element)        return E_FAIL;    *element = (void*) m_element;    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::isEqual(     /* [in] */ IDOMElement *other,    /* [retval][out] */ BOOL *result){    *result = FALSE;    if (!other || !result)        return E_POINTER;    IDOMElementPrivate* otherPriv;    HRESULT hr = other->QueryInterface(IID_IDOMElementPrivate, (void**) &otherPriv);    if (FAILED(hr))        return hr;        void* otherCoreEle;    hr = otherPriv->coreElement(&otherCoreEle);    otherPriv->Release();    if (FAILED(hr))        return hr;    *result = (otherCoreEle == (void*)m_element) ? TRUE : FALSE;    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::isFocused(     /* [retval][out] */ BOOL *result){    if (!m_element)        return E_FAIL;    if (m_element->document()->focusedNode() == m_element)        *result = TRUE;    else        *result = FALSE;    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::innerText(    /* [retval][out] */ BSTR* result){    if (!result) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    if (!m_element) {        ASSERT_NOT_REACHED();        return E_FAIL;    }    *result = BString(m_element->innerText()).release();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::font(WebFontDescription* webFontDescription){    if (!webFontDescription) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    ASSERT(m_element);    WebCore::RenderObject* renderer = m_element->renderer();    if (!renderer)        return E_FAIL;    FontDescription fontDescription = renderer->style()->font().fontDescription();    AtomicString family = fontDescription.family().family();    webFontDescription->family = family.characters();    webFontDescription->familyLength = family.length();    webFontDescription->size = fontDescription.computedSize();    webFontDescription->bold = fontDescription.weight() >= WebCore::FontWeight600;    webFontDescription->italic = fontDescription.italic();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::renderedImage(HBITMAP* image){    if (!image) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *image = 0;    ASSERT(m_element);    Frame* frame = m_element->document()->frame();    if (!frame)        return E_FAIL;    *image = frame->nodeImage(m_element);    if (!*image)        return E_FAIL;    return S_OK;}// IDOMElementCSSInlineStyle --------------------------------------------------HRESULT STDMETHODCALLTYPE DOMElement::style(     /* [retval][out] */ IDOMCSSStyleDeclaration** result){    if (!result)        return E_POINTER;    if (!m_element)        return E_FAIL;    WebCore::CSSStyleDeclaration* style = m_element->style();    if (!style)        return E_FAIL;    *result = DOMCSSStyleDeclaration::createInstance(style);    return *result ? S_OK : E_FAIL;}// IDOMElementExtensions ------------------------------------------------------HRESULT STDMETHODCALLTYPE DOMElement::offsetLeft(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->offsetLeft();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::offsetTop(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->offsetTop();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::offsetWidth(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->offsetWidth();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::offsetHeight(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->offsetHeight();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::offsetParent(     /* [retval][out] */ IDOMElement** /*result*/){    // FIXME    ASSERT_NOT_REACHED();    return E_NOTIMPL;}HRESULT STDMETHODCALLTYPE DOMElement::clientWidth(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->clientWidth();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::clientHeight(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->clientHeight();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::scrollLeft(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->scrollLeft();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::setScrollLeft(     /* [in] */ int /*newScrollLeft*/){    // FIXME    ASSERT_NOT_REACHED();    return E_NOTIMPL;}HRESULT STDMETHODCALLTYPE DOMElement::scrollTop(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->scrollTop();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::setScrollTop(     /* [in] */ int /*newScrollTop*/){    // FIXME    ASSERT_NOT_REACHED();    return E_NOTIMPL;}HRESULT STDMETHODCALLTYPE DOMElement::scrollWidth(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->scrollWidth();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::scrollHeight(     /* [retval][out] */ int* result){    if (!m_element)        return E_FAIL;    *result = m_element->scrollHeight();    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::scrollIntoView(     /* [in] */ BOOL alignWithTop){    if (!m_element)        return E_FAIL;    m_element->scrollIntoView(!!alignWithTop);    return S_OK;}HRESULT STDMETHODCALLTYPE DOMElement::scrollIntoViewIfNeeded(     /* [in] */ BOOL centerIfNeeded){    if (!m_element)        return E_FAIL;    m_element->scrollIntoViewIfNeeded(!!centerIfNeeded);    return S_OK;}// DOMElement -----------------------------------------------------------------DOMElement::DOMElement(WebCore::Element* e): DOMNode(e), m_element(e){}DOMElement::~DOMElement(){}IDOMElement* DOMElement::createInstance(WebCore::Element* e){    if (!e)        return 0;    HRESULT hr;    IDOMElement* domElement = 0;    if (e->hasTagName(formTag)) {        DOMHTMLFormElement* newElement = new DOMHTMLFormElement(e);        hr = newElement->QueryInterface(IID_IDOMElement, (void**)&domElement);    } else if (e->hasTagName(selectTag)) {        DOMHTMLSelectElement* newElement = new DOMHTMLSelectElement(e);        hr = newElement->QueryInterface(IID_IDOMElement, (void**)&domElement);    } else if (e->hasTagName(optionTag)) {        DOMHTMLOptionElement* newElement = new DOMHTMLOptionElement(e);        hr = newElement->QueryInterface(IID_IDOMElement, (void**)&domElement);    } else if (e->hasTagName(inputTag)) {        DOMHTMLInputElement* newElement = new DOMHTMLInputElement(e);        hr = newElement->QueryInterface(IID_IDOMElement, (void**)&domElement);    } else if (e->hasTagName(textareaTag)) {        DOMHTMLTextAreaElement* newElement = new DOMHTMLTextAreaElement(e);        hr = newElement->QueryInterface(IID_IDOMElement, (void**)&domElement);    } else if (e->isHTMLElement()) {        DOMHTMLElement* newElement = new DOMHTMLElement(e);        hr = newElement->QueryInterface(IID_IDOMElement, (void**)&domElement);    } else {        DOMElement* newElement = new DOMElement(e);        hr = newElement->QueryInterface(IID_IDOMElement, (void**)&domElement);    }    if (FAILED(hr))        return 0;    return domElement;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -