Changeset 136588 in webkit
- Timestamp:
- Dec 4, 2012, 4:25:44 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r136586 r136588 1 2012-12-04 Julien Chaffraix <jchaffraix@webkit.org> 2 3 [CSS Grid Layout] Implement CSS parsing and handling for <track-minmax> 4 https://bugs.webkit.org/show_bug.cgi?id=103799 5 6 Reviewed by Tony Chang. 7 8 * fast/css-grid-layout/grid-columns-rows-get-set-expected.txt: 9 * fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt: 10 * fast/css-grid-layout/grid-columns-rows-get-set-multiple.html: 11 * fast/css-grid-layout/grid-columns-rows-get-set.html: 12 * fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js: 13 * fast/css-grid-layout/resources/grid-columns-rows-get-set.js: 14 Extended the following tests to cover the new grammar. 15 1 16 2012-12-04 Florin Malita <fmalita@chromium.org> 2 17 -
trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt
r136440 r136588 17 17 PASS getComputedStyle(gridWithViewPortPercentageElement, '').getPropertyValue('-webkit-grid-columns') is '64px' 18 18 PASS getComputedStyle(gridWithViewPortPercentageElement, '').getPropertyValue('-webkit-grid-rows') is '60px' 19 PASS getComputedStyle(gridWithMinMax, '').getPropertyValue('-webkit-grid-columns') is 'minmax(10%, 15px)' 20 PASS getComputedStyle(gridWithMinMax, '').getPropertyValue('-webkit-grid-rows') is 'minmax(20px, 50%)' 21 19 22 Test getting wrong values for -webkit-grid-columns and -webkit-grid-rows through CSS (they should resolve to the default: 'none') 20 23 PASS getComputedStyle(gridWithFitContentElement, '').getPropertyValue('-webkit-grid-columns') is 'none' … … 36 39 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is '80px' 37 40 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is '150px' 41 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'minmax(55%, 45px)' 42 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'minmax(30px, 40%)' 43 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'minmax(220px, 48px)' 44 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'minmax(80px, 50px)' 45 46 Test setting grid-columns and grid-rows to bad minmax value through JS 47 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'none' 48 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'none' 49 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'none' 50 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'none' 51 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'none' 52 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'none' 53 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'none' 54 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'none' 38 55 39 56 Test setting grid-columns and grid-rows back to 'none' through JS -
trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt
r136432 r136588 19 19 PASS getComputedStyle(gridWithFitContentAndFitAvailable, '').getPropertyValue('-webkit-grid-columns') is 'none' 20 20 PASS getComputedStyle(gridWithFitContentAndFitAvailable, '').getPropertyValue('-webkit-grid-rows') is 'none' 21 PASS getComputedStyle(gridWithMinMaxAndFixed, '').getPropertyValue('-webkit-grid-columns') is 'minmax(45px, 30%) 15px' 22 PASS getComputedStyle(gridWithMinMaxAndFixed, '').getPropertyValue('-webkit-grid-rows') is '120px minmax(35%, 10px)' 21 23 22 24 Test the initial value … … 33 35 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'auto 160px 22px' 34 36 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is '56% 100px auto' 37 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is '160px minmax(16px, 20px)' 38 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'minmax(10%, 15%) auto' 35 39 36 40 Test getting wrong values set from CSS … … 55 59 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'none' 56 60 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'none' 61 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns') is 'none' 62 PASS getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows') is 'none' 57 63 PASS successfullyParsed is true 58 64 -
trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html
r136432 r136588 55 55 -webkit-grid-rows: -webkit-fitcontent -webkit-fit-available; 56 56 } 57 .gridWithMinMaxAndFixed { 58 display: -webkit-grid; 59 -webkit-grid-columns: minmax(45px, 30%) 15px; 60 -webkit-grid-rows: 12em minmax(35%, 10px); 61 font: 10px Ahem; 62 } 57 63 </style> 58 64 <script src="../js/resources/js-test-pre.js"></script> … … 68 74 <div class="gridWithPercentAndViewportPercent" id="gridWithPercentAndViewportPercent"></div> 69 75 <div class="gridWithFitContentAndFitAvailable" id="gridWithFitContentAndFitAvailable"></div> 76 <div class="gridWithMinMaxAndFixed" id="gridWithMinMaxAndFixed"></div> 70 77 <script src="resources/grid-columns-rows-get-set-multiple.js"></script> 71 78 <script src="../js/resources/js-test-post.js"></script> -
trunk/LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set.html
r136432 r136588 43 43 -webkit-grid-rows: -webkit-fit-available; 44 44 } 45 .gridWithMinMax { 46 -webkit-grid-columns: minmax(10%, 15px); 47 -webkit-grid-rows: minmax(20px, 50%); 48 } 45 49 </style> 46 50 <script src="../js/resources/js-test-pre.js"></script> … … 55 59 <div class="grid gridWithFitContent" id="gridWithFitContentElement"></div> 56 60 <div class="grid gridWithFitAvailable" id="gridWithFitAvailableElement"></div> 61 <div class="grid gridWithMinMax" id="gridWithMinMax"></div> 57 62 <script src="resources/grid-columns-rows-get-set.js"></script> 58 63 <script src="../js/resources/js-test-post.js"></script> -
trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js
r136432 r136588 29 29 shouldBe("getComputedStyle(gridWithFitContentAndFitAvailable, '').getPropertyValue('-webkit-grid-columns')", "'none'"); 30 30 shouldBe("getComputedStyle(gridWithFitContentAndFitAvailable, '').getPropertyValue('-webkit-grid-rows')", "'none'"); 31 32 var gridWithMinMaxAndFixed = document.getElementById("gridWithMinMaxAndFixed"); 33 shouldBe("getComputedStyle(gridWithMinMaxAndFixed, '').getPropertyValue('-webkit-grid-columns')", "'minmax(45px, 30%) 15px'"); 34 shouldBe("getComputedStyle(gridWithMinMaxAndFixed, '').getPropertyValue('-webkit-grid-rows')", "'120px minmax(35%, 10px)'"); 31 35 32 36 debug(""); … … 65 69 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'auto 160px 22px'"); 66 70 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'56% 100px auto'"); 71 72 element = document.createElement("div"); 73 document.body.appendChild(element); 74 element.style.font = "10px Ahem"; 75 element.style.webkitGridColumns = "16em minmax(16px, 20px)"; 76 element.style.webkitGridRows = "minmax(10%, 15%) auto"; 77 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'160px minmax(16px, 20px)'"); 78 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'minmax(10%, 15%) auto'"); 67 79 68 80 debug(""); … … 126 138 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'none'"); 127 139 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'none'"); 140 141 element = document.createElement("div"); 142 document.body.appendChild(element); 143 element.style.webkitGridColumns = "auto minmax(16px, auto)"; 144 element.style.webkitGridRows = "minmax(auto, 15%) 10vw"; 145 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'none'"); 146 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'none'"); -
trunk/LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js
r136440 r136588 26 26 shouldBe("getComputedStyle(gridWithViewPortPercentageElement, '').getPropertyValue('-webkit-grid-rows')", "'60px'"); 27 27 28 var gridWithMinMax = document.getElementById("gridWithMinMax"); 29 shouldBe("getComputedStyle(gridWithMinMax, '').getPropertyValue('-webkit-grid-columns')", "'minmax(10%, 15px)'"); 30 shouldBe("getComputedStyle(gridWithMinMax, '').getPropertyValue('-webkit-grid-rows')", "'minmax(20px, 50%)'"); 31 32 debug(""); 28 33 debug("Test getting wrong values for -webkit-grid-columns and -webkit-grid-rows through CSS (they should resolve to the default: 'none')"); 29 34 var gridWithFitContentElement = document.getElementById("gridWithFitContentElement"); … … 70 75 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'150px'"); 71 76 77 element = document.createElement("div"); 78 document.body.appendChild(element); 79 element.style.webkitGridColumns = "minmax(55%, 45px)"; 80 element.style.webkitGridRows = "minmax(30px, 40%)"; 81 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'minmax(55%, 45px)'"); 82 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'minmax(30px, 40%)'"); 83 84 element = document.createElement("div"); 85 document.body.appendChild(element); 86 element.style.font = "10px Ahem"; 87 element.style.webkitGridColumns = "minmax(22em, 8vh)"; 88 element.style.webkitGridRows = "minmax(10vw, 5em)"; 89 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'minmax(220px, 48px)'"); 90 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'minmax(80px, 50px)'"); 91 92 debug(""); 93 debug("Test setting grid-columns and grid-rows to bad minmax value through JS"); 94 element = document.createElement("div"); 95 document.body.appendChild(element); 96 // No comma. 97 element.style.webkitGridColumns = "minmax(10px 20px)"; 98 // Only 1 argument provided. 99 element.style.webkitGridRows = "minmax(10px)"; 100 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'none'"); 101 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'none'"); 102 103 element = document.createElement("div"); 104 document.body.appendChild(element); 105 // Nested minmax. 106 element.style.webkitGridColumns = "minmax(minmax(10px, 20px), 20px)"; 107 // Only 2 arguments are allowed. 108 element.style.webkitGridRows = "minmax(10px, 20px, 30px)"; 109 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'none'"); 110 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'none'"); 111 112 element = document.createElement("div"); 113 document.body.appendChild(element); 114 // No breadth value. 115 element.style.webkitGridColumns = "minmax()"; 116 // No comma. 117 element.style.webkitGridRows = "minmax(30px 30% 30em)"; 118 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'none'"); 119 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'none'"); 120 121 element = document.createElement("div"); 122 document.body.appendChild(element); 123 // Auto is not allowed inside minmax. 124 element.style.webkitGridColumns = "minmax(auto, 8vh)"; 125 element.style.webkitGridRows = "minmax(10vw, auto)"; 126 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-columns')", "'none'"); 127 shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-rows')", "'none'"); 128 72 129 debug(""); 73 130 debug("Test setting grid-columns and grid-rows back to 'none' through JS"); -
trunk/Source/WebCore/ChangeLog
r136584 r136588 1 2012-12-04 Julien Chaffraix <jchaffraix@webkit.org> 2 3 [CSS Grid Layout] Implement CSS parsing and handling for <track-minmax> 4 https://bugs.webkit.org/show_bug.cgi?id=103799 5 6 Reviewed by Tony Chang. 7 8 This change adds support for: 9 <track-minmax> => minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth> 10 (note that we already supported auto | <track-breadth>). 11 12 The change is mostly mechanical, the only newness is that GridTrackSize was updated to 13 hold 2 Lengths internally and we map the single Length case to 2 by duplicating the value 14 as this matches the rendering algorithm in the spec. 15 16 Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html 17 fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js 18 19 * css/CSSComputedStyleDeclaration.cpp: 20 (WebCore::valueForGridTrackBreadth): 21 Changed the function to do the conversion of one track breadth (one Length). 22 This was forgotten in the preparatory change in bug 103703. 23 24 (WebCore::valueForGridTrackMinMax): 25 Convert the value back using valueForGridTrackBreadth. 26 27 * css/CSSFunctionValue.cpp: 28 (WebCore::CSSFunctionValue::CSSFunctionValue): 29 * css/CSSFunctionValue.h: 30 (WebCore::CSSFunctionValue::create): 31 (CSSFunctionValue): 32 Added a new constructor. This enables us to return minmax(..., ...) when queried 33 from JavaScript. I couldn't find a better way to serialize inside CSSComputedStyleDeclaration 34 so that it properly match the function output. 35 36 * css/CSSParser.cpp: 37 (WebCore::CSSParser::parseGridTrackMinMax): 38 Added parsing for the new syntax. We convert the 2 values into a Pair if we manage to 39 parse both values correctly. 40 41 * css/StyleResolver.cpp: 42 (WebCore::createGridTrackMinMax): 43 Updated to handle a Pair - for minmax - and set the 2 values on GridTrackSize. 44 45 * rendering/RenderGrid.cpp: 46 (WebCore::RenderGrid::computedUsedBreadthOfGridTracks): 47 Updated to check the style. For now, we don't handle minmax values. 48 49 * rendering/style/GridTrackSize.h: 50 (WebCore::GridTrackSize::GridTrackSize): 51 (WebCore::GridTrackSize::length): 52 (WebCore::GridTrackSize::setLength): 53 (WebCore::GridTrackSize::minTrackBreadth): 54 (WebCore::GridTrackSize::maxTrackBreadth): 55 (WebCore::GridTrackSize::setMinMax): 56 (WebCore::GridTrackSize::operator==): 57 Updated the class to handle minmax values. This means that we now always store 58 2 values (the <length> case being a subset of minmax, however we kept the distinction 59 to be able to reconstruct a <length> for getComputedStyle). 60 1 61 2012-12-04 Elliott Sprehn <esprehn@chromium.org> 2 62 -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r136432 r136588 31 31 #include "CSSBasicShapes.h" 32 32 #include "CSSBorderImage.h" 33 #include "CSSFunctionValue.h" 33 34 #include "CSSLineBoxContainValue.h" 34 35 #include "CSSParser.h" … … 1000 1001 #endif 1001 1002 1002 static PassRefPtr<CSSValue> valueForGridTrackBreadth(const GridTrackSize& trackSize, const RenderStyle* style, RenderView *renderView)1003 { 1004 if (track Size.length().isAuto())1003 static PassRefPtr<CSSValue> valueForGridTrackBreadth(const Length& trackBreadth, const RenderStyle* style, RenderView *renderView) 1004 { 1005 if (trackBreadth.isAuto()) 1005 1006 return cssValuePool().createIdentifierValue(CSSValueAuto); 1006 if (track Size.length().isViewportPercentage())1007 return zoomAdjustedPixelValue(valueForLength(track Size.length(), 0, renderView), style);1008 return zoomAdjustedPixelValueForLength(track Size.length(), style);1007 if (trackBreadth.isViewportPercentage()) 1008 return zoomAdjustedPixelValue(valueForLength(trackBreadth, 0, renderView), style); 1009 return zoomAdjustedPixelValueForLength(trackBreadth, style); 1009 1010 } 1010 1011 1011 1012 static PassRefPtr<CSSValue> valueForGridTrackMinMax(const GridTrackSize& trackSize, const RenderStyle* style, RenderView* renderView) 1012 1013 { 1013 return valueForGridTrackBreadth(trackSize, style, renderView); 1014 switch (trackSize.type()) { 1015 case LengthTrackSizing: 1016 return valueForGridTrackBreadth(trackSize.length(), style, renderView); 1017 case MinMaxTrackSizing: 1018 RefPtr<CSSValueList> minMaxTrackBreadths = CSSValueList::createCommaSeparated(); 1019 minMaxTrackBreadths->append(valueForGridTrackBreadth(trackSize.minTrackBreadth(), style, renderView)); 1020 minMaxTrackBreadths->append(valueForGridTrackBreadth(trackSize.maxTrackBreadth(), style, renderView)); 1021 return CSSFunctionValue::create("minmax(", minMaxTrackBreadths); 1022 } 1023 ASSERT_NOT_REACHED(); 1024 return 0; 1014 1025 } 1015 1026 -
trunk/Source/WebCore/css/CSSFunctionValue.cpp
r128762 r136588 43 43 } 44 44 45 CSSFunctionValue::CSSFunctionValue(String name, PassRefPtr<CSSValueList> args) 46 : CSSValue(FunctionClass) 47 , m_name(name) 48 , m_args(args) 49 { 50 } 51 45 52 String CSSFunctionValue::customCssText() const 46 53 { -
trunk/Source/WebCore/css/CSSFunctionValue.h
r124768 r136588 41 41 } 42 42 43 static PassRefPtr<CSSFunctionValue> create(String name, PassRefPtr<CSSValueList> args) 44 { 45 return adoptRef(new CSSFunctionValue(name, args)); 46 } 47 43 48 String customCssText() const; 44 49 … … 47 52 private: 48 53 explicit CSSFunctionValue(CSSParserFunction*); 54 CSSFunctionValue(String, PassRefPtr<CSSValueList>); 49 55 50 56 String m_name; -
trunk/Source/WebCore/css/CSSParser.cpp
r136540 r136588 4538 4538 CSSParserValue* currentValue = m_valueList->current(); 4539 4539 if (currentValue->id == CSSValueAuto) { 4540 RefPtr<CSSPrimitiveValue> autoValue = cssValuePool().createIdentifierValue(CSSValueAuto); 4541 values->append(autoValue.release()); 4540 values->append(cssValuePool().createIdentifierValue(CSSValueAuto)); 4541 return true; 4542 } 4543 4544 if (currentValue->unit == CSSParserValue::Function && equalIgnoringCase(currentValue->function->name, "minmax(")) { 4545 // The spec defines the following grammar: minmax( <track-breadth> , <track-breadth> ) 4546 CSSParserValueList* arguments = currentValue->function->args.get(); 4547 if (!arguments || arguments->size() != 3 || !isComma(arguments->valueAt(1))) 4548 return false; 4549 4550 RefPtr<CSSPrimitiveValue> minTrackBreadth = parseGridBreadth(arguments->valueAt(0)); 4551 if (!minTrackBreadth) 4552 return false; 4553 4554 RefPtr<CSSPrimitiveValue> maxTrackBreadth = parseGridBreadth(arguments->valueAt(2)); 4555 if (!maxTrackBreadth) 4556 return false; 4557 4558 values->append(createPrimitiveValuePair(minTrackBreadth, maxTrackBreadth)); 4542 4559 return true; 4543 4560 } -
trunk/Source/WebCore/css/StyleResolver.cpp
r136449 r136588 2689 2689 static bool createGridTrackMinMax(CSSPrimitiveValue* primitiveValue, StyleResolver* selector, GridTrackSize& trackSize) 2690 2690 { 2691 Length workingLength; 2692 if (!createGridTrackBreadth(primitiveValue, selector, workingLength)) 2693 return false; 2694 2695 trackSize.setLength(workingLength); 2691 Pair* minMaxTrackBreadth = primitiveValue->getPairValue(); 2692 if (!minMaxTrackBreadth) { 2693 Length workingLength; 2694 if (!createGridTrackBreadth(primitiveValue, selector, workingLength)) 2695 return false; 2696 2697 trackSize.setLength(workingLength); 2698 return true; 2699 } 2700 2701 Length minTrackBreadth; 2702 Length maxTrackBreadth; 2703 if (!createGridTrackBreadth(minMaxTrackBreadth->first(), selector, minTrackBreadth) || !createGridTrackBreadth(minMaxTrackBreadth->second(), selector, maxTrackBreadth)) 2704 return false; 2705 2706 trackSize.setMinMax(minTrackBreadth, maxTrackBreadth); 2696 2707 return true; 2697 2708 } -
trunk/Source/WebCore/rendering/RenderGrid.cpp
r136432 r136588 142 142 for (size_t i = 0; i < trackStyles.size(); ++i) { 143 143 GridTrack track; 144 Length trackLength = trackStyles[i].length(); 145 // FIXME: we stil need to support calc() here (bug 103761) 146 if (trackLength.isFixed() || trackLength.isPercent() || trackLength.isViewportPercentage()) 147 track.m_usedBreadth = valueForLength(trackLength, direction == ForColumns ? logicalWidth() : computeContentLogicalHeight(MainOrPreferredSize, style()->logicalHeight()), view()); 148 else 144 switch (trackStyles[i].type()) { 145 case LengthTrackSizing: { 146 Length trackLength = trackStyles[i].length(); 147 // FIXME: We stil need to support calc() here (bug 103761). 148 if (trackLength.isFixed() || trackLength.isPercent() || trackLength.isViewportPercentage()) 149 track.m_usedBreadth = valueForLength(trackLength, direction == ForColumns ? logicalWidth() : computeContentLogicalHeight(MainOrPreferredSize, style()->logicalHeight()), view()); 150 else 151 notImplemented(); 152 153 break; 154 } 155 case MinMaxTrackSizing: 156 // FIXME: Implement support for minmax track sizing (bug 103311). 149 157 notImplemented(); 150 158 } 151 159 tracks.append(track); 152 160 } -
trunk/Source/WebCore/rendering/style/GridTrackSize.h
r136150 r136588 37 37 38 38 enum GridTrackSizeType { 39 LengthTrackSizing 39 LengthTrackSizing, 40 MinMaxTrackSizing 40 41 }; 41 42 … … 44 45 GridTrackSize() 45 46 : m_type(LengthTrackSizing) 46 , m_length(Undefined) 47 , m_minTrackBreadth(Undefined) 48 , m_maxTrackBreadth(Undefined) 47 49 { 48 50 } … … 51 53 { 52 54 ASSERT(m_type == LengthTrackSizing); 53 ASSERT(!m_length.isUndefined()); 54 return m_length; 55 ASSERT(!m_minTrackBreadth.isUndefined()); 56 ASSERT(m_minTrackBreadth == m_maxTrackBreadth); 57 return m_minTrackBreadth; 55 58 } 56 59 … … 58 61 { 59 62 m_type = LengthTrackSizing; 60 m_length = length; 63 m_minTrackBreadth = length; 64 m_maxTrackBreadth = length; 65 } 66 67 const Length& minTrackBreadth() const 68 { 69 ASSERT(m_type == MinMaxTrackSizing); 70 ASSERT(!m_minTrackBreadth.isUndefined()); 71 return m_minTrackBreadth; 72 } 73 74 const Length& maxTrackBreadth() const 75 { 76 ASSERT(m_type == MinMaxTrackSizing); 77 ASSERT(!m_maxTrackBreadth.isUndefined()); 78 return m_maxTrackBreadth; 79 } 80 81 void setMinMax(const Length& minTrackBreadth, const Length& maxTrackBreadth) 82 { 83 m_type = MinMaxTrackSizing; 84 m_minTrackBreadth = minTrackBreadth; 85 m_maxTrackBreadth = maxTrackBreadth; 61 86 } 62 87 … … 65 90 bool operator==(const GridTrackSize& other) const 66 91 { 67 return m_type == other.m_type && m_ length == other.m_length;92 return m_type == other.m_type && m_minTrackBreadth == other.m_minTrackBreadth && m_maxTrackBreadth == m_maxTrackBreadth; 68 93 } 69 94 70 95 private: 71 96 GridTrackSizeType m_type; 72 Length m_length; 97 Length m_minTrackBreadth; 98 Length m_maxTrackBreadth; 73 99 }; 74 100
Note:
See TracChangeset
for help on using the changeset viewer.