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

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: cr comments 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
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
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_
OLDNEW
« no previous file with comments | « sky/engine/core/rendering/RenderFlexibleBox.cpp ('k') | sky/engine/core/rendering/RenderParagraph.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698