diff options
Diffstat (limited to 'WebCore/rendering/RenderBoxModelObject.h')
-rw-r--r-- | WebCore/rendering/RenderBoxModelObject.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/WebCore/rendering/RenderBoxModelObject.h b/WebCore/rendering/RenderBoxModelObject.h index 83c9367..33d7ca2 100644 --- a/WebCore/rendering/RenderBoxModelObject.h +++ b/WebCore/rendering/RenderBoxModelObject.h @@ -33,6 +33,10 @@ const int PositionTop = -0x7fffffff; const int PositionBottom = 0x7fffffff; const int PositionUndefined = 0x80000000; +// Modes for some of the line-related functions. +enum LinePositionMode { PositionOnContainingLine, PositionOfInteriorLineBoxes }; +enum LineDirectionMode { HorizontalLine, VerticalLine }; + // 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 @@ -98,8 +102,8 @@ public: virtual int marginStart() const = 0; virtual int marginEnd() const = 0; - bool hasHorizontalBordersPaddingOrMargin() const { return hasHorizontalBordersOrPadding() || marginLeft() != 0 || marginRight() != 0; } - bool hasHorizontalBordersOrPadding() const { return borderLeft() != 0 || borderRight() != 0 || paddingLeft() != 0 || paddingRight() != 0; } + bool hasInlineDirectionBordersPaddingOrMargin() const { return hasInlineDirectionBordersOrPadding() || marginStart()|| marginEnd(); } + bool hasInlineDirectionBordersOrPadding() const { return borderStart() || borderEnd() || paddingStart()|| paddingEnd(); } virtual int containingBlockLogicalWidthForContent() const; @@ -112,6 +116,10 @@ public: // The difference between this inline's baseline position and the line's baseline position. int verticalPosition(bool firstLine) const; + + // Overridden by subclasses to determine line height and baseline position. + virtual int lineHeight(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const = 0; + virtual int baselinePosition(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const = 0; // Called by RenderObject::destroy() (and RenderWidget::destroy()) and is the only way layers should ever be destroyed void destroyLayer(); |