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

Unified Diff: sky/engine/core/rendering/RenderBlockFlow.h

Issue 763043002: Remove RenderBlockLineLayout (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: review Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/core/rendering/RenderBlock.cpp ('k') | sky/engine/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/core/rendering/RenderBlockFlow.h
diff --git a/sky/engine/core/rendering/RenderBlockFlow.h b/sky/engine/core/rendering/RenderBlockFlow.h
index 008a2b5c252f6907c9a4358d6734200bdced9d80..c8cf69929162b3c118f596760ae58243b49d497e 100644
--- a/sky/engine/core/rendering/RenderBlockFlow.h
+++ b/sky/engine/core/rendering/RenderBlockFlow.h
@@ -103,9 +103,8 @@ public:
virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0) override;
- bool generatesLineBoxesForInlineChild(RenderObject*);
-
LayoutUnit startAlignedOffsetForLine(bool shouldIndentText);
+ void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, unsigned expansionOpportunityCount);
void setStaticInlinePositionForChild(RenderBox*, LayoutUnit inlinePosition);
void updateStaticInlinePositionForChild(RenderBox*);
@@ -115,14 +114,11 @@ public:
return obj->isOutOfFlowPositioned() && !obj->style()->isOriginalDisplayInlineType() && !obj->container()->isRenderInline();
}
- // FIXME: This should be const to avoid a const_cast, but can modify child dirty bits
- void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth);
-
GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, const PaintInfo*);
protected:
- void layoutInlineChildren(bool relayoutChildren, LayoutUnit& paintInvalidationLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit afterEdge);
+ virtual void layoutChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutUnit& paintInvalidationLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit beforeEdge, LayoutUnit afterEdge);
virtual bool updateLogicalWidthAndColumnWidth() override;
@@ -130,7 +126,6 @@ protected:
private:
void layoutBlockFlow(bool relayoutChildren, SubtreeLayoutScope&);
- void layoutBlockChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge);
void layoutBlockChild(RenderBox* child);
void adjustPositionedBlock(RenderBox* child);
@@ -139,8 +134,6 @@ private:
RootInlineBox* createRootInlineBox();
- void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, unsigned expansionOpportunityCount);
-
public:
struct FloatWithRect {
FloatWithRect(RenderBox* f)
@@ -155,8 +148,6 @@ public:
bool everHadLayout;
};
-protected:
- virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const;
private:
LayoutUnit m_paintInvalidationLogicalTop;
LayoutUnit m_paintInvalidationLogicalBottom;
@@ -164,38 +155,6 @@ private:
protected:
friend class BreakingContext; // FIXME: It uses insertFloatingObject and positionNewFloatOnLine, if we move those out from the private scope/add a helper to LineBreaker, we can remove this friend
friend class LineBreaker;
-
-// FIXME-BLOCKFLOW: These methods have implementations in
-// RenderBlockLineLayout. They should be moved to the proper header once the
-// line layout code is separated from RenderBlock and RenderBlockFlow.
-// START METHODS DEFINED IN RenderBlockLineLayout
-private:
- InlineFlowBox* createLineBoxes(RenderObject*, const LineInfo&, InlineBox* childBox);
- RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&);
- void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&, BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAndFallbackFontsMap&, VerticalPositionCache&, WordMeasurements&);
- BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const LineInfo&, ETextAlign, float& logicalLeft,
- float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceRun, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, WordMeasurements&);
- void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOverflowAndFallbackFontsMap&, VerticalPositionCache&);
- BidiRun* handleTrailingSpaces(BidiRunList<BidiRun>&, BidiContext*);
- // Helper function for layoutInlineChildren()
- RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<BidiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&);
- void layoutRunsAndFloats(LineLayoutState&);
- const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogicalHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine, InlineBidiResolver&, const InlineIterator&);
- void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&,
- const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiStatus);
- void linkToEndLineIfNeeded(LineLayoutState&);
- static void markDirtyFloatsForPaintInvalidation(Vector<FloatWithRect>& floats);
- void checkFloatsInCleanLine(RootInlineBox*, Vector<FloatWithRect>&, size_t& floatIndex, bool& encounteredNewFloat, bool& dirtiedByFloat);
- RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&);
- void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineIterator& cleanLineStart, BidiStatus& cleanLineBidiStatus);
- bool checkPaginationAndFloatsAtEndLine(LineLayoutState&);
- bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const InlineIterator& endLineStart, const BidiStatus& endLineStatus);
- void deleteEllipsisLineBoxes();
- void checkLinesForTextOverflow();
-
-
-// END METHODS DEFINED IN RenderBlockLineLayout
-
};
DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow());
« no previous file with comments | « sky/engine/core/rendering/RenderBlock.cpp ('k') | sky/engine/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698