diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
commit | dd91e772430dc294e3bf478c119ef8d43c0a3358 (patch) | |
tree | 6f33ce4d5872a5691e0291eb45bf6ab373a5f567 /Source/WebCore/rendering/RenderBoxModelObject.h | |
parent | ad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (diff) | |
download | qtwebkit-dd91e772430dc294e3bf478c119ef8d43c0a3358.tar.gz |
Imported WebKit commit 3db4eb1820ac8fb03065d7ea73a4d9db1e8fea1a (http://svn.webkit.org/repository/webkit/trunk@110422)
This includes build fixes for the latest qtbase/qtdeclarative as well as the final QML2 API.
Diffstat (limited to 'Source/WebCore/rendering/RenderBoxModelObject.h')
-rw-r--r-- | Source/WebCore/rendering/RenderBoxModelObject.h | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/Source/WebCore/rendering/RenderBoxModelObject.h b/Source/WebCore/rendering/RenderBoxModelObject.h index 11e97c3fd..553584769 100644 --- a/Source/WebCore/rendering/RenderBoxModelObject.h +++ b/Source/WebCore/rendering/RenderBoxModelObject.h @@ -40,6 +40,8 @@ enum BackgroundBleedAvoidance { BackgroundBleedUseTransparencyLayer }; +enum PaddingOptions { IncludeIntrinsicPadding, ExcludeIntrinsicPadding }; + // This class is the base for all objects that adhere to the CSS box model as described // at http://www.w3.org/TR/CSS21/box.html @@ -60,9 +62,9 @@ public: virtual LayoutUnit offsetWidth() const = 0; virtual LayoutUnit offsetHeight() const = 0; + int pixelSnappedOffsetLeft() const { return roundToInt(offsetLeft()); } + int pixelSnappedOffsetTop() const { return roundToInt(offsetTop()); } // FIXME: The implementation for these functions will change once we move to subpixel layout. See bug 60318. - int pixelSnappedOffsetLeft() const { return offsetLeft(); } - int pixelSnappedOffsetTop() const { return offsetTop(); } int pixelSnappedOffsetWidth() const; int pixelSnappedOffsetHeight() const; @@ -72,29 +74,29 @@ public: bool hasSelfPaintingLayer() const; RenderLayer* layer() const { return m_layer; } - virtual bool requiresLayer() const { return isRoot() || isPositioned() || isRelPositioned() || isTransparent() || hasOverflowClip() || hasTransform() || hasMask() || hasReflection() || hasFilter() || style()->specifiesColumns(); } + virtual bool requiresLayer() const { return isRoot() || isPositioned() || isRelPositioned() || isTransparent() || hasTransform() || hasMask() || hasReflection() || hasFilter() || style()->specifiesColumns(); } // This will work on inlines to return the bounding box of all of the lines' border boxes. virtual LayoutRect borderBoundingBox() const = 0; // Virtual since table cells override - virtual LayoutUnit paddingTop(bool includeIntrinsicPadding = true) const; - virtual LayoutUnit paddingBottom(bool includeIntrinsicPadding = true) const; - virtual LayoutUnit paddingLeft(bool includeIntrinsicPadding = true) const; - virtual LayoutUnit paddingRight(bool includeIntrinsicPadding = true) const; - virtual LayoutUnit paddingBefore(bool includeIntrinsicPadding = true) const; - virtual LayoutUnit paddingAfter(bool includeIntrinsicPadding = true) const; - virtual LayoutUnit paddingStart(bool includeIntrinsicPadding = true) const; - virtual LayoutUnit paddingEnd(bool includeIntrinsicPadding = true) const; - - virtual LayoutUnit borderTop() const { return style()->borderTopWidth(); } - virtual LayoutUnit borderBottom() const { return style()->borderBottomWidth(); } - virtual LayoutUnit borderLeft() const { return style()->borderLeftWidth(); } - virtual LayoutUnit borderRight() const { return style()->borderRightWidth(); } - virtual LayoutUnit borderBefore() const { return style()->borderBeforeWidth(); } - virtual LayoutUnit borderAfter() const { return style()->borderAfterWidth(); } - virtual LayoutUnit borderStart() const { return style()->borderStartWidth(); } - virtual LayoutUnit borderEnd() const { return style()->borderEndWidth(); } + virtual LayoutUnit paddingTop(PaddingOptions = IncludeIntrinsicPadding) const; + virtual LayoutUnit paddingBottom(PaddingOptions = IncludeIntrinsicPadding) const; + virtual LayoutUnit paddingLeft(PaddingOptions = IncludeIntrinsicPadding) const; + virtual LayoutUnit paddingRight(PaddingOptions = IncludeIntrinsicPadding) const; + virtual LayoutUnit paddingBefore(PaddingOptions = IncludeIntrinsicPadding) const; + virtual LayoutUnit paddingAfter(PaddingOptions = IncludeIntrinsicPadding) const; + virtual LayoutUnit paddingStart(PaddingOptions = IncludeIntrinsicPadding) const; + virtual LayoutUnit paddingEnd(PaddingOptions = IncludeIntrinsicPadding) const; + + virtual int borderTop() const { return style()->borderTopWidth(); } + virtual int borderBottom() const { return style()->borderBottomWidth(); } + virtual int borderLeft() const { return style()->borderLeftWidth(); } + virtual int borderRight() const { return style()->borderRightWidth(); } + virtual int borderBefore() const { return style()->borderBeforeWidth(); } + virtual int borderAfter() const { return style()->borderAfterWidth(); } + virtual int borderStart() const { return style()->borderStartWidth(); } + virtual int borderEnd() const { return style()->borderEndWidth(); } LayoutUnit borderAndPaddingHeight() const { return borderTop() + borderBottom() + paddingTop() + paddingBottom(); } LayoutUnit borderAndPaddingWidth() const { return borderLeft() + borderRight() + paddingLeft() + paddingRight(); } @@ -114,6 +116,8 @@ public: virtual LayoutUnit marginAfter() const = 0; virtual LayoutUnit marginStart() const = 0; virtual LayoutUnit marginEnd() const = 0; + LayoutUnit marginHeight() const { return marginTop() + marginBottom(); } + LayoutUnit marginWidth() const { return marginLeft() + marginRight(); } bool hasInlineDirectionBordersPaddingOrMargin() const { return hasInlineDirectionBordersOrPadding() || marginStart()|| marginEnd(); } bool hasInlineDirectionBordersOrPadding() const { return borderStart() || borderEnd() || paddingStart()|| paddingEnd(); } @@ -207,6 +211,8 @@ public: RenderObject* firstLetterRemainingText() const; void setFirstLetterRemainingText(RenderObject*); + void ensureLayer(); + private: virtual bool isBoxModelObject() const { return true; } @@ -238,6 +244,7 @@ private: // Used to store state between styleWillChange and styleDidChange static bool s_wasFloating; static bool s_hadLayer; + static bool s_hadTransform; static bool s_layerWasSelfPainting; }; |