summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderScrollbarPart.cpp
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:41 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:41 -0800
commit648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /WebCore/rendering/RenderScrollbarPart.cpp
parenta65af38181ac7d34544586bdb5cd004de93897ad (diff)
downloadexternal_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip
external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz
external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'WebCore/rendering/RenderScrollbarPart.cpp')
-rw-r--r--WebCore/rendering/RenderScrollbarPart.cpp169
1 files changed, 0 insertions, 169 deletions
diff --git a/WebCore/rendering/RenderScrollbarPart.cpp b/WebCore/rendering/RenderScrollbarPart.cpp
deleted file mode 100644
index d5e72e9..0000000
--- a/WebCore/rendering/RenderScrollbarPart.cpp
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "RenderScrollbarPart.h"
-#include "RenderScrollbar.h"
-#include "RenderScrollbarTheme.h"
-
-using namespace std;
-
-namespace WebCore {
-
-RenderScrollbarPart::RenderScrollbarPart(Node* node, RenderScrollbar* scrollbar, ScrollbarPart part)
- : RenderBlock(node)
- , m_scrollbar(scrollbar)
- , m_part(part)
-{
-}
-
-RenderScrollbarPart::~RenderScrollbarPart()
-{
-}
-
-void RenderScrollbarPart::layout()
-{
- setPos(0, 0); // We don't worry about positioning ourselves. We're just determining our minimum width/height.
- if (m_scrollbar->orientation() == HorizontalScrollbar)
- layoutHorizontalPart();
- else
- layoutVerticalPart();
-
- m_overflowWidth = max(m_width, m_overflowWidth);
- m_overflowHeight = max(m_height, m_overflowHeight);
-
- setNeedsLayout(false);
-}
-
-void RenderScrollbarPart::layoutHorizontalPart()
-{
- if (m_part == ScrollbarBGPart) {
- m_width = m_scrollbar->width();
- computeScrollbarHeight();
- } else {
- computeScrollbarWidth();
- m_height = m_scrollbar->height();
- }
-}
-
-void RenderScrollbarPart::layoutVerticalPart()
-{
- if (m_part == ScrollbarBGPart) {
- computeScrollbarWidth();
- m_height = m_scrollbar->height();
- } else {
- m_width = m_scrollbar->width();
- computeScrollbarHeight();
- }
-}
-
-static int calcScrollbarThicknessUsing(const Length& l, int containingLength)
-{
- if (l.isIntrinsicOrAuto())
- return ScrollbarTheme::nativeTheme()->scrollbarThickness();
- return l.calcMinValue(containingLength);
-}
-
-void RenderScrollbarPart::computeScrollbarWidth()
-{
- int visibleSize = m_scrollbar->owningRenderer()->width() - m_scrollbar->owningRenderer()->borderLeft() - m_scrollbar->owningRenderer()->borderRight();
- int width = calcScrollbarThicknessUsing(style()->width(), visibleSize);
- int minWidth = calcScrollbarThicknessUsing(style()->minWidth(), visibleSize);
- int maxWidth = style()->maxWidth().isUndefined() ? width : calcScrollbarThicknessUsing(style()->maxWidth(), visibleSize);
- m_width = max(minWidth, min(maxWidth, width));
-
- // Buttons and track pieces can all have margins along the axis of the scrollbar.
- m_marginLeft = style()->marginLeft().calcMinValue(visibleSize);
- m_marginRight = style()->marginRight().calcMinValue(visibleSize);
-}
-
-void RenderScrollbarPart::computeScrollbarHeight()
-{
- int visibleSize = m_scrollbar->owningRenderer()->height() - m_scrollbar->owningRenderer()->borderTop() - m_scrollbar->owningRenderer()->borderBottom();
- int height = calcScrollbarThicknessUsing(style()->height(), visibleSize);
- int minHeight = calcScrollbarThicknessUsing(style()->minHeight(), visibleSize);
- int maxHeight = style()->maxHeight().isUndefined() ? height : calcScrollbarThicknessUsing(style()->maxHeight(), visibleSize);
- m_height = max(minHeight, min(maxHeight, height));
-
- // Buttons and track pieces can all have margins along the axis of the scrollbar.
- m_marginTop = style()->marginTop().calcMinValue(visibleSize);
- m_marginBottom = style()->marginBottom().calcMinValue(visibleSize);
-}
-
-void RenderScrollbarPart::calcPrefWidths()
-{
- if (!prefWidthsDirty())
- return;
-
- m_minPrefWidth = m_maxPrefWidth = 0;
-
- setPrefWidthsDirty(false);
-}
-
-void RenderScrollbarPart::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle)
-{
- RenderBlock::styleDidChange(diff, oldStyle);
- setInline(false);
- setPositioned(false);
- setFloating(false);
- setHasOverflowClip(false);
- if (oldStyle && m_scrollbar && m_part != NoPart && diff >= RenderStyle::Repaint)
- m_scrollbar->theme()->invalidatePart(m_scrollbar, m_part);
-}
-
-void RenderScrollbarPart::imageChanged(WrappedImagePtr image)
-{
- if (m_scrollbar && m_part != NoPart)
- m_scrollbar->theme()->invalidatePart(m_scrollbar, m_part);
- else
- RenderBlock::imageChanged(image);
-}
-
-void RenderScrollbarPart::paintIntoRect(GraphicsContext* graphicsContext, int tx, int ty, const IntRect& rect)
-{
- // Make sure our dimensions match the rect.
- setPos(rect.x() - tx, rect.y() - ty);
- setWidth(rect.width());
- setHeight(rect.height());
- setOverflowWidth(max(rect.width(), overflowWidth()));
- setOverflowHeight(max(rect.height(), overflowHeight()));
-
- if (graphicsContext->paintingDisabled())
- return;
-
- // Now do the paint.
- RenderObject::PaintInfo paintInfo(graphicsContext, rect, PaintPhaseBlockBackground, false, 0, 0);
- paint(paintInfo, tx, ty);
- paintInfo.phase = PaintPhaseChildBlockBackgrounds;
- paint(paintInfo, tx, ty);
- paintInfo.phase = PaintPhaseFloat;
- paint(paintInfo, tx, ty);
- paintInfo.phase = PaintPhaseForeground;
- paint(paintInfo, tx, ty);
- paintInfo.phase = PaintPhaseOutline;
- paint(paintInfo, tx, ty);
-}
-
-}