Changeset 155496 in webkit for trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp
- Timestamp:
- Sep 10, 2013, 7:39:05 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/css/DeprecatedStyleBuilder.cpp
r155217 r155496 1413 1413 } 1414 1414 }; 1415 1416 #if ENABLE(IOS_TEXT_AUTOSIZING) 1417 // FIXME: Share more code with class ApplyPropertyLineHeight. 1418 class ApplyPropertyLineHeightForIOSTextAutosizing { 1419 public: 1420 static void applyValue(CSSPropertyID, StyleResolver* styleResolver, CSSValue* value) 1421 { 1422 if (!value->isPrimitiveValue()) 1423 return; 1424 1425 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value); 1426 Length lineHeight; 1427 1428 if (primitiveValue->getIdent() == CSSValueNormal) 1429 lineHeight = RenderStyle::initialLineHeight(); 1430 else if (primitiveValue->isLength()) { 1431 double multiplier = styleResolver->style()->effectiveZoom(); 1432 if (styleResolver->style()->textSizeAdjust().isNone()) { 1433 if (Frame* frame = styleResolver->document().frame()) 1434 multiplier *= frame->textZoomFactor(); 1435 } 1436 lineHeight = primitiveValue->computeLength<Length>(styleResolver->style(), styleResolver->rootElementStyle(), multiplier); 1437 if (styleResolver->style()->textSizeAdjust().isPercentage()) 1438 lineHeight = Length(lineHeight.value() * styleResolver->style()->textSizeAdjust().multiplier(), Fixed); 1439 } else if (primitiveValue->isPercentage()) { 1440 // FIXME: percentage should not be restricted to an integer here. 1441 lineHeight = Length((styleResolver->style()->fontSize() * primitiveValue->getIntValue()) / 100, Fixed); 1442 } else if (primitiveValue->isNumber()) { 1443 // FIXME: number and percentage values should produce the same type of Length (ie. Fixed or Percent). 1444 if (styleResolver->style()->textSizeAdjust().isPercentage()) 1445 lineHeight = Length(primitiveValue->getDoubleValue() * styleResolver->style()->textSizeAdjust().multiplier() * 100.0, Percent); 1446 else 1447 lineHeight = Length(primitiveValue->getDoubleValue() * 100.0, Percent); 1448 } else if (primitiveValue->isViewportPercentageLength()) 1449 lineHeight = primitiveValue->viewportPercentageLength(); 1450 else 1451 return; 1452 styleResolver->style()->setLineHeight(lineHeight); 1453 styleResolver->style()->setSpecifiedLineHeight(lineHeight); 1454 } 1455 1456 static void applyInitialValue(CSSPropertyID, StyleResolver* styleResolver) 1457 { 1458 styleResolver->style()->setLineHeight(RenderStyle::initialLineHeight()); 1459 styleResolver->style()->setSpecifiedLineHeight(RenderStyle::initialSpecifiedLineHeight()); 1460 } 1461 1462 static void applyInheritValue(CSSPropertyID, StyleResolver* styleResolver) 1463 { 1464 styleResolver->style()->setLineHeight(styleResolver->parentStyle()->lineHeight()); 1465 styleResolver->style()->setSpecifiedLineHeight(styleResolver->parentStyle()->specifiedLineHeight()); 1466 } 1467 1468 static PropertyHandler createHandler() 1469 { 1470 return PropertyHandler(&applyInheritValue, &applyInitialValue, &applyValue); 1471 } 1472 }; 1473 #endif 1415 1474 1416 1475 class ApplyPropertyPageSize { … … 2156 2215 setPropertyHandler(CSSPropertyLeft, ApplyPropertyLength<&RenderStyle::left, &RenderStyle::setLeft, &RenderStyle::initialOffset, AutoEnabled>::createHandler()); 2157 2216 setPropertyHandler(CSSPropertyLetterSpacing, ApplyPropertyComputeLength<int, &RenderStyle::letterSpacing, &RenderStyle::setLetterSpacing, &RenderStyle::initialLetterWordSpacing, NormalEnabled, ThicknessDisabled, SVGZoomEnabled>::createHandler()); 2217 #if ENABLE(IOS_TEXT_AUTOSIZING) 2218 setPropertyHandler(CSSPropertyLineHeight, ApplyPropertyLineHeightForIOSTextAutosizing::createHandler()); 2219 #else 2158 2220 setPropertyHandler(CSSPropertyLineHeight, ApplyPropertyLineHeight::createHandler()); 2221 #endif 2159 2222 setPropertyHandler(CSSPropertyListStyleImage, ApplyPropertyStyleImage<&RenderStyle::listStyleImage, &RenderStyle::setListStyleImage, &RenderStyle::initialListStyleImage, CSSPropertyListStyleImage>::createHandler()); 2160 2223 setPropertyHandler(CSSPropertyListStylePosition, ApplyPropertyDefault<EListStylePosition, &RenderStyle::listStylePosition, EListStylePosition, &RenderStyle::setListStylePosition, EListStylePosition, &RenderStyle::initialListStylePosition>::createHandler());
Note:
See TracChangeset
for help on using the changeset viewer.