| 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 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 706 if (computeUsedBreadthOfMinLength(direction, minTrackBreadth) > tracks[i
].m_usedBreadth) | 706 if (computeUsedBreadthOfMinLength(direction, minTrackBreadth) > tracks[i
].m_usedBreadth) |
| 707 return false; | 707 return false; |
| 708 } | 708 } |
| 709 return true; | 709 return true; |
| 710 } | 710 } |
| 711 #endif | 711 #endif |
| 712 | 712 |
| 713 void RenderGrid::growGrid(GridTrackSizingDirection direction, size_t maximumPosi
tionIndex) | 713 void RenderGrid::growGrid(GridTrackSizingDirection direction, size_t maximumPosi
tionIndex) |
| 714 { | 714 { |
| 715 if (direction == ForColumns) { | 715 if (direction == ForColumns) { |
| 716 ASSERT(maximumPositionIndex >= m_grid[0].size()); | 716 ASSERT(maximumPositionIndex >= gridColumnCount()); |
| 717 for (size_t row = 0; row < m_grid.size(); ++row) | 717 for (size_t row = 0; row < gridRowCount(); ++row) |
| 718 m_grid[row].grow(maximumPositionIndex + 1); | 718 m_grid[row].grow(maximumPositionIndex + 1); |
| 719 } else { | 719 } else { |
| 720 ASSERT(maximumPositionIndex >= m_grid.size()); | 720 ASSERT(maximumPositionIndex >= gridRowCount()); |
| 721 const size_t oldRowSize = m_grid.size(); | 721 const size_t oldRowSize = gridRowCount(); |
| 722 m_grid.grow(maximumPositionIndex + 1); | 722 m_grid.grow(maximumPositionIndex + 1); |
| 723 for (size_t row = oldRowSize; row < m_grid.size(); ++row) | 723 for (size_t row = oldRowSize; row < gridRowCount(); ++row) |
| 724 m_grid[row].grow(m_grid[0].size()); | 724 m_grid[row].grow(gridColumnCount()); |
| 725 } | 725 } |
| 726 } | 726 } |
| 727 | 727 |
| 728 void RenderGrid::insertItemIntoGrid(RenderBox* child, const GridCoordinate& coor
dinate) | 728 void RenderGrid::insertItemIntoGrid(RenderBox* child, const GridCoordinate& coor
dinate) |
| 729 { | 729 { |
| 730 for (GridResolvedPosition row = coordinate.rows.resolvedInitialPosition; row
<= coordinate.rows.resolvedFinalPosition; ++row) { | 730 for (GridResolvedPosition row = coordinate.rows.resolvedInitialPosition; row
<= coordinate.rows.resolvedFinalPosition; ++row) { |
| 731 for (GridResolvedPosition column = coordinate.columns.resolvedInitialPos
ition; column <= coordinate.columns.resolvedFinalPosition; ++column) | 731 for (GridResolvedPosition column = coordinate.columns.resolvedInitialPos
ition; column <= coordinate.columns.resolvedFinalPosition; ++column) |
| 732 m_grid[row.toInt()][column.toInt()].append(child); | 732 m_grid[row.toInt()][column.toInt()].append(child); |
| 733 } | 733 } |
| 734 | 734 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 820 void RenderGrid::placeSpecifiedMajorAxisItemsOnGrid(const Vector<RenderBox*>& au
toGridItems) | 820 void RenderGrid::placeSpecifiedMajorAxisItemsOnGrid(const Vector<RenderBox*>& au
toGridItems) |
| 821 { | 821 { |
| 822 for (size_t i = 0; i < autoGridItems.size(); ++i) { | 822 for (size_t i = 0; i < autoGridItems.size(); ++i) { |
| 823 OwnPtr<GridSpan> majorAxisPositions = GridResolvedPosition::resolveGridP
ositionsFromStyle(*style(), *autoGridItems[i], autoPlacementMajorAxisDirection()
); | 823 OwnPtr<GridSpan> majorAxisPositions = GridResolvedPosition::resolveGridP
ositionsFromStyle(*style(), *autoGridItems[i], autoPlacementMajorAxisDirection()
); |
| 824 GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), majorAx
isPositions->resolvedInitialPosition.toInt()); | 824 GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), majorAx
isPositions->resolvedInitialPosition.toInt()); |
| 825 if (OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridArea())
{ | 825 if (OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridArea())
{ |
| 826 insertItemIntoGrid(autoGridItems[i], emptyGridArea->rows.resolvedIni
tialPosition, emptyGridArea->columns.resolvedInitialPosition); | 826 insertItemIntoGrid(autoGridItems[i], emptyGridArea->rows.resolvedIni
tialPosition, emptyGridArea->columns.resolvedInitialPosition); |
| 827 continue; | 827 continue; |
| 828 } | 828 } |
| 829 | 829 |
| 830 growGrid(autoPlacementMinorAxisDirection(), autoPlacementMinorAxisDirect
ion() == ForColumns ? m_grid[0].size() : m_grid.size()); | 830 growGrid(autoPlacementMinorAxisDirection(), autoPlacementMinorAxisDirect
ion() == ForColumns ? gridColumnCount() : gridRowCount()); |
| 831 OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridArea(); | 831 OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridArea(); |
| 832 ASSERT(emptyGridArea); | 832 ASSERT(emptyGridArea); |
| 833 insertItemIntoGrid(autoGridItems[i], emptyGridArea->rows.resolvedInitial
Position, emptyGridArea->columns.resolvedInitialPosition); | 833 insertItemIntoGrid(autoGridItems[i], emptyGridArea->rows.resolvedInitial
Position, emptyGridArea->columns.resolvedInitialPosition); |
| 834 } | 834 } |
| 835 } | 835 } |
| 836 | 836 |
| 837 void RenderGrid::placeAutoMajorAxisItemsOnGrid(const Vector<RenderBox*>& autoGri
dItems) | 837 void RenderGrid::placeAutoMajorAxisItemsOnGrid(const Vector<RenderBox*>& autoGri
dItems) |
| 838 { | 838 { |
| 839 for (size_t i = 0; i < autoGridItems.size(); ++i) | 839 for (size_t i = 0; i < autoGridItems.size(); ++i) |
| 840 placeAutoMajorAxisItemOnGrid(autoGridItems[i]); | 840 placeAutoMajorAxisItemOnGrid(autoGridItems[i]); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 857 for (size_t majorAxisIndex = 0; majorAxisIndex < endOfMajorAxis; ++major
AxisIndex) { | 857 for (size_t majorAxisIndex = 0; majorAxisIndex < endOfMajorAxis; ++major
AxisIndex) { |
| 858 GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), maj
orAxisIndex); | 858 GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), maj
orAxisIndex); |
| 859 if (OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridAre
a()) { | 859 if (OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridAre
a()) { |
| 860 insertItemIntoGrid(gridItem, emptyGridArea->rows.resolvedInitial
Position, emptyGridArea->columns.resolvedInitialPosition); | 860 insertItemIntoGrid(gridItem, emptyGridArea->rows.resolvedInitial
Position, emptyGridArea->columns.resolvedInitialPosition); |
| 861 return; | 861 return; |
| 862 } | 862 } |
| 863 } | 863 } |
| 864 } | 864 } |
| 865 | 865 |
| 866 // We didn't find an empty grid area so we need to create an extra major axi
s line and insert our gridItem in it. | 866 // We didn't find an empty grid area so we need to create an extra major axi
s line and insert our gridItem in it. |
| 867 const size_t columnIndex = (autoPlacementMajorAxisDirection() == ForColumns)
? m_grid[0].size() : minorAxisIndex; | 867 const size_t columnIndex = (autoPlacementMajorAxisDirection() == ForColumns)
? gridColumnCount() : minorAxisIndex; |
| 868 const size_t rowIndex = (autoPlacementMajorAxisDirection() == ForColumns) ?
minorAxisIndex : m_grid.size(); | 868 const size_t rowIndex = (autoPlacementMajorAxisDirection() == ForColumns) ?
minorAxisIndex : gridRowCount(); |
| 869 growGrid(autoPlacementMajorAxisDirection(), autoPlacementMajorAxisDirection(
) == ForColumns ? m_grid[0].size() : m_grid.size()); | 869 growGrid(autoPlacementMajorAxisDirection(), autoPlacementMajorAxisDirection(
) == ForColumns ? gridColumnCount() : gridRowCount()); |
| 870 insertItemIntoGrid(gridItem, rowIndex, columnIndex); | 870 insertItemIntoGrid(gridItem, rowIndex, columnIndex); |
| 871 } | 871 } |
| 872 | 872 |
| 873 GridTrackSizingDirection RenderGrid::autoPlacementMajorAxisDirection() const | 873 GridTrackSizingDirection RenderGrid::autoPlacementMajorAxisDirection() const |
| 874 { | 874 { |
| 875 GridAutoFlow flow = style()->gridAutoFlow(); | 875 GridAutoFlow flow = style()->gridAutoFlow(); |
| 876 ASSERT(flow != AutoFlowNone); | 876 ASSERT(flow != AutoFlowNone); |
| 877 return (flow == AutoFlowColumn) ? ForColumns : ForRows; | 877 return (flow == AutoFlowColumn) ? ForColumns : ForRows; |
| 878 } | 878 } |
| 879 | 879 |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1222 if (isOutOfFlowPositioned()) | 1222 if (isOutOfFlowPositioned()) |
| 1223 return "RenderGrid (positioned)"; | 1223 return "RenderGrid (positioned)"; |
| 1224 if (isAnonymous()) | 1224 if (isAnonymous()) |
| 1225 return "RenderGrid (generated)"; | 1225 return "RenderGrid (generated)"; |
| 1226 if (isRelPositioned()) | 1226 if (isRelPositioned()) |
| 1227 return "RenderGrid (relative positioned)"; | 1227 return "RenderGrid (relative positioned)"; |
| 1228 return "RenderGrid"; | 1228 return "RenderGrid"; |
| 1229 } | 1229 } |
| 1230 | 1230 |
| 1231 } // namespace WebCore | 1231 } // namespace WebCore |
| OLD | NEW |