void HTMLFrameSetElementImpl::attach() { assert(!m_render); assert(parentNode()); assert(parentNode()->renderer()); // inherit default settings from parent frameset HTMLElementImpl* node = static_cast<HTMLElementImpl*>(parentNode()); while(node) { if(node->id() == ID_FRAMESET) { HTMLFrameSetElementImpl* frameset = static_cast<HTMLFrameSetElementImpl*>(node); if(!frameBorderSet) frameborder = frameset->frameBorder(); if(!noresize) noresize = frameset->noResize(); break; } node = static_cast<HTMLElementImpl*>(node->parentNode()); } // ignore display: none m_render = new RenderFrameSet(this); m_render->setStyle(getDocument()->styleSelector()->styleForElement(this)); parentNode()->renderer()->addChild(m_render, nextRenderer()); NodeBaseImpl::attach(); }
void HTMLFrameElementImpl::attach() { assert(!attached()); assert(parentNode()); name = getAttribute(ATTR_NAME); if(name.isNull()) name = getAttribute(ATTR_ID); // inherit default settings from parent frameset HTMLElementImpl *node = static_cast< HTMLElementImpl * >(parentNode()); while(node) { if(node->id() == ID_FRAMESET) { HTMLFrameSetElementImpl *frameset = static_cast< HTMLFrameSetElementImpl * >(node); if(!frameBorderSet) frameBorder = frameset->frameBorder(); if(!noresize) noresize = frameset->noResize(); break; } node = static_cast< HTMLElementImpl * >(node->parentNode()); } if(parentNode()->renderer() && getDocument()->isURLAllowed(url.string())) { RenderStyle *_style = getDocument()->styleSelector()->styleForElement(this); _style->ref(); if(_style->display() != NONE) { m_render = new(getDocument()->renderArena()) RenderFrame(this); m_render->setStyle(_style); parentNode()->renderer()->addChild(m_render, nextRenderer()); } _style->deref(); } NodeBaseImpl::attach(); if(!m_render) return; KHTMLView *w = getDocument()->view(); if(w) { // we need a unique name for every frame in the frameset. Hope that's unique enough. if(name.isEmpty() || w->part()->frameExists(name.string())) name = DOMString(w->part()->requestFrameName()); // load the frame contents w->part()->requestFrame(static_cast< RenderFrame * >(m_render), url.string(), name.string()); } }
void HTMLFrameElementImpl::attach() { assert(!attached()); assert(parentNode()); assert(parentNode()->renderer()); // we should first look up via id, then via name. // this shortterm hack fixes the ugly case. ### rewrite needed for next release name = getAttribute(ATTR_NAME); if (name.isNull()) name = getAttribute(ATTR_ID); // inherit default settings from parent frameset HTMLElementImpl* node = static_cast<HTMLElementImpl*>(parentNode()); while(node) { if(node->id() == ID_FRAMESET) { HTMLFrameSetElementImpl* frameset = static_cast<HTMLFrameSetElementImpl*>(node); if(!frameBorderSet) frameBorder = frameset->frameBorder(); if(!noresize) noresize = frameset->noResize(); break; } node = static_cast<HTMLElementImpl*>(node->parentNode()); } // ignore display: none for this element! KHTMLView* w = getDocument()->view(); if (isURLAllowed(url.string())) { m_render = new RenderFrame(this); m_render->setStyle(getDocument()->styleSelector()->styleForElement(this)); parentNode()->renderer()->addChild(m_render, nextRenderer()); } NodeBaseImpl::attach(); if (!m_render) return; // we need a unique name for every frame in the frameset. Hope that's unique enough. if(name.isEmpty() || w->part()->frameExists( name.string() ) ) name = DOMString(w->part()->requestFrameName()); // load the frame contents w->part()->requestFrame( static_cast<RenderFrame*>(m_render), url.string(), name.string() ); }