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

Unified Diff: third_party/WebKit/Source/core/layout/ColumnBalancer.h

Issue 2395683002: Revert of Reformat comments in core/layout up until LayoutBox (Closed)
Patch Set: Created 4 years, 2 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: third_party/WebKit/Source/core/layout/ColumnBalancer.h
diff --git a/third_party/WebKit/Source/core/layout/ColumnBalancer.h b/third_party/WebKit/Source/core/layout/ColumnBalancer.h
index 1d796a39c03b6e84be26def5917576466bec9ae8..4dd77f6c4465320ccdd3134108c19a6927856856 100644
--- a/third_party/WebKit/Source/core/layout/ColumnBalancer.h
+++ b/third_party/WebKit/Source/core/layout/ColumnBalancer.h
@@ -6,11 +6,10 @@
namespace blink {
-// A column balancer traverses a portion of the subtree of a flow thread that
-// belongs to one or more fragmentainer groups within one column set, in order
-// to collect certain data to be used for column balancing. This is an abstract
-// class that just walks the subtree and leaves it to subclasses to actually
-// collect data.
+// A column balancer traverses a portion of the subtree of a flow thread that belongs to one or
+// more fragmentainer groups within one column set, in order to collect certain data to be used for
+// column balancing. This is an abstract class that just walks the subtree and leaves it to
+// subclasses to actually collect data.
class ColumnBalancer {
protected:
ColumnBalancer(const LayoutMultiColumnSet&,
@@ -19,8 +18,8 @@
const LayoutMultiColumnSet& columnSet() const { return m_columnSet; }
- // The flow thread portion we're examining. It may be that of the entire
- // column set, or just of a fragmentainer group.
+ // The flow thread portion we're examining. It may be that of the entire column set, or just of
+ // a fragmentainer group.
const LayoutUnit logicalTopInFlowThread() const {
return m_logicalTopInFlowThread;
}
@@ -43,12 +42,12 @@
// Flow thread offset for the layout object that we're currently examining.
LayoutUnit flowThreadOffset() const { return m_flowThreadOffset; }
- // Return true if the specified offset is at the top of a column, as long as
- // it's not the first column in the flow thread portion.
+ // Return true if the specified offset is at the top of a column, as long as it's not the first
+ // column in the flow thread portion.
bool isFirstAfterBreak(LayoutUnit flowThreadOffset) const {
if (flowThreadOffset <= m_logicalTopInFlowThread) {
- // The first column is either not after any break at all, or after a break
- // in a previous fragmentainer group.
+ // The first column is either not after any break at all, or after a break in a
+ // previous fragmentainer group.
return false;
}
return flowThreadOffset ==
@@ -66,25 +65,22 @@
logicalBottomInFlowThread <= m_logicalBottomInFlowThread;
}
- // Examine and collect column balancing data from a layout box that has been
- // found to intersect with the flow thread portion we're examining. Does not
- // recurse into children. flowThreadOffset() will return the offset from |box|
- // to the flow thread. Two hooks are provided here. The first one is called
- // right after entering and before traversing the subtree of the box, and the
- // second one right after having traversed the subtree.
+ // Examine and collect column balancing data from a layout box that has been found to intersect
+ // with the flow thread portion we're examining. Does not recurse into
+ // children. flowThreadOffset() will return the offset from |box| to the flow thread. Two hooks
+ // are provided here. The first one is called right after entering and before traversing the
+ // subtree of the box, and the second one right after having traversed the subtree.
virtual void examineBoxAfterEntering(const LayoutBox&,
EBreak previousBreakAfterValue) = 0;
virtual void examineBoxBeforeLeaving(const LayoutBox&) = 0;
- // Examine and collect column balancing data from a line that has been found
- // to intersect with the flow thread portion. Does not recurse into layout
- // objects on that line.
+ // Examine and collect column balancing data from a line that has been found to intersect with
+ // the flow thread portion. Does not recurse into layout objects on that line.
virtual void examineLine(const RootInlineBox&) = 0;
- // Examine and collect column balancing data for everything in the flow thread
- // portion. Will trigger calls to examineBoxAfterEntering(),
- // examineBoxBeforeLeaving() and examineLine() for interesting boxes and
- // lines.
+ // Examine and collect column balancing data for everything in the flow thread portion. Will
+ // trigger calls to examineBoxAfterEntering(), examineBoxBeforeLeaving() and examineLine() for
+ // interesting boxes and lines.
void traverse();
private:
@@ -97,16 +93,14 @@
LayoutUnit m_flowThreadOffset;
};
-// After an initial layout pass, we know the height of the contents of a flow
-// thread. Based on this, we can estimate an initial minimal column height. This
-// class will collect the necessary information from the layout objects to make
-// this estimate. This estimate may be used to perform another layout iteration.
-// If we after such a layout iteration cannot fit the contents with the given
-// column height without creating overflowing columns, we will have to stretch
-// the columns by some amount and lay out again. We may need to do this several
-// times (but typically not more times than the number of columns that we have).
-// The amount to stretch is provided by the sister of this class, named
-// MinimumSpaceShortageFinder.
+// After an initial layout pass, we know the height of the contents of a flow thread. Based on
+// this, we can estimate an initial minimal column height. This class will collect the necessary
+// information from the layout objects to make this estimate. This estimate may be used to perform
+// another layout iteration. If we after such a layout iteration cannot fit the contents with the
+// given column height without creating overflowing columns, we will have to stretch the columns by
+// some amount and lay out again. We may need to do this several times (but typically not more
+// times than the number of columns that we have). The amount to stretch is provided by the sister
+// of this class, named MinimumSpaceShortageFinder.
class InitialColumnHeightFinder final : public ColumnBalancer {
public:
InitialColumnHeightFinder(const LayoutMultiColumnSet&,
@@ -115,11 +109,10 @@
LayoutUnit initialMinimalBalancedHeight() const;
- // Height of the tallest piece of unbreakable content. This is the minimum
- // column logical height required to avoid fragmentation where it shouldn't
- // occur (inside unbreakable content, between orphans and widows, etc.). This
- // will be used as a hint to the column balancer to help set a good initial
- // column height.
+ // Height of the tallest piece of unbreakable content. This is the minimum column logical height
+ // required to avoid fragmentation where it shouldn't occur (inside unbreakable content, between
+ // orphans and widows, etc.). This will be used as a hint to the column balancer to help set a
+ // good initial column height.
LayoutUnit tallestUnbreakableLogicalHeight() const {
return m_tallestUnbreakableLogicalHeight;
}
@@ -130,39 +123,36 @@
void examineBoxBeforeLeaving(const LayoutBox&);
void examineLine(const RootInlineBox&);
- // Record that there's a pagination strut that ends at the specified
- // |offsetInFlowThread|, which is an offset exactly at the top of some column.
+ // Record that there's a pagination strut that ends at the specified |offsetInFlowThread|, which
+ // is an offset exactly at the top of some column.
void recordStrutBeforeOffset(LayoutUnit offsetInFlowThread, LayoutUnit strut);
- // Return the accumulated space used by struts at all column boundaries
- // preceding the specified flowthread offset.
+ // Return the accumulated space used by struts at all column boundaries preceding the specified
+ // flowthread offset.
LayoutUnit spaceUsedByStrutsAt(LayoutUnit offsetInFlowThread) const;
- // Add a content run, specified by its end position. A content run is appended
- // at every forced/explicit break and at the end of the column set. The
- // content runs are used to determine where implicit/soft breaks will occur,
- // in order to calculate an initial column height.
+ // Add a content run, specified by its end position. A content run is appended at every
+ // forced/explicit break and at the end of the column set. The content runs are used to
+ // determine where implicit/soft breaks will occur, in order to calculate an initial column
+ // height.
void addContentRun(LayoutUnit endOffsetInFlowThread);
- // Return the index of the content run with the currently tallest columns,
- // taking all implicit breaks assumed so far into account.
+ // Return the index of the content run with the currently tallest columns, taking all implicit
+ // breaks assumed so far into account.
unsigned contentRunIndexWithTallestColumns() const;
- // Given the current list of content runs, make assumptions about where we
- // need to insert implicit breaks (if there's room for any at all; depending
- // on the number of explicit breaks), and store the results. This is needed in
- // order to balance the columns.
+ // Given the current list of content runs, make assumptions about where we need to insert
+ // implicit breaks (if there's room for any at all; depending on the number of explicit breaks),
+ // and store the results. This is needed in order to balance the columns.
void distributeImplicitBreaks();
- // A run of content without explicit (forced) breaks; i.e. a flow thread
- // portion between two explicit breaks, between flow thread start and an
- // explicit break, between an explicit break and flow thread end, or, in cases
- // when there are no explicit breaks at all: between flow thread portion start
- // and flow thread portion end. We need to know where the explicit breaks are,
- // in order to figure out where the implicit breaks will end up, so that we
- // get the columns properly balanced. A content run starts out as representing
- // one single column, and will represent one additional column for each
- // implicit break "inserted" there.
+ // A run of content without explicit (forced) breaks; i.e. a flow thread portion between two
+ // explicit breaks, between flow thread start and an explicit break, between an explicit break
+ // and flow thread end, or, in cases when there are no explicit breaks at all: between flow
+ // thread portion start and flow thread portion end. We need to know where the explicit breaks
+ // are, in order to figure out where the implicit breaks will end up, so that we get the columns
+ // properly balanced. A content run starts out as representing one single column, and will
+ // represent one additional column for each implicit break "inserted" there.
class ContentRun {
public:
ContentRun(LayoutUnit breakOffset)
@@ -172,8 +162,8 @@
void assumeAnotherImplicitBreak() { m_assumedImplicitBreaks++; }
LayoutUnit breakOffset() const { return m_breakOffset; }
- // Return the column height that this content run would require, considering
- // the implicit breaks assumed so far.
+ // Return the column height that this content run would require, considering the implicit
+ // breaks assumed so far.
LayoutUnit columnLogicalHeight(LayoutUnit startOffset) const {
return LayoutUnit::fromFloatCeil(float(m_breakOffset - startOffset) /
float(m_assumedImplicitBreaks + 1));
@@ -181,21 +171,19 @@
private:
LayoutUnit m_breakOffset; // Flow thread offset where this run ends.
- unsigned m_assumedImplicitBreaks; // Number of implicit breaks in this run
- // assumed so far.
+ unsigned
+ m_assumedImplicitBreaks; // Number of implicit breaks in this run assumed so far.
};
Vector<ContentRun, 32> m_contentRuns;
- // Shortest strut found at each column boundary (index 0 being the boundary
- // between the first and the second column, index 1 being the one between the
- // second and the third boundary, and so on). There may be several objects
- // that cross the same column boundary, and we're only interested in the
- // shortest one. For example, when having a float beside regular in-flow
- // content, we end up with two parallel fragmentation flows [1]. The shortest
- // strut found at a column boundary is the amount of space that we wasted at
- // said column boundary, and it needs to be deducted when estimating the
- // initial balanced column height, or we risk making the column row too tall.
- // An entry set to LayoutUnit::max() means that we didn't detect any object
+ // Shortest strut found at each column boundary (index 0 being the boundary between the first
+ // and the second column, index 1 being the one between the second and the third boundary, and
+ // so on). There may be several objects that cross the same column boundary, and we're only
+ // interested in the shortest one. For example, when having a float beside regular in-flow
+ // content, we end up with two parallel fragmentation flows [1]. The shortest strut found at a
+ // column boundary is the amount of space that we wasted at said column boundary, and it needs
+ // to be deducted when estimating the initial balanced column height, or we risk making the
+ // column row too tall. An entry set to LayoutUnit::max() means that we didn't detect any object
// crossing that boundary.
//
// [1] http://www.w3.org/TR/css3-break/#parallel-flows
@@ -204,11 +192,10 @@
LayoutUnit m_tallestUnbreakableLogicalHeight;
};
-// If we have previously used InitialColumnHeightFinder to estimate an initial
-// column height, and that didn't result in tall enough columns, we need
-// subsequent layout passes where we increase the column height by the minimum
-// space shortage at column breaks. This class finds the minimum space shortage
-// after having laid out with the current column height.
+// If we have previously used InitialColumnHeightFinder to estimate an initial column height, and
+// that didn't result in tall enough columns, we need subsequent layout passes where we increase
+// the column height by the minimum space shortage at column breaks. This class finds the minimum
+// space shortage after having laid out with the current column height.
class MinimumSpaceShortageFinder final : public ColumnBalancer {
public:
MinimumSpaceShortageFinder(const LayoutMultiColumnSet&,
@@ -225,9 +212,9 @@
void examineLine(const RootInlineBox&);
void recordSpaceShortage(LayoutUnit shortage) {
- // Only positive values are interesting (and allowed) here. Zero space
- // shortage may be reported when we're at the top of a column and the
- // element has zero height.
+ // Only positive values are interesting (and allowed) here. Zero space shortage may
+ // be reported when we're at the top of a column and the element has zero
+ // height.
if (shortage > 0)
m_minimumSpaceShortage = std::min(m_minimumSpaceShortage, shortage);
}
@@ -235,9 +222,8 @@
// The smallest amout of space shortage that caused a column break.
LayoutUnit m_minimumSpaceShortage;
- // Set when breaking before a block, and we're looking for the first
- // unbreakable descendant, in order to report correct space shortage for that
- // one.
+ // Set when breaking before a block, and we're looking for the first unbreakable descendant, in
+ // order to report correct space shortage for that one.
LayoutUnit m_pendingStrut;
unsigned m_forcedBreaksCount;
« no previous file with comments | « third_party/WebKit/Source/core/layout/ClipRectsCache.h ('k') | third_party/WebKit/Source/core/layout/ColumnBalancer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698