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 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
583 } | 583 } |
584 | 584 |
585 accumulatedFractions += track.m_flex; | 585 accumulatedFractions += track.m_flex; |
586 // This item was processed so we re-add its used breadth to the availabl
e space to accurately count the remaining space. | 586 // This item was processed so we re-add its used breadth to the availabl
e space to accurately count the remaining space. |
587 availableLogicalSpaceIgnoringFractionTracks += track.m_track->baseSize()
; | 587 availableLogicalSpaceIgnoringFractionTracks += track.m_track->baseSize()
; |
588 } | 588 } |
589 | 589 |
590 return availableLogicalSpaceIgnoringFractionTracks / accumulatedFractions; | 590 return availableLogicalSpaceIgnoringFractionTracks / accumulatedFractions; |
591 } | 591 } |
592 | 592 |
| 593 bool RenderGrid::hasDefiniteLogicalSize(GridTrackSizingDirection direction) cons
t |
| 594 { |
| 595 return (direction == ForRows) ? hasDefiniteLogicalHeight() : hasDefiniteLogi
calWidth(); |
| 596 } |
| 597 |
593 GridTrackSize RenderGrid::gridTrackSize(GridTrackSizingDirection direction, size
_t i) const | 598 GridTrackSize RenderGrid::gridTrackSize(GridTrackSizingDirection direction, size
_t i) const |
594 { | 599 { |
595 bool isForColumns = direction == ForColumns; | 600 bool isForColumns = direction == ForColumns; |
596 const Vector<GridTrackSize>& trackStyles = isForColumns ? style()->gridTempl
ateColumns() : style()->gridTemplateRows(); | 601 const Vector<GridTrackSize>& trackStyles = isForColumns ? style()->gridTempl
ateColumns() : style()->gridTemplateRows(); |
597 const GridTrackSize& trackSize = (i >= trackStyles.size()) ? (isForColumns ?
style()->gridAutoColumns() : style()->gridAutoRows()) : trackStyles[i]; | 602 const GridTrackSize& trackSize = (i >= trackStyles.size()) ? (isForColumns ?
style()->gridAutoColumns() : style()->gridAutoRows()) : trackStyles[i]; |
598 | 603 |
599 // If the logical width/height of the grid container is indefinite, percenta
ge values are treated as <auto> (or in | 604 // If the logical width/height of the grid container is indefinite, percenta
ge values are treated as <auto> (or in |
600 // the case of minmax() as min-content for the first position and max-conten
t for the second). | 605 // the case of minmax() as min-content for the first position and max-conten
t for the second). |
601 Length logicalSize = isForColumns ? style()->logicalWidth() : style()->logic
alHeight(); | 606 if (!hasDefiniteLogicalSize(direction)) { |
602 // FIXME: isIntrinsicOrAuto() does not fulfil the 'indefinite size' descript
ion as it does not include <percentage> | |
603 // of indefinite sizes. This is a broather issue as Length does not have the
required context to support it. | |
604 if (logicalSize.isIntrinsicOrAuto()) { | |
605 const GridLength& oldMinTrackBreadth = trackSize.minTrackBreadth(); | 607 const GridLength& oldMinTrackBreadth = trackSize.minTrackBreadth(); |
606 const GridLength& oldMaxTrackBreadth = trackSize.maxTrackBreadth(); | 608 const GridLength& oldMaxTrackBreadth = trackSize.maxTrackBreadth(); |
607 return GridTrackSize(oldMinTrackBreadth.isPercentage() ? Length(MinConte
nt) : oldMinTrackBreadth, oldMaxTrackBreadth.isPercentage() ? Length(MaxContent)
: oldMaxTrackBreadth); | 609 return GridTrackSize(oldMinTrackBreadth.isPercentage() ? Length(MinConte
nt) : oldMinTrackBreadth, oldMaxTrackBreadth.isPercentage() ? Length(MaxContent)
: oldMaxTrackBreadth); |
608 } | 610 } |
609 | 611 |
610 return trackSize; | 612 return trackSize; |
611 } | 613 } |
612 | 614 |
613 LayoutUnit RenderGrid::logicalHeightForChild(RenderBox& child, Vector<GridTrack>
& columnTracks) | 615 LayoutUnit RenderGrid::logicalHeightForChild(RenderBox& child, Vector<GridTrack>
& columnTracks) |
614 { | 616 { |
(...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1730 if (isOutOfFlowPositioned()) | 1732 if (isOutOfFlowPositioned()) |
1731 return "RenderGrid (positioned)"; | 1733 return "RenderGrid (positioned)"; |
1732 if (isAnonymous()) | 1734 if (isAnonymous()) |
1733 return "RenderGrid (generated)"; | 1735 return "RenderGrid (generated)"; |
1734 if (isRelPositioned()) | 1736 if (isRelPositioned()) |
1735 return "RenderGrid (relative positioned)"; | 1737 return "RenderGrid (relative positioned)"; |
1736 return "RenderGrid"; | 1738 return "RenderGrid"; |
1737 } | 1739 } |
1738 | 1740 |
1739 } // namespace blink | 1741 } // namespace blink |
OLD | NEW |