| Index: Source/core/layout/LayoutText.h
|
| diff --git a/Source/core/layout/LayoutText.h b/Source/core/layout/LayoutText.h
|
| index 155e94f12ffc32e402f961032a4a0dea535c713b..4cb7585f76a464b55639f31036aad113dc47bca1 100644
|
| --- a/Source/core/layout/LayoutText.h
|
| +++ b/Source/core/layout/LayoutText.h
|
| @@ -37,6 +37,36 @@ namespace blink {
|
| class AbstractInlineTextBox;
|
| class InlineTextBox;
|
|
|
| +// LayoutText is the root class for anything that represents
|
| +// a text node (see core/dom/Text.h).
|
| +//
|
| +// This is a common node in the tree so to the limit memory overhead,
|
| +// this class inherits directly from LayoutObject.
|
| +// Also this class is used by both CSS and SVG layouts so LayoutObject
|
| +// was a natural choice.
|
| +//
|
| +// The actual layout of text is handled by the containing inline
|
| +// (LayoutInline) or block (LayoutBlock). They will invoke the Unicode
|
| +// Bidirectional Algorithm to break the text into actual lines.
|
| +// The result of layout is the line box tree, which represents lines
|
| +// on the screen. It is stored into m_firstTextBox and m_lastTextBox.
|
| +// To understand how lines are broken by the bidi algorithm, read e.g.
|
| +// LayoutBlockFlow::layoutInlineChildren.
|
| +//
|
| +//
|
| +// ***** LINE BOXES OWNERSHIP *****
|
| +// m_firstTextBox and m_lastTextBox are not owned by LayoutText
|
| +// but are pointers into the enclosing inline / block (see LayoutInline's
|
| +// and LayoutBlock's m_lineBoxes).
|
| +//
|
| +//
|
| +// This class implements the preferred logical widths computation
|
| +// for its underlying text. The widths are stored into m_minWidth
|
| +// and m_maxWidth. They are computed lazily based on
|
| +// m_preferredLogicalWidthsDirty.
|
| +//
|
| +// The previous comment applies also for painting. See e.g.
|
| +// BlockPainter::paintContents in particular the use of LineBoxListPainter.
|
| class CORE_EXPORT LayoutText : public LayoutObject {
|
| public:
|
| // FIXME: If the node argument is not a Text node or the string argument is
|
| @@ -171,6 +201,7 @@ private:
|
| // callers with a LayoutObject* can continue to use length().
|
| unsigned length() const final { return textLength(); }
|
|
|
| + // See the class comment as to why we shouldn't call this function directly.
|
| void paint(const PaintInfo&, const LayoutPoint&) final { ASSERT_NOT_REACHED(); }
|
| void layout() final { ASSERT_NOT_REACHED(); }
|
| bool nodeAtPoint(HitTestResult&, const HitTestLocation&, const LayoutPoint&, HitTestAction) final { ASSERT_NOT_REACHED(); return false; }
|
| @@ -210,6 +241,8 @@ private:
|
|
|
| String m_text;
|
|
|
| + // The line boxes associated with this object.
|
| + // Read the LINE BOXES OWNERSHIP section in the class header comment.
|
| InlineTextBox* m_firstTextBox;
|
| InlineTextBox* m_lastTextBox;
|
| };
|
|
|