diff options
Diffstat (limited to 'Source/WebCore/rendering/RootInlineBox.h')
-rw-r--r-- | Source/WebCore/rendering/RootInlineBox.h | 67 |
1 files changed, 30 insertions, 37 deletions
diff --git a/Source/WebCore/rendering/RootInlineBox.h b/Source/WebCore/rendering/RootInlineBox.h index 66074c905..ce4cd4725 100644 --- a/Source/WebCore/rendering/RootInlineBox.h +++ b/Source/WebCore/rendering/RootInlineBox.h @@ -18,8 +18,7 @@ * */ -#ifndef RootInlineBox_h -#define RootInlineBox_h +#pragma once #include "BidiContext.h" #include "InlineFlowBox.h" @@ -47,7 +46,7 @@ public: RootInlineBox* nextRootBox() const; RootInlineBox* prevRootBox() const; - virtual void adjustPosition(float dx, float dy) override final; + void adjustPosition(float dx, float dy) final; LayoutUnit lineTop() const { return m_lineTop; } LayoutUnit lineBottom() const { return m_lineBottom; } @@ -102,34 +101,29 @@ public: bool lineCanAccommodateEllipsis(bool ltr, int blockEdge, int lineBoxEdge, int ellipsisWidth); // 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); + float placeEllipsis(const AtomicString& ellipsisStr, bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, InlineBox* markupBox = nullptr); // Return the position of the EllipsisBox or -1. - virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) override final; + float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) final; using InlineBox::hasEllipsisBox; EllipsisBox* ellipsisBox() const; void paintEllipsisBox(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom) const; - virtual void clearTruncation() override final; + void clearTruncation() final; bool isHyphenated() const; - virtual int baselinePosition(FontBaseline baselineType) const override final; - virtual LayoutUnit lineHeight() const override final; + int baselinePosition(FontBaseline baselineType) const final; + LayoutUnit lineHeight() const final; -#if PLATFORM(MAC) - void addHighlightOverflow(); - void paintCustomHighlight(PaintInfo&, const LayoutPoint&, const AtomicString& highlightType); -#endif - - virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom) override; - virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom) override final; + void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom) override; + bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom, HitTestAction) override; using InlineBox::hasSelectedChildren; using InlineBox::setHasSelectedChildren; - virtual RenderObject::SelectionState selectionState() override final; + RenderObject::SelectionState selectionState() final; InlineBox* firstSelectedBox(); InlineBox* lastSelectedBox(); @@ -147,7 +141,7 @@ public: if (m_floats) m_floats->append(&floatingBox); else - m_floats = adoptPtr(new Vector<RenderBox*>(1, &floatingBox)); + m_floats = std::make_unique<Vector<RenderBox*>>(1, &floatingBox); } void removeFloat(RenderBox& floatingBox) @@ -159,9 +153,9 @@ public: Vector<RenderBox*>* floatsPtr() { ASSERT(!isDirty()); return m_floats.get(); } - virtual void extractLineBoxFromRenderObject() override final; - virtual void attachLineBoxToRenderObject() override final; - virtual void removeLineBoxFromRenderObject() override final; + void extractLineBoxFromRenderObject() final; + void attachLineBoxToRenderObject() final; + void removeLineBoxFromRenderObject() final; FontBaseline baselineType() const { return static_cast<FontBaseline>(m_baselineType); } @@ -170,12 +164,8 @@ public: LayoutRect paddedLayoutOverflowRect(LayoutUnit endPadding) const; - void ascentAndDescentForBox(InlineBox*, GlyphOverflowAndFallbackFontsMap&, int& ascent, int& descent, bool& affectsAscent, bool& affectsDescent) const; + void ascentAndDescentForBox(InlineBox&, GlyphOverflowAndFallbackFontsMap&, int& ascent, int& descent, bool& affectsAscent, bool& affectsDescent) const; LayoutUnit verticalPositionForBox(InlineBox*, VerticalPositionCache&); - bool includeLeadingForBox(InlineBox*) const; - bool includeFontForBox(InlineBox*) const; - bool includeGlyphsForBox(InlineBox*) const; - bool includeMarginForBox(InlineBox*) const; bool fitsToGlyphs() const; bool includesRootLineBoxFontOrLeading() const; @@ -196,17 +186,22 @@ public: return InlineFlowBox::logicalBottomLayoutOverflow(lineBottom()); } - // Used to calculate the underline offset for TextUnderlinePositionUnder. - float maxLogicalTop() const; - Node* getLogicalStartBoxWithNode(InlineBox*&) const; Node* getLogicalEndBoxWithNode(InlineBox*&) const; -#ifndef NDEBUG - virtual const char* boxName() const override; + virtual bool isTrailingFloatsRootInlineBox() const { return false; } + +#if ENABLE(TREE_DEBUGGING) + const char* boxName() const final; #endif private: - virtual bool isRootInlineBox() const override final { return true; } + bool isRootInlineBox() const final { return true; } + + bool includeLeadingForBox(InlineBox&) const; + bool includeFontForBox(InlineBox&) const; + bool includeGlyphsForBox(InlineBox&) const; + bool includeInitialLetterForBox(InlineBox&) const; + bool includeMarginForBox(InlineBox&) const; LayoutUnit lineSnapAdjustment(LayoutUnit delta = 0) const; @@ -231,21 +226,19 @@ private: // Floats hanging off the line are pushed into this vector during layout. It is only // good for as long as the line has not been marked dirty. - OwnPtr<Vector<RenderBox*>> m_floats; + std::unique_ptr<Vector<RenderBox*>> m_floats; }; -INLINE_BOX_OBJECT_TYPE_CASTS(RootInlineBox, isRootInlineBox()) - inline RootInlineBox* RootInlineBox::nextRootBox() const { - return toRootInlineBox(m_nextLineBox); + return downcast<RootInlineBox>(m_nextLineBox); } inline RootInlineBox* RootInlineBox::prevRootBox() const { - return toRootInlineBox(m_prevLineBox); + return downcast<RootInlineBox>(m_prevLineBox); } } // namespace WebCore -#endif // RootInlineBox_h +SPECIALIZE_TYPE_TRAITS_INLINE_BOX(RootInlineBox, isRootInlineBox()) |