| 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 virtual int heightForLineCount(int); |
| 27 |
| 28 GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& root
BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
| 29 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las
tLogicalRight, const PaintInfo*); |
| 30 |
| 24 protected: | 31 protected: |
| 25 void layoutChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutUnit&
paintInvalidationLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutU
nit beforeEdge, LayoutUnit afterEdge) final; | 32 void layoutChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutUnit&
paintInvalidationLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutU
nit beforeEdge, LayoutUnit afterEdge) final; |
| 26 | 33 |
| 27 void addOverflowFromChildren() final; | 34 void addOverflowFromChildren() final; |
| 28 | 35 |
| 29 void simplifiedNormalFlowLayout() final; | 36 void simplifiedNormalFlowLayout() final; |
| 30 | 37 |
| 31 void paintContents(PaintInfo&, const LayoutPoint&) final; | 38 void paintContents(PaintInfo&, const LayoutPoint&) final; |
| 32 | 39 |
| 33 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc
ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction)
final; | 40 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc
ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction)
final; |
| 34 | 41 |
| 35 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; | 42 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; |
| 36 | 43 |
| 37 void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit&
maxLogicalWidth) const final; | 44 void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit&
maxLogicalWidth) const final; |
| 38 | 45 |
| 46 int firstLineBoxBaseline() const final; |
| 47 int lastLineBoxBaseline(LineDirectionMode) const final; |
| 48 |
| 39 private: | 49 private: |
| 40 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = 0); | 50 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = 0); |
| 41 | 51 |
| 42 InlineFlowBox* createLineBoxes(RenderObject*, const LineInfo&, InlineBox* ch
ildBox); | 52 InlineFlowBox* createLineBoxes(RenderObject*, const LineInfo&, InlineBox* ch
ildBox); |
| 43 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&); | 53 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&); |
| 44 void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&,
BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAnd
FallbackFontsMap&, VerticalPositionCache&, WordMeasurements&); | 54 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, | 55 BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const Lin
eInfo&, ETextAlign, float& logicalLeft, |
| 46 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceR
un, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, Wo
rdMeasurements&); | 56 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceR
un, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, Wo
rdMeasurements&); |
| 47 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv
erflowAndFallbackFontsMap&, VerticalPositionCache&); | 57 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv
erflowAndFallbackFontsMap&, VerticalPositionCache&); |
| 48 // Helper function for layoutChildren() | 58 // Helper function for layoutChildren() |
| (...skipping 10 matching lines...) Expand all Loading... |
| 59 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin
eIterator& endLineStart, const BidiStatus& endLineStatus); | 69 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin
eIterator& endLineStart, const BidiStatus& endLineStatus); |
| 60 void deleteEllipsisLineBoxes(); | 70 void deleteEllipsisLineBoxes(); |
| 61 void checkLinesForTextOverflow(); | 71 void checkLinesForTextOverflow(); |
| 62 }; | 72 }; |
| 63 | 73 |
| 64 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderParagraph, isRenderParagraph()); | 74 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderParagraph, isRenderParagraph()); |
| 65 | 75 |
| 66 } // namespace blink | 76 } // namespace blink |
| 67 | 77 |
| 68 #endif // SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ | 78 #endif // SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ |
| OLD | NEW |