OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "GridPositionsResolver.h" | 5 #include "GridPositionsResolver.h" |
6 | 6 |
7 #include "core/layout/LayoutBox.h" | 7 #include "core/layout/LayoutBox.h" |
8 #include "core/style/GridArea.h" | 8 #include "core/style/GridArea.h" |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 } else { | 200 } else { |
201 start = oppositeLine; | 201 start = oppositeLine; |
202 end = lookAheadForNamedGridLine(oppositeLine + 1, position.spanPosition(
), lastLine, linesCollection); | 202 end = lookAheadForNamedGridLine(oppositeLine + 1, position.spanPosition(
), lastLine, linesCollection); |
203 } | 203 } |
204 | 204 |
205 return GridSpan::untranslatedDefiniteGridSpan(start, end); | 205 return GridSpan::untranslatedDefiniteGridSpan(start, end); |
206 } | 206 } |
207 | 207 |
208 size_t GridPositionsResolver::explicitGridColumnCount(const ComputedStyle& gridC
ontainerStyle, size_t autoRepeatTracksCount) | 208 size_t GridPositionsResolver::explicitGridColumnCount(const ComputedStyle& gridC
ontainerStyle, size_t autoRepeatTracksCount) |
209 { | 209 { |
210 return std::min<size_t>(gridContainerStyle.gridTemplateColumns().size() + au
toRepeatTracksCount, kGridMaxTracks); | 210 return std::min<size_t>(std::max(gridContainerStyle.gridTemplateColumns().si
ze() + autoRepeatTracksCount, gridContainerStyle.namedGridAreaColumnCount()), kG
ridMaxTracks); |
211 } | 211 } |
212 | 212 |
213 size_t GridPositionsResolver::explicitGridRowCount(const ComputedStyle& gridCont
ainerStyle, size_t autoRepeatTracksCount) | 213 size_t GridPositionsResolver::explicitGridRowCount(const ComputedStyle& gridCont
ainerStyle, size_t autoRepeatTracksCount) |
214 { | 214 { |
215 return std::min<size_t>(gridContainerStyle.gridTemplateRows().size() + autoR
epeatTracksCount, kGridMaxTracks); | 215 return std::min<size_t>(std::max(gridContainerStyle.gridTemplateRows().size(
) + autoRepeatTracksCount, gridContainerStyle.namedGridAreaRowCount()), kGridMax
Tracks); |
216 } | 216 } |
217 | 217 |
218 static size_t explicitGridSizeForSide(const ComputedStyle& gridContainerStyle, G
ridPositionSide side, size_t autoRepeatTracksCount) | 218 static size_t explicitGridSizeForSide(const ComputedStyle& gridContainerStyle, G
ridPositionSide side, size_t autoRepeatTracksCount) |
219 { | 219 { |
220 return (side == ColumnStartSide || side == ColumnEndSide) ? GridPositionsRes
olver::explicitGridColumnCount(gridContainerStyle, autoRepeatTracksCount) : Grid
PositionsResolver::explicitGridRowCount(gridContainerStyle, autoRepeatTracksCoun
t); | 220 return (side == ColumnStartSide || side == ColumnEndSide) ? GridPositionsRes
olver::explicitGridColumnCount(gridContainerStyle, autoRepeatTracksCount) : Grid
PositionsResolver::explicitGridRowCount(gridContainerStyle, autoRepeatTracksCoun
t); |
221 } | 221 } |
222 | 222 |
223 static GridSpan resolveNamedGridLinePositionAgainstOppositePosition(const Comput
edStyle& gridContainerStyle, int oppositeLine, const GridPosition& position, siz
e_t autoRepeatTracksCount, GridPositionSide side) | 223 static GridSpan resolveNamedGridLinePositionAgainstOppositePosition(const Comput
edStyle& gridContainerStyle, int oppositeLine, const GridPosition& position, siz
e_t autoRepeatTracksCount, GridPositionSide side) |
224 { | 224 { |
225 ASSERT(position.isSpan()); | 225 ASSERT(position.isSpan()); |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 | 371 |
372 if (endLine < startLine) | 372 if (endLine < startLine) |
373 std::swap(endLine, startLine); | 373 std::swap(endLine, startLine); |
374 else if (endLine == startLine) | 374 else if (endLine == startLine) |
375 endLine = startLine + 1; | 375 endLine = startLine + 1; |
376 | 376 |
377 return GridSpan::untranslatedDefiniteGridSpan(startLine, endLine); | 377 return GridSpan::untranslatedDefiniteGridSpan(startLine, endLine); |
378 } | 378 } |
379 | 379 |
380 } // namespace blink | 380 } // namespace blink |
OLD | NEW |