diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
commit | 648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /WebCore/rendering/RenderPart.cpp | |
parent | a65af38181ac7d34544586bdb5cd004de93897ad (diff) | |
download | external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'WebCore/rendering/RenderPart.cpp')
-rw-r--r-- | WebCore/rendering/RenderPart.cpp | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/WebCore/rendering/RenderPart.cpp b/WebCore/rendering/RenderPart.cpp deleted file mode 100644 index a9a821e..0000000 --- a/WebCore/rendering/RenderPart.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/** - * This file is part of the KDE project. - * - * Copyright (C) 1999 Lars Knoll (knoll@kde.org) - * (C) 2000 Simon Hausmann <hausmann@kde.org> - * (C) 2000 Stefan Schimanski (1Stein@gmx.de) - * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ -#include "config.h" -#include "RenderPart.h" - -#include "Document.h" -#include "Frame.h" -#include "FrameTree.h" -#include "FrameView.h" -#include "HTMLFrameOwnerElement.h" -#include "HTMLNames.h" -#include "Page.h" - -namespace WebCore { - -using namespace HTMLNames; - -RenderPart::RenderPart(HTMLFrameOwnerElement* node) - : RenderWidget(node) -{ - // init RenderObject attributes - setInline(false); -} - -RenderPart::~RenderPart() -{ - // Since deref ends up calling setWidget back on us, need to make sure - // that widget is already 0 so it won't do any work. - Widget* widget = m_widget; - m_widget = 0; - if (widget && widget->isFrameView()) - static_cast<FrameView*>(widget)->deref(); - else - delete widget; -} - -void RenderPart::setWidget(Widget* widget) -{ - if (widget != m_widget) { - if (widget && widget->isFrameView()) - static_cast<FrameView*>(widget)->ref(); - RenderWidget::setWidget(widget); - - // make sure the scrollbars are set correctly for restore - // ### find better fix - viewCleared(); - } -} - -void RenderPart::viewCleared() -{ -} - -void RenderPart::deleteWidget() -{ - if (m_widget && m_widget->isFrameView()) - static_cast<FrameView*>(m_widget)->deref(); - else - delete m_widget; -} - -// FIXME: This should not be necessary. Remove this once WebKit knows to properly schedule -// layouts using WebCore when objects resize. -void RenderPart::updateWidgetPosition() -{ - if (!m_widget) - return; - - int x, y, width, height; - absolutePosition(x, y); - x += borderLeft() + paddingLeft(); - y += borderTop() + paddingTop(); - width = m_width - borderLeft() - borderRight() - paddingLeft() - paddingRight(); - height = m_height - borderTop() - borderBottom() - paddingTop() - paddingBottom(); - IntRect newBounds(x,y,width,height); - bool boundsChanged = newBounds != m_widget->frameRect(); - if (boundsChanged) { - // The widget changed positions. Update the frame geometry. - RenderArena *arena = ref(); - element()->ref(); - m_widget->setFrameRect(newBounds); - element()->deref(); - deref(arena); - } - - // if the frame bounds got changed, or if view needs layout (possibly indicating - // content size is wrong) we have to do a layout to set the right widget size - if (m_widget && m_widget->isFrameView()) { - FrameView* frameView = static_cast<FrameView*>(m_widget); - if (boundsChanged || frameView->needsLayout()) - frameView->layout(); - } -} - -} |