summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RootInlineBox.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RootInlineBox.h')
-rw-r--r--Source/WebCore/rendering/RootInlineBox.h67
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())