Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: sky/engine/core/rendering/RenderParagraph.h

Issue 762073002: Split more Paragraph-specific code from RenderBlock into RenderParagraph (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698