summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderBoxModelObject.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-03-12 14:11:15 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2012-03-12 14:11:15 +0100
commitdd91e772430dc294e3bf478c119ef8d43c0a3358 (patch)
tree6f33ce4d5872a5691e0291eb45bf6ab373a5f567 /Source/WebCore/rendering/RenderBoxModelObject.h
parentad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (diff)
downloadqtwebkit-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.h47
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;
};