| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ | 5 #ifndef SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ |
| 6 #define SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ | 6 #define SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ |
| 7 | 7 |
| 8 #include "sky/engine/core/dom/ContainerNode.h" | 8 #include "sky/engine/core/dom/ContainerNode.h" |
| 9 #include "sky/engine/core/rendering/RenderBlockFlow.h" | 9 #include "sky/engine/core/rendering/RenderBlockFlow.h" |
| 10 | 10 |
| 11 namespace blink { | 11 namespace blink { |
| 12 | 12 |
| 13 class ContainerNode; | 13 class ContainerNode; |
| 14 | 14 |
| 15 class RenderParagraph final : public RenderBlockFlow { | 15 class RenderParagraph final : public RenderBlockFlow { |
| 16 public: | 16 public: |
| 17 explicit RenderParagraph(ContainerNode*); | 17 explicit RenderParagraph(ContainerNode*); |
| 18 virtual ~RenderParagraph(); | 18 virtual ~RenderParagraph(); |
| 19 | 19 |
| 20 static RenderParagraph* createAnonymous(Document&); | 20 static RenderParagraph* createAnonymous(Document&); |
| 21 | 21 |
| 22 bool isRenderParagraph() const override { return true; } | 22 bool isRenderParagraph() const override { return true; } |
| 23 | 23 |
| 24 virtual RootInlineBox* lineAtIndex(int) const; |
| 25 virtual int lineCount(const RootInlineBox* = 0, bool* = 0) const; |
| 26 |
| 27 GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& root
BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
| 28 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las
tLogicalRight, const PaintInfo*); |
| 29 |
| 24 protected: | 30 protected: |
| 25 void layoutChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutUnit&
paintInvalidationLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutU
nit beforeEdge, LayoutUnit afterEdge) final; | 31 void layoutChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutUnit&
paintInvalidationLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutU
nit beforeEdge, LayoutUnit afterEdge) final; |
| 26 | 32 |
| 27 void addOverflowFromChildren() final; | 33 void addOverflowFromChildren() final; |
| 28 | 34 |
| 29 void simplifiedNormalFlowLayout() final; | 35 void simplifiedNormalFlowLayout() final; |
| 30 | 36 |
| 31 void paintContents(PaintInfo&, const LayoutPoint&) final; | 37 void paintContents(PaintInfo&, const LayoutPoint&) final; |
| 32 | 38 |
| 33 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc
ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction)
final; | 39 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc
ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction)
final; |
| 34 | 40 |
| 35 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; | 41 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; |
| 36 | 42 |
| 37 void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit&
maxLogicalWidth) const final; | 43 void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit&
maxLogicalWidth) const final; |
| 38 | 44 |
| 45 int firstLineBoxBaseline() const final; |
| 46 int lastLineBoxBaseline(LineDirectionMode) const final; |
| 47 |
| 39 private: | 48 private: |
| 40 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = 0); | 49 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = 0); |
| 41 | 50 |
| 42 InlineFlowBox* createLineBoxes(RenderObject*, const LineInfo&, InlineBox* ch
ildBox); | 51 InlineFlowBox* createLineBoxes(RenderObject*, const LineInfo&, InlineBox* ch
ildBox); |
| 43 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&); | 52 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&); |
| 44 void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&,
BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAnd
FallbackFontsMap&, VerticalPositionCache&, WordMeasurements&); | 53 void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&,
BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAnd
FallbackFontsMap&, VerticalPositionCache&, WordMeasurements&); |
| 45 BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const Lin
eInfo&, ETextAlign, float& logicalLeft, | 54 BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const Lin
eInfo&, ETextAlign, float& logicalLeft, |
| 46 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceR
un, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, Wo
rdMeasurements&); | 55 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceR
un, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, Wo
rdMeasurements&); |
| 47 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv
erflowAndFallbackFontsMap&, VerticalPositionCache&); | 56 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv
erflowAndFallbackFontsMap&, VerticalPositionCache&); |
| 48 // Helper function for layoutChildren() | 57 // Helper function for layoutChildren() |
| (...skipping 10 matching lines...) Expand all Loading... |
| 59 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin
eIterator& endLineStart, const BidiStatus& endLineStatus); | 68 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin
eIterator& endLineStart, const BidiStatus& endLineStatus); |
| 60 void deleteEllipsisLineBoxes(); | 69 void deleteEllipsisLineBoxes(); |
| 61 void checkLinesForTextOverflow(); | 70 void checkLinesForTextOverflow(); |
| 62 }; | 71 }; |
| 63 | 72 |
| 64 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderParagraph, isRenderParagraph()); | 73 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderParagraph, isRenderParagraph()); |
| 65 | 74 |
| 66 } // namespace blink | 75 } // namespace blink |
| 67 | 76 |
| 68 #endif // SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ | 77 #endif // SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ |
| OLD | NEW |