diff options
| author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
|---|---|---|
| committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
| commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
| tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebCore/rendering/RootInlineBox.h | |
| parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
| download | qtwebkit-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.h | 49 |
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; |
