| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 (m_direction == ForColumns) ? varyingTrackSpan : fixedTrackSpan; | 360 (m_direction == ForColumns) ? varyingTrackSpan : fixedTrackSpan; |
| 361 size_t columnSpan = | 361 size_t columnSpan = |
| 362 (m_direction == ForColumns) ? fixedTrackSpan : varyingTrackSpan; | 362 (m_direction == ForColumns) ? fixedTrackSpan : varyingTrackSpan; |
| 363 | 363 |
| 364 size_t& varyingTrackIndex = | 364 size_t& varyingTrackIndex = |
| 365 (m_direction == ForColumns) ? m_rowIndex : m_columnIndex; | 365 (m_direction == ForColumns) ? m_rowIndex : m_columnIndex; |
| 366 const size_t endOfVaryingTrackIndex = | 366 const size_t endOfVaryingTrackIndex = |
| 367 (m_direction == ForColumns) ? m_grid.size() : m_grid[0].size(); | 367 (m_direction == ForColumns) ? m_grid.size() : m_grid[0].size(); |
| 368 for (; varyingTrackIndex < endOfVaryingTrackIndex; ++varyingTrackIndex) { | 368 for (; varyingTrackIndex < endOfVaryingTrackIndex; ++varyingTrackIndex) { |
| 369 if (checkEmptyCells(rowSpan, columnSpan)) { | 369 if (checkEmptyCells(rowSpan, columnSpan)) { |
| 370 std::unique_ptr<GridArea> result = wrapUnique( | 370 std::unique_ptr<GridArea> result = WTF::wrapUnique( |
| 371 new GridArea(GridSpan::translatedDefiniteGridSpan( | 371 new GridArea(GridSpan::translatedDefiniteGridSpan( |
| 372 m_rowIndex, m_rowIndex + rowSpan), | 372 m_rowIndex, m_rowIndex + rowSpan), |
| 373 GridSpan::translatedDefiniteGridSpan( | 373 GridSpan::translatedDefiniteGridSpan( |
| 374 m_columnIndex, m_columnIndex + columnSpan))); | 374 m_columnIndex, m_columnIndex + columnSpan))); |
| 375 // Advance the iterator to avoid an infinite loop where we would return | 375 // Advance the iterator to avoid an infinite loop where we would return |
| 376 // the same grid area over and over. | 376 // the same grid area over and over. |
| 377 ++varyingTrackIndex; | 377 ++varyingTrackIndex; |
| 378 return result; | 378 return result; |
| 379 } | 379 } |
| 380 } | 380 } |
| (...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1116 additionalTracksToTreatAsInflexible->contains(index)) | 1116 additionalTracksToTreatAsInflexible->contains(index)) |
| 1117 continue; | 1117 continue; |
| 1118 LayoutUnit baseSize = tracks[index].baseSize(); | 1118 LayoutUnit baseSize = tracks[index].baseSize(); |
| 1119 double flexFactor = | 1119 double flexFactor = |
| 1120 gridTrackSize(direction, index).maxTrackBreadth().flex(); | 1120 gridTrackSize(direction, index).maxTrackBreadth().flex(); |
| 1121 // treating all such tracks as inflexible. | 1121 // treating all such tracks as inflexible. |
| 1122 if (baseSize > hypotheticalFactorUnitSize * flexFactor) { | 1122 if (baseSize > hypotheticalFactorUnitSize * flexFactor) { |
| 1123 leftOverSpace -= baseSize; | 1123 leftOverSpace -= baseSize; |
| 1124 flexFactorSum -= flexFactor; | 1124 flexFactorSum -= flexFactor; |
| 1125 if (!additionalTracksToTreatAsInflexible) | 1125 if (!additionalTracksToTreatAsInflexible) |
| 1126 additionalTracksToTreatAsInflexible = makeUnique<TrackIndexSet>(); | 1126 additionalTracksToTreatAsInflexible = WTF::makeUnique<TrackIndexSet>(); |
| 1127 additionalTracksToTreatAsInflexible->add(index); | 1127 additionalTracksToTreatAsInflexible->add(index); |
| 1128 validFlexFactorUnit = false; | 1128 validFlexFactorUnit = false; |
| 1129 } | 1129 } |
| 1130 } | 1130 } |
| 1131 if (!validFlexFactorUnit) | 1131 if (!validFlexFactorUnit) |
| 1132 return computeFlexFactorUnitSize( | 1132 return computeFlexFactorUnitSize( |
| 1133 tracks, direction, flexFactorSum, leftOverSpace, flexibleTracksIndexes, | 1133 tracks, direction, flexFactorSum, leftOverSpace, flexibleTracksIndexes, |
| 1134 std::move(additionalTracksToTreatAsInflexible)); | 1134 std::move(additionalTracksToTreatAsInflexible)); |
| 1135 return hypotheticalFactorUnitSize; | 1135 return hypotheticalFactorUnitSize; |
| 1136 } | 1136 } |
| (...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2038 std::unique_ptr<OrderedTrackIndexSet> emptyTrackIndexes; | 2038 std::unique_ptr<OrderedTrackIndexSet> emptyTrackIndexes; |
| 2039 size_t insertionPoint = isRowAxis | 2039 size_t insertionPoint = isRowAxis |
| 2040 ? styleRef().gridAutoRepeatColumnsInsertionPoint() | 2040 ? styleRef().gridAutoRepeatColumnsInsertionPoint() |
| 2041 : styleRef().gridAutoRepeatRowsInsertionPoint(); | 2041 : styleRef().gridAutoRepeatRowsInsertionPoint(); |
| 2042 size_t firstAutoRepeatTrack = | 2042 size_t firstAutoRepeatTrack = |
| 2043 insertionPoint + std::abs(grid.smallestTrackStart(direction)); | 2043 insertionPoint + std::abs(grid.smallestTrackStart(direction)); |
| 2044 size_t lastAutoRepeatTrack = | 2044 size_t lastAutoRepeatTrack = |
| 2045 firstAutoRepeatTrack + grid.autoRepeatTracks(direction); | 2045 firstAutoRepeatTrack + grid.autoRepeatTracks(direction); |
| 2046 | 2046 |
| 2047 if (!m_grid.hasGridItems()) { | 2047 if (!m_grid.hasGridItems()) { |
| 2048 emptyTrackIndexes = wrapUnique(new OrderedTrackIndexSet); | 2048 emptyTrackIndexes = WTF::wrapUnique(new OrderedTrackIndexSet); |
| 2049 for (size_t trackIndex = firstAutoRepeatTrack; | 2049 for (size_t trackIndex = firstAutoRepeatTrack; |
| 2050 trackIndex < lastAutoRepeatTrack; ++trackIndex) | 2050 trackIndex < lastAutoRepeatTrack; ++trackIndex) |
| 2051 emptyTrackIndexes->add(trackIndex); | 2051 emptyTrackIndexes->add(trackIndex); |
| 2052 } else { | 2052 } else { |
| 2053 for (size_t trackIndex = firstAutoRepeatTrack; | 2053 for (size_t trackIndex = firstAutoRepeatTrack; |
| 2054 trackIndex < lastAutoRepeatTrack; ++trackIndex) { | 2054 trackIndex < lastAutoRepeatTrack; ++trackIndex) { |
| 2055 GridIterator iterator(grid, direction, trackIndex); | 2055 GridIterator iterator(grid, direction, trackIndex); |
| 2056 if (!iterator.nextGridItem()) { | 2056 if (!iterator.nextGridItem()) { |
| 2057 if (!emptyTrackIndexes) | 2057 if (!emptyTrackIndexes) |
| 2058 emptyTrackIndexes = wrapUnique(new OrderedTrackIndexSet); | 2058 emptyTrackIndexes = WTF::wrapUnique(new OrderedTrackIndexSet); |
| 2059 emptyTrackIndexes->add(trackIndex); | 2059 emptyTrackIndexes->add(trackIndex); |
| 2060 } | 2060 } |
| 2061 } | 2061 } |
| 2062 } | 2062 } |
| 2063 return emptyTrackIndexes; | 2063 return emptyTrackIndexes; |
| 2064 } | 2064 } |
| 2065 | 2065 |
| 2066 void LayoutGrid::placeItemsOnGrid(LayoutGrid::Grid& grid, | 2066 void LayoutGrid::placeItemsOnGrid(LayoutGrid::Grid& grid, |
| 2067 SizingOperation sizingOperation) { | 2067 SizingOperation sizingOperation) { |
| 2068 if (!grid.needsItemsPlacement()) | 2068 if (!grid.needsItemsPlacement()) |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2221 GridTrackSizingDirection specifiedDirection, | 2221 GridTrackSizingDirection specifiedDirection, |
| 2222 const GridSpan& specifiedPositions) const { | 2222 const GridSpan& specifiedPositions) const { |
| 2223 GridTrackSizingDirection crossDirection = | 2223 GridTrackSizingDirection crossDirection = |
| 2224 specifiedDirection == ForColumns ? ForRows : ForColumns; | 2224 specifiedDirection == ForColumns ? ForRows : ForColumns; |
| 2225 const size_t endOfCrossDirection = grid.numTracks(crossDirection); | 2225 const size_t endOfCrossDirection = grid.numTracks(crossDirection); |
| 2226 size_t crossDirectionSpanSize = | 2226 size_t crossDirectionSpanSize = |
| 2227 GridPositionsResolver::spanSizeForAutoPlacedItem(*style(), gridItem, | 2227 GridPositionsResolver::spanSizeForAutoPlacedItem(*style(), gridItem, |
| 2228 crossDirection); | 2228 crossDirection); |
| 2229 GridSpan crossDirectionPositions = GridSpan::translatedDefiniteGridSpan( | 2229 GridSpan crossDirectionPositions = GridSpan::translatedDefiniteGridSpan( |
| 2230 endOfCrossDirection, endOfCrossDirection + crossDirectionSpanSize); | 2230 endOfCrossDirection, endOfCrossDirection + crossDirectionSpanSize); |
| 2231 return wrapUnique( | 2231 return WTF::wrapUnique( |
| 2232 new GridArea(specifiedDirection == ForColumns ? crossDirectionPositions | 2232 new GridArea(specifiedDirection == ForColumns ? crossDirectionPositions |
| 2233 : specifiedPositions, | 2233 : specifiedPositions, |
| 2234 specifiedDirection == ForColumns ? specifiedPositions | 2234 specifiedDirection == ForColumns ? specifiedPositions |
| 2235 : crossDirectionPositions)); | 2235 : crossDirectionPositions)); |
| 2236 } | 2236 } |
| 2237 | 2237 |
| 2238 void LayoutGrid::placeSpecifiedMajorAxisItemsOnGrid( | 2238 void LayoutGrid::placeSpecifiedMajorAxisItemsOnGrid( |
| 2239 Grid& grid, | 2239 Grid& grid, |
| 2240 const Vector<LayoutBox*>& autoGridItems) const { | 2240 const Vector<LayoutBox*>& autoGridItems) const { |
| 2241 bool isForColumns = autoPlacementMajorAxisDirection() == ForColumns; | 2241 bool isForColumns = autoPlacementMajorAxisDirection() == ForColumns; |
| (...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3598 if (direction == ForRows) | 3598 if (direction == ForRows) |
| 3599 return grid.numTracks(ForRows); | 3599 return grid.numTracks(ForRows); |
| 3600 | 3600 |
| 3601 return grid.numTracks(ForRows) | 3601 return grid.numTracks(ForRows) |
| 3602 ? grid.numTracks(ForColumns) | 3602 ? grid.numTracks(ForColumns) |
| 3603 : GridPositionsResolver::explicitGridColumnCount( | 3603 : GridPositionsResolver::explicitGridColumnCount( |
| 3604 styleRef(), grid.autoRepeatTracks(ForColumns)); | 3604 styleRef(), grid.autoRepeatTracks(ForColumns)); |
| 3605 } | 3605 } |
| 3606 | 3606 |
| 3607 } // namespace blink | 3607 } // namespace blink |
| OLD | NEW |