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

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

Issue 763043002: Remove RenderBlockLineLayout (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: review 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 protected: 24 protected:
25 void layoutChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutUnit& paintInvalidationLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutU nit beforeEdge, LayoutUnit afterEdge) final;
26
25 void addOverflowFromChildren() final; 27 void addOverflowFromChildren() final;
26 28
27 void simplifiedNormalFlowLayout() final; 29 void simplifiedNormalFlowLayout() final;
28 30
29 void paintContents(PaintInfo&, const LayoutPoint&) final; 31 void paintContents(PaintInfo&, const LayoutPoint&) final;
30 32
31 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) final; 33 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) final;
32 34
35 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const;
36
37 void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const final;
38
39 private:
40 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot tom, RootInlineBox* highest = 0);
41
42 InlineFlowBox* createLineBoxes(RenderObject*, const LineInfo&, InlineBox* ch ildBox);
43 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&);
44 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,
46 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceR un, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, Wo rdMeasurements&);
47 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv erflowAndFallbackFontsMap&, VerticalPositionCache&);
48 // Helper function for layoutChildren()
49 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&);
50 void layoutRunsAndFloats(LineLayoutState&);
51 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&,
52 const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiSta tus);
53 void linkToEndLineIfNeeded(LineLayoutState&);
54 static void markDirtyFloatsForPaintInvalidation(Vector<FloatWithRect>& float s);
55 void checkFloatsInCleanLine(RootInlineBox*, Vector<FloatWithRect>&, size_t& floatIndex, bool& encounteredNewFloat, bool& dirtiedByFloat);
56 RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&) ;
57 void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineI terator& cleanLineStart, BidiStatus& cleanLineBidiStatus);
58 bool checkPaginationAndFloatsAtEndLine(LineLayoutState&);
59 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin eIterator& endLineStart, const BidiStatus& endLineStatus);
60 void deleteEllipsisLineBoxes();
61 void checkLinesForTextOverflow();
33 }; 62 };
34 63
35 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderParagraph, isRenderParagraph()); 64 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderParagraph, isRenderParagraph());
36 65
37 } // namespace blink 66 } // namespace blink
38 67
39 #endif // SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_ 68 #endif // SKY_ENGINE_CORE_RENDERING_RENDERPARAGRAPH_H_
OLDNEW
« no previous file with comments | « sky/engine/core/rendering/RenderLineBoxList.cpp ('k') | sky/engine/core/rendering/RenderParagraph.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698