Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 MultiColumnFragmentainerGroup_h | 5 #ifndef MultiColumnFragmentainerGroup_h |
| 6 #define MultiColumnFragmentainerGroup_h | 6 #define MultiColumnFragmentainerGroup_h |
| 7 | 7 |
| 8 #include "core/layout/LayoutMultiColumnFlowThread.h" | 8 #include "core/layout/LayoutMultiColumnFlowThread.h" |
| 9 #include "wtf/Allocator.h" | 9 #include "wtf/Allocator.h" |
| 10 | 10 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 72 return m_logicalBottomInFlowThread - m_logicalTopInFlowThread; | 72 return m_logicalBottomInFlowThread - m_logicalTopInFlowThread; |
| 73 } | 73 } |
| 74 | 74 |
| 75 void resetColumnHeight(); | 75 void resetColumnHeight(); |
| 76 bool recalculateColumnHeight(LayoutMultiColumnSet&); | 76 bool recalculateColumnHeight(LayoutMultiColumnSet&); |
| 77 | 77 |
| 78 LayoutSize flowThreadTranslationAtOffset(LayoutUnit, | 78 LayoutSize flowThreadTranslationAtOffset(LayoutUnit, |
| 79 LayoutBox::PageBoundaryRule, | 79 LayoutBox::PageBoundaryRule, |
| 80 CoordinateSpaceConversion) const; | 80 CoordinateSpaceConversion) const; |
| 81 LayoutUnit columnLogicalTopForOffset(LayoutUnit offsetInFlowThread) const; | 81 LayoutUnit columnLogicalTopForOffset(LayoutUnit offsetInFlowThread) const; |
| 82 | |
| 83 // If SnapToColumnPolicy is SnapToColumn, visualPointToFlowThreadPoint() won't | |
| 84 // return points that lie outside the bounds of the columns: Before converting | |
| 85 // to a flow thread position, if the block direction coordinate is outside the | |
| 86 // column, snap to the bounds of the column, and reset the inline direction | |
| 87 // coordinate to the start position in the column. The effect of this is that | |
| 88 // if the block position is before the column rectangle, we'll get to the | |
| 89 // beginning of this column, while if the block position is after the column | |
| 90 // rectangle, we'll get to the beginning of the next column. This is behavior | |
| 91 // that positionForPoint() depends on. | |
| 92 enum SnapToColumnPolicy { DontSnapToColumn, SnapToColumn }; | |
|
szager1
2016/12/19 23:36:44
nit: I prefer not to define an enum for what is ef
mstensho (USE GERRIT)
2016/12/20 08:55:02
A long time ago I learned that this was how to do
| |
| 82 LayoutPoint visualPointToFlowThreadPoint( | 93 LayoutPoint visualPointToFlowThreadPoint( |
| 83 const LayoutPoint& visualPoint) const; | 94 const LayoutPoint& visualPoint, |
| 95 SnapToColumnPolicy = DontSnapToColumn) const; | |
|
szager1
2016/12/19 23:36:44
It's a bit strange that the default value doesn't
mstensho (USE GERRIT)
2016/12/20 08:55:02
This is exactly what I wanted. The previous behavi
| |
| 96 | |
| 84 LayoutRect fragmentsBoundingBox( | 97 LayoutRect fragmentsBoundingBox( |
| 85 const LayoutRect& boundingBoxInFlowThread) const; | 98 const LayoutRect& boundingBoxInFlowThread) const; |
| 86 | 99 |
| 87 LayoutRect flowThreadPortionRectAt(unsigned columnIndex) const; | 100 LayoutRect flowThreadPortionRectAt(unsigned columnIndex) const; |
| 88 LayoutRect flowThreadPortionOverflowRectAt(unsigned columnIndex) const; | 101 LayoutRect flowThreadPortionOverflowRectAt(unsigned columnIndex) const; |
| 89 | 102 |
| 90 // Get the first and the last column intersecting the specified block range. | 103 // Get the first and the last column intersecting the specified block range. |
| 91 // Note that |logicalBottomInFlowThread| is an exclusive endpoint. | 104 // Note that |logicalBottomInFlowThread| is an exclusive endpoint. |
| 92 void columnIntervalForBlockRangeInFlowThread( | 105 void columnIntervalForBlockRangeInFlowThread( |
| 93 LayoutUnit logicalTopInFlowThread, | 106 LayoutUnit logicalTopInFlowThread, |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 186 | 199 |
| 187 private: | 200 private: |
| 188 LayoutMultiColumnSet& m_columnSet; | 201 LayoutMultiColumnSet& m_columnSet; |
| 189 | 202 |
| 190 Vector<MultiColumnFragmentainerGroup, 1> m_groups; | 203 Vector<MultiColumnFragmentainerGroup, 1> m_groups; |
| 191 }; | 204 }; |
| 192 | 205 |
| 193 } // namespace blink | 206 } // namespace blink |
| 194 | 207 |
| 195 #endif // MultiColumnFragmentainerGroup_h | 208 #endif // MultiColumnFragmentainerGroup_h |
| OLD | NEW |