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

Unified Diff: Source/core/rendering/RenderBlockFlow.h

Issue 179993006: [New multicol] Eliminate the need for RenderMultiColumnBlock. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 months 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
Index: Source/core/rendering/RenderBlockFlow.h
diff --git a/Source/core/rendering/RenderBlockFlow.h b/Source/core/rendering/RenderBlockFlow.h
index d76917516be7974395e52c6d3c6823073f84f958..2cd477aca80bda93338691609136865cdc4f34df 100644
--- a/Source/core/rendering/RenderBlockFlow.h
+++ b/Source/core/rendering/RenderBlockFlow.h
@@ -46,6 +46,7 @@ namespace WebCore {
class MarginInfo;
class LineBreaker;
class LineWidth;
+class RenderMultiColumnFlowThread;
class RenderBlockFlow : public RenderBlock {
public:
@@ -112,6 +113,8 @@ public:
void removeFloatingObjects();
+ virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0) OVERRIDE;
+
void moveAllChildrenIncludingFloatsTo(RenderBlock* toBlock, bool fullRemoveInsert);
bool generatesLineBoxesForInlineChild(RenderObject*);
@@ -191,6 +194,8 @@ public:
static TextRun constructTextRun(RenderObject* context, const Font&, const UChar* characters, int length, RenderStyle*, TextDirection,
TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun::ForbidLeadingExpansion);
+ RenderMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareData ? m_rareData->m_multiColumnFlowThread : 0; }
+
void addOverflowFromInlineChildren();
GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
@@ -215,6 +220,9 @@ protected:
return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logicalTop, fixedOffset, logicalHeight), applyTextIndent);
}
+ virtual RenderObject* layoutSpecialExcludedChild(bool /*relayoutChildren*/, SubtreeLayoutScope&);
+ virtual bool updateLogicalWidthAndColumnWidth() OVERRIDE;
+
private:
bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, SubtreeLayoutScope&);
void layoutBlockChildren(bool relayoutChildren, LayoutUnit& maxFloatLogicalBottom, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge);
@@ -282,8 +290,10 @@ private:
virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG
+ void createMultiColumnFlowThreadIfNeeded();
+
void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, int expansionOpportunityCount);
- virtual void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight);
+ void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight);
bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit layoutOverflowLogicalBottom) const;
void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight);
@@ -334,6 +344,7 @@ public:
public:
RenderBlockFlowRareData(const RenderBlockFlow* block)
: m_margins(positiveMarginBeforeDefault(block), negativeMarginBeforeDefault(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(block))
+ , m_multiColumnFlowThread(0)
, m_discardMarginBefore(false)
, m_discardMarginAfter(false)
{
@@ -358,6 +369,8 @@ public:
MarginValues m_margins;
+ RenderMultiColumnFlowThread* m_multiColumnFlowThread;
+
bool m_discardMarginBefore : 1;
bool m_discardMarginAfter : 1;
};

Powered by Google App Engine
This is Rietveld 408576698