Changeset 121289 in webkit for trunk/Source/WebCore/css/StyleBuilder.cpp
- Timestamp:
- Jun 26, 2012, 2:35:55 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/css/StyleBuilder.cpp
r121285 r121289 35 35 #include "Document.h" 36 36 #include "Element.h" 37 #include "NodeRenderStyle.h"38 37 #include "Pair.h" 39 38 #include "Rect.h" … … 214 213 setValue(styleResolver->style(), *primitiveValue); 215 214 else if (valueType == ComputeLength) 216 setValue(styleResolver->style(), primitiveValue->computeLength<T>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver-> parentStyle(), styleResolver->style()->effectiveZoom()));215 setValue(styleResolver->style(), primitiveValue->computeLength<T>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->style()->effectiveZoom())); 217 216 } 218 217 … … 224 223 static Length convertToLength(StyleResolver* styleResolver, CSSPrimitiveValue* value) 225 224 { 226 return value->convertToLength<FixedIntegerConversion | PercentConversion | FractionConversion | AutoConversion>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver-> parentStyle(), styleResolver->style()->effectiveZoom());225 return value->convertToLength<FixedIntegerConversion | PercentConversion | FractionConversion | AutoConversion>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->style()->effectiveZoom()); 227 226 } 228 227 public: … … 381 380 setValue(styleResolver->style(), Length()); 382 381 else if (primitiveValue->isLength()) { 383 Length length = primitiveValue->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver-> parentStyle(), styleResolver->style()->effectiveZoom());382 Length length = primitiveValue->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->style()->effectiveZoom()); 384 383 length.setQuirk(primitiveValue->isQuirkValue()); 385 384 setValue(styleResolver->style(), length); … … 387 386 setValue(styleResolver->style(), Length(primitiveValue->getDoubleValue(), Percent)); 388 387 else if (primitiveValue->isCalculatedPercentageWithLength()) 389 setValue(styleResolver->style(), Length(primitiveValue->cssCalcValue()->toCalcValue(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver-> parentStyle(), styleResolver->style()->effectiveZoom())));388 setValue(styleResolver->style(), Length(primitiveValue->cssCalcValue()->toCalcValue(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->style()->effectiveZoom()))); 390 389 else if (primitiveValue->isViewportPercentageLength()) 391 390 setValue(styleResolver->style(), primitiveValue->viewportPercentageLength()); … … 447 446 return; 448 447 } else 449 radiusWidth = pair->first()->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver-> parentStyle(), styleResolver->style()->effectiveZoom());448 radiusWidth = pair->first()->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->style()->effectiveZoom()); 450 449 if (pair->second()->isPercentage()) 451 450 radiusHeight = Length(pair->second()->getDoubleValue(), Percent); … … 457 456 return; 458 457 } else 459 radiusHeight = pair->second()->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver-> parentStyle(), styleResolver->style()->effectiveZoom());458 radiusHeight = pair->second()->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->style()->effectiveZoom()); 460 459 int width = radiusWidth.value(); 461 460 int height = radiusHeight.value(); … … 602 601 } else if (ident == CSSValueInvalid) { 603 602 float zoom = (svgZoomEnabled && styleResolver->useSVGZoomRules()) ? 1.0f : styleResolver->style()->effectiveZoom(); 604 length = primitiveValue->computeLength<T>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->parentStyle(),zoom);603 length = primitiveValue->computeLength<T>(styleResolver->style(), styleResolver->rootElementStyle(), zoom); 605 604 } else { 606 605 ASSERT_NOT_REACHED(); … … 740 739 fontDescription.setIsAbsoluteSize(parentIsAbsoluteSize 741 740 || !(primitiveValue->isPercentage() || primitiveValue->isFontRelativeLength())); 742 743 RenderStyle* gpStyle = 0;744 ContainerNode* parentNode = styleResolver->parentNode();745 if (parentNode) {746 ContainerNode* gpNode = parentNode->parentNodeForRenderingAndStyle();747 gpStyle = gpNode ? gpNode->renderStyle() : 0;748 }749 750 741 if (primitiveValue->isLength()) 751 size = primitiveValue->computeLength<float>(styleResolver->parentStyle(), styleResolver->rootElementStyle(), gpStyle,1.0, true);742 size = primitiveValue->computeLength<float>(styleResolver->parentStyle(), styleResolver->rootElementStyle(), 1.0, true); 752 743 else if (primitiveValue->isPercentage()) 753 744 size = (primitiveValue->getFloatValue() * parentSize) / 100.0f; 754 745 else if (primitiveValue->isCalculatedPercentageWithLength()) 755 size = primitiveValue->cssCalcValue()->toCalcValue(styleResolver->parentStyle(), styleResolver->rootElementStyle() , gpStyle)->evaluate(parentSize);746 size = primitiveValue->cssCalcValue()->toCalcValue(styleResolver->parentStyle(), styleResolver->rootElementStyle())->evaluate(parentSize); 756 747 else if (primitiveValue->isViewportPercentageLength()) 757 748 size = valueForLength(primitiveValue->viewportPercentageLength(), 0, styleResolver->document()->renderView()); … … 1210 1201 multiplier *= frame->textZoomFactor(); 1211 1202 } 1212 lineHeight = primitiveValue->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->parentStyle(),multiplier);1203 lineHeight = primitiveValue->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), multiplier); 1213 1204 } else if (primitiveValue->isPercentage()) { 1214 1205 // FIXME: percentage should not be restricted to an integer here. … … 1232 1223 class ApplyPropertyPageSize { 1233 1224 private: 1234 static Length mmLength(double mm) { return CSSPrimitiveValue::create(mm, CSSPrimitiveValue::CSS_MM)->computeLength<Length>(0, 0 , 0); }1235 static Length inchLength(double inch) { return CSSPrimitiveValue::create(inch, CSSPrimitiveValue::CSS_IN)->computeLength<Length>(0, 0 , 0); }1225 static Length mmLength(double mm) { return CSSPrimitiveValue::create(mm, CSSPrimitiveValue::CSS_MM)->computeLength<Length>(0, 0); } 1226 static Length inchLength(double inch) { return CSSPrimitiveValue::create(inch, CSSPrimitiveValue::CSS_IN)->computeLength<Length>(0, 0); } 1236 1227 static bool getPageSizeFromName(CSSPrimitiveValue* pageSizeName, CSSPrimitiveValue* pageOrientation, Length& width, Length& height) 1237 1228 { … … 1328 1319 if (!second->isLength()) 1329 1320 return; 1330 width = first->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle() , styleResolver->parentStyle());1331 height = second->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle() , styleResolver->parentStyle());1321 width = first->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle()); 1322 height = second->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle()); 1332 1323 } else { 1333 1324 // <page-size> <orientation> … … 1347 1338 // <length> 1348 1339 pageSizeType = PAGE_SIZE_RESOLVED; 1349 width = height = primitiveValue->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle() , styleResolver->parentStyle());1340 width = height = primitiveValue->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle()); 1350 1341 } else { 1351 1342 switch (primitiveValue->getIdent()) { … … 1581 1572 return styleResolver->style()->setVerticalAlign(*primitiveValue); 1582 1573 1583 styleResolver->style()->setVerticalAlignLength(primitiveValue->convertToLength<FixedIntegerConversion | PercentConversion | CalculatedConversion | ViewportPercentageConversion>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver-> parentStyle(), styleResolver->style()->effectiveZoom()));1574 styleResolver->style()->setVerticalAlignLength(primitiveValue->convertToLength<FixedIntegerConversion | PercentConversion | CalculatedConversion | ViewportPercentageConversion>(styleResolver->style(), styleResolver->rootElementStyle(), styleResolver->style()->effectiveZoom())); 1584 1575 } 1585 1576
Note:
See TracChangeset
for help on using the changeset viewer.