void HTMLFrameSetElement::attach()
{
    // Inherit default settings from parent frameset
    // FIXME: This is not dynamic.
    HTMLElement* node = static_cast<HTMLElement*>(parentNode());
    while (node) {
        if (node->hasTagName(framesetTag)) {
            HTMLFrameSetElement* frameset = static_cast<HTMLFrameSetElement*>(node);
            if (!frameBorderSet)
                frameborder = frameset->hasFrameBorder();
            if (frameborder) {
                if (!m_borderSet)
                    m_border = frameset->border();
                if (!m_borderColorSet)
                    m_borderColorSet = frameset->hasBorderColor();
            }
            if (!noresize)
                noresize = frameset->noResize();
            break;
        }
        node = static_cast<HTMLElement*>(node->parentNode());
    }

    HTMLElement::attach();
}
v8::Handle<v8::Value> V8HTMLFrameSetElement::namedPropertyGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{
    INC_STATS("DOM.HTMLFrameSetElement.NamedPropertyGetter");
    HTMLFrameSetElement* imp = V8HTMLFrameSetElement::toNative(info.Holder());
    Node* frameNode = imp->children()->namedItem(v8StringToAtomicWebCoreString(name));
    if (frameNode && frameNode->hasTagName(HTMLNames::frameTag)) {
        Document* doc = static_cast<HTMLFrameElement*>(frameNode)->contentDocument();
        if (!doc)
            return v8::Undefined();
        if (Frame* frame = doc->frame())
            return toV8(frame->domWindow());
    }
    return notHandledByInterceptor();
}
void JSHTMLFrameSetElement::putValueProperty(ExecState* exec, int token, JSValue* value)
{
    switch (token) {
    case ColsAttrNum: {
        HTMLFrameSetElement* imp = static_cast<HTMLFrameSetElement*>(impl());
        imp->setCols(valueToStringWithNullCheck(exec, value));
        break;
    }
    case RowsAttrNum: {
        HTMLFrameSetElement* imp = static_cast<HTMLFrameSetElement*>(impl());
        imp->setRows(valueToStringWithNullCheck(exec, value));
        break;
    }
    }
}
JSValue* JSHTMLFrameSetElement::getValueProperty(ExecState* exec, int token) const
{
    switch (token) {
    case ColsAttrNum: {
        HTMLFrameSetElement* imp = static_cast<HTMLFrameSetElement*>(impl());
        return jsString(exec, imp->cols());
    }
    case RowsAttrNum: {
        HTMLFrameSetElement* imp = static_cast<HTMLFrameSetElement*>(impl());
        return jsString(exec, imp->rows());
    }
    case ConstructorAttrNum:
        return getConstructor(exec);
    }
    return 0;
}
void HTMLFrameSetElement::attach()
{
    // inherit default settings from parent frameset
    HTMLElement* node = static_cast<HTMLElement*>(parentNode());
    while (node) {
        if (node->hasTagName(framesetTag)) {
            HTMLFrameSetElement* frameset = static_cast<HTMLFrameSetElement*>(node);
            if(!frameBorderSet)  frameborder = frameset->frameBorder();
            if(!noresize)  noresize = frameset->noResize();
            break;
        }
        node = static_cast<HTMLElement*>(node->parentNode());
    }

    HTMLElement::attach();
}
Example #6
0
void HTMLFrameSetElement::willAttachRenderers()
{
    // Inherit default settings from parent frameset
    // FIXME: This is not dynamic.
    for (ContainerNode* node = parentNode(); node; node = node->parentNode()) {
        if (!node->hasTagName(framesetTag))
            continue;
        HTMLFrameSetElement* frameset = static_cast<HTMLFrameSetElement*>(node);
        if (!m_frameborderSet)
            m_frameborder = frameset->hasFrameBorder();
        if (m_frameborder) {
            if (!m_borderSet)
                m_border = frameset->border();
            if (!m_borderColorSet)
                m_borderColorSet = frameset->hasBorderColor();
        }
        if (!m_noresize)
            m_noresize = frameset->noResize();
    }
}
void HTMLFrameSetElement::attach(const AttachContext& context)
{
    // Inherit default settings from parent frameset
    // FIXME: This is not dynamic.
    for (ContainerNode* node = parentNode(); node; node = node->parentNode()) {
        if (node->hasTagName(framesetTag)) {
            HTMLFrameSetElement* frameset = toHTMLFrameSetElement(node);
            if (!m_frameborderSet)
                m_frameborder = frameset->hasFrameBorder();
            if (m_frameborder) {
                if (!m_borderSet)
                    m_border = frameset->border();
                if (!m_borderColorSet)
                    m_borderColorSet = frameset->hasBorderColor();
            }
            if (!m_noresize)
                m_noresize = frameset->noResize();
            break;
        }
    }

    HTMLElement::attach(context);
}