summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RootInlineBox.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebCore/rendering/RootInlineBox.h
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebCore/rendering/RootInlineBox.h')
-rw-r--r--Source/WebCore/rendering/RootInlineBox.h49
1 files changed, 25 insertions, 24 deletions
diff --git a/Source/WebCore/rendering/RootInlineBox.h b/Source/WebCore/rendering/RootInlineBox.h
index e7c3e54b6..05b173f56 100644
--- a/Source/WebCore/rendering/RootInlineBox.h
+++ b/Source/WebCore/rendering/RootInlineBox.h
@@ -28,6 +28,7 @@ namespace WebCore {
class EllipsisBox;
class HitTestResult;
+class LogicalSelectionOffsetCaches;
class RenderRegion;
struct BidiStatus;
@@ -35,18 +36,18 @@ struct GapRects;
class RootInlineBox : public InlineFlowBox {
public:
- RootInlineBox(RenderBlock* block);
+ explicit RootInlineBox(RenderBlock*);
- virtual void destroy(RenderArena*);
+ virtual void destroy(RenderArena*) FINAL;
- virtual bool isRootInlineBox() const { return true; }
+ virtual bool isRootInlineBox() const FINAL { return true; }
void detachEllipsisBox(RenderArena*);
RootInlineBox* nextRootBox() const { return static_cast<RootInlineBox*>(m_nextLineBox); }
RootInlineBox* prevRootBox() const { return static_cast<RootInlineBox*>(m_prevLineBox); }
- virtual void adjustPosition(float dx, float dy);
+ virtual void adjustPosition(float dx, float dy) FINAL;
LayoutUnit lineTop() const { return m_lineTop; }
LayoutUnit lineBottom() const { return m_lineBottom; }
@@ -63,8 +64,7 @@ public:
LayoutUnit paginatedLineWidth() const { return m_fragmentationData ? m_fragmentationData->m_paginatedLineWidth : LayoutUnit(0); }
void setPaginatedLineWidth(LayoutUnit width) { ensureLineFragmentationData()->m_paginatedLineWidth = width; }
- RenderRegion* containingRegion() const { return m_fragmentationData ? m_fragmentationData->sanitize(block())->m_containingRegion : 0; }
- bool hasContainingRegion() const { return m_fragmentationData ? m_fragmentationData->m_hasContainingRegion : false; }
+ RenderRegion* containingRegion() const;
void setContainingRegion(RenderRegion*);
LayoutUnit selectionTop() const;
@@ -85,7 +85,7 @@ public:
m_lineBottomWithLeading = bottomWithLeading;
}
- virtual RenderLineBoxList* rendererLineBoxes() const;
+ virtual RenderLineBoxList* rendererLineBoxes() const FINAL;
RenderObject* lineBreakObj() const { return m_lineBreakObj; }
BidiStatus lineBreakBidiStatus() const;
@@ -103,19 +103,19 @@ public:
// Return the truncatedWidth, the width of the truncated text + ellipsis.
float placeEllipsis(const AtomicString& ellipsisStr, bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, InlineBox* markupBox = 0);
// Return the position of the EllipsisBox or -1.
- virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) OVERRIDE;
+ virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) OVERRIDE FINAL;
using InlineBox::hasEllipsisBox;
EllipsisBox* ellipsisBox() const;
void paintEllipsisBox(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom) const;
- virtual void clearTruncation() OVERRIDE;
+ virtual void clearTruncation() OVERRIDE FINAL;
bool isHyphenated() const;
- virtual int baselinePosition(FontBaseline baselineType) const;
- virtual LayoutUnit lineHeight() const;
+ virtual int baselinePosition(FontBaseline baselineType) const FINAL;
+ virtual LayoutUnit lineHeight() const FINAL;
#if PLATFORM(MAC)
void addHighlightOverflow();
@@ -123,16 +123,17 @@ public:
#endif
virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom);
- virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom) OVERRIDE;
+ virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom) OVERRIDE FINAL;
using InlineBox::hasSelectedChildren;
using InlineBox::setHasSelectedChildren;
- virtual RenderObject::SelectionState selectionState();
+ virtual RenderObject::SelectionState selectionState() FINAL;
InlineBox* firstSelectedBox();
InlineBox* lastSelectedBox();
- GapRects lineSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, LayoutUnit selTop, LayoutUnit selHeight, const PaintInfo*);
+ GapRects lineSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
+ LayoutUnit selTop, LayoutUnit selHeight, const LogicalSelectionOffsetCaches&, const PaintInfo*);
RenderBlock* block() const;
@@ -150,9 +151,9 @@ public:
Vector<RenderBox*>* floatsPtr() { ASSERT(!isDirty()); return m_floats.get(); }
- virtual void extractLineBoxFromRenderObject();
- virtual void attachLineBoxToRenderObject();
- virtual void removeLineBoxFromRenderObject();
+ virtual void extractLineBoxFromRenderObject() FINAL;
+ virtual void attachLineBoxToRenderObject() FINAL;
+ virtual void removeLineBoxFromRenderObject() FINAL;
FontBaseline baselineType() const { return static_cast<FontBaseline>(m_baselineType); }
@@ -187,6 +188,11 @@ public:
return InlineFlowBox::logicalBottomLayoutOverflow(lineBottom());
}
+#if ENABLE(CSS3_TEXT)
+ // Used to calculate the underline offset for TextUnderlinePositionUnder.
+ float maxLogicalTop() const;
+#endif // CSS3_TEXT
+
Node* getLogicalStartBoxWithNode(InlineBox*&) const;
Node* getLogicalEndBoxWithNode(InlineBox*&) const;
@@ -229,21 +235,16 @@ private:
, m_paginationStrut(0)
, m_paginatedLineWidth(0)
, m_isFirstAfterPageBreak(false)
- , m_hasContainingRegion(false)
{
}
- LineFragmentationData* sanitize(const RenderBlock*);
-
// It should not be assumed the |containingRegion| is always valid.
- // It can also be 0 if the flow has no region chain or an invalid pointer if the region is no longer in the chain.
- // Use |sanitize| to filter an invalid region.
+ // It can also be 0 if the flow has no region chain.
RenderRegion* m_containingRegion;
LayoutUnit m_paginationStrut;
LayoutUnit m_paginatedLineWidth;
- unsigned m_isFirstAfterPageBreak : 1;
- unsigned m_hasContainingRegion : 1; // We need to keep this to differentiate between the case of a void region and an invalid region.
+ bool m_isFirstAfterPageBreak;
};
OwnPtr<LineFragmentationData> m_fragmentationData;