| OLD | NEW |
| 1 /* | 1 /* |
| 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv
ed. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv
ed. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 case UnitType::PropertyID: | 460 case UnitType::PropertyID: |
| 461 case UnitType::ValueID: | 461 case UnitType::ValueID: |
| 462 break; | 462 break; |
| 463 } | 463 } |
| 464 if (m_hasCachedCSSText) { | 464 if (m_hasCachedCSSText) { |
| 465 cssTextCache().remove(this); | 465 cssTextCache().remove(this); |
| 466 m_hasCachedCSSText = false; | 466 m_hasCachedCSSText = false; |
| 467 } | 467 } |
| 468 } | 468 } |
| 469 | 469 |
| 470 double CSSPrimitiveValue::computeSeconds() | 470 double CSSPrimitiveValue::computeSeconds() const |
| 471 { | 471 { |
| 472 ASSERT(isTime() || (isCalculated() && cssCalcValue()->category() == CalcTime
)); | 472 ASSERT(isTime() || (isCalculated() && cssCalcValue()->category() == CalcTime
)); |
| 473 UnitType currentType = isCalculated() ? cssCalcValue()->expressionNode()->ty
peWithCalcResolved() : type(); | 473 UnitType currentType = isCalculated() ? cssCalcValue()->expressionNode()->ty
peWithCalcResolved() : type(); |
| 474 if (currentType == UnitType::Seconds) | 474 if (currentType == UnitType::Seconds) |
| 475 return getDoubleValue(); | 475 return getDoubleValue(); |
| 476 if (currentType == UnitType::Milliseconds) | 476 if (currentType == UnitType::Milliseconds) |
| 477 return getDoubleValue() / 1000; | 477 return getDoubleValue() / 1000; |
| 478 ASSERT_NOT_REACHED(); | 478 ASSERT_NOT_REACHED(); |
| 479 return 0; | 479 return 0; |
| 480 } | 480 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 491 case UnitType::Gradians: | 491 case UnitType::Gradians: |
| 492 return grad2deg(getDoubleValue()); | 492 return grad2deg(getDoubleValue()); |
| 493 case UnitType::Turns: | 493 case UnitType::Turns: |
| 494 return turn2deg(getDoubleValue()); | 494 return turn2deg(getDoubleValue()); |
| 495 default: | 495 default: |
| 496 ASSERT_NOT_REACHED(); | 496 ASSERT_NOT_REACHED(); |
| 497 return 0; | 497 return 0; |
| 498 } | 498 } |
| 499 } | 499 } |
| 500 | 500 |
| 501 template<> int CSSPrimitiveValue::computeLength(const CSSToLengthConversionData&
conversionData) | 501 template<> int CSSPrimitiveValue::computeLength(const CSSToLengthConversionData&
conversionData) const |
| 502 { | 502 { |
| 503 return roundForImpreciseConversion<int>(computeLengthDouble(conversionData))
; | 503 return roundForImpreciseConversion<int>(computeLengthDouble(conversionData))
; |
| 504 } | 504 } |
| 505 | 505 |
| 506 template<> unsigned CSSPrimitiveValue::computeLength(const CSSToLengthConversion
Data& conversionData) | 506 template<> unsigned CSSPrimitiveValue::computeLength(const CSSToLengthConversion
Data& conversionData) const |
| 507 { | 507 { |
| 508 return roundForImpreciseConversion<unsigned>(computeLengthDouble(conversionD
ata)); | 508 return roundForImpreciseConversion<unsigned>(computeLengthDouble(conversionD
ata)); |
| 509 } | 509 } |
| 510 | 510 |
| 511 template<> Length CSSPrimitiveValue::computeLength(const CSSToLengthConversionDa
ta& conversionData) | 511 template<> Length CSSPrimitiveValue::computeLength(const CSSToLengthConversionDa
ta& conversionData) const |
| 512 { | 512 { |
| 513 return Length(clampToCSSLengthRange(computeLengthDouble(conversionData)), Fi
xed); | 513 return Length(clampToCSSLengthRange(computeLengthDouble(conversionData)), Fi
xed); |
| 514 } | 514 } |
| 515 | 515 |
| 516 template<> short CSSPrimitiveValue::computeLength(const CSSToLengthConversionDat
a& conversionData) | 516 template<> short CSSPrimitiveValue::computeLength(const CSSToLengthConversionDat
a& conversionData) const |
| 517 { | 517 { |
| 518 return roundForImpreciseConversion<short>(computeLengthDouble(conversionData
)); | 518 return roundForImpreciseConversion<short>(computeLengthDouble(conversionData
)); |
| 519 } | 519 } |
| 520 | 520 |
| 521 template<> unsigned short CSSPrimitiveValue::computeLength(const CSSToLengthConv
ersionData& conversionData) | 521 template<> unsigned short CSSPrimitiveValue::computeLength(const CSSToLengthConv
ersionData& conversionData) const |
| 522 { | 522 { |
| 523 return roundForImpreciseConversion<unsigned short>(computeLengthDouble(conve
rsionData)); | 523 return roundForImpreciseConversion<unsigned short>(computeLengthDouble(conve
rsionData)); |
| 524 } | 524 } |
| 525 | 525 |
| 526 template<> float CSSPrimitiveValue::computeLength(const CSSToLengthConversionDat
a& conversionData) | 526 template<> float CSSPrimitiveValue::computeLength(const CSSToLengthConversionDat
a& conversionData) const |
| 527 { | 527 { |
| 528 return static_cast<float>(computeLengthDouble(conversionData)); | 528 return static_cast<float>(computeLengthDouble(conversionData)); |
| 529 } | 529 } |
| 530 | 530 |
| 531 template<> double CSSPrimitiveValue::computeLength(const CSSToLengthConversionDa
ta& conversionData) | 531 template<> double CSSPrimitiveValue::computeLength(const CSSToLengthConversionDa
ta& conversionData) const |
| 532 { | 532 { |
| 533 return computeLengthDouble(conversionData); | 533 return computeLengthDouble(conversionData); |
| 534 } | 534 } |
| 535 | 535 |
| 536 double CSSPrimitiveValue::computeLengthDouble(const CSSToLengthConversionData& c
onversionData) | 536 double CSSPrimitiveValue::computeLengthDouble(const CSSToLengthConversionData& c
onversionData) const |
| 537 { | 537 { |
| 538 // The logic in this function is duplicated in MediaValues::computeLength | 538 // The logic in this function is duplicated in MediaValues::computeLength |
| 539 // because MediaValues::computeLength needs nearly identical logic, but we h
aven't found a way to make | 539 // because MediaValues::computeLength needs nearly identical logic, but we h
aven't found a way to make |
| 540 // CSSPrimitiveValue::computeLengthDouble more generic (to solve both cases)
without hurting performance. | 540 // CSSPrimitiveValue::computeLengthDouble more generic (to solve both cases)
without hurting performance. |
| 541 if (type() == UnitType::Calc) | 541 if (type() == UnitType::Calc) |
| 542 return m_value.calc->computeLengthPx(conversionData); | 542 return m_value.calc->computeLengthPx(conversionData); |
| 543 | 543 |
| 544 double factor; | 544 double factor; |
| 545 | 545 |
| 546 switch (type()) { | 546 switch (type()) { |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 case UnitType::Kilohertz: | 675 case UnitType::Kilohertz: |
| 676 factor = 1000; | 676 factor = 1000; |
| 677 break; | 677 break; |
| 678 default: | 678 default: |
| 679 break; | 679 break; |
| 680 } | 680 } |
| 681 | 681 |
| 682 return factor; | 682 return factor; |
| 683 } | 683 } |
| 684 | 684 |
| 685 Length CSSPrimitiveValue::convertToLength(const CSSToLengthConversionData& conve
rsionData) | 685 Length CSSPrimitiveValue::convertToLength(const CSSToLengthConversionData& conve
rsionData) const |
| 686 { | 686 { |
| 687 if (isLength()) | 687 if (isLength()) |
| 688 return computeLength<Length>(conversionData); | 688 return computeLength<Length>(conversionData); |
| 689 if (isPercentage()) | 689 if (isPercentage()) |
| 690 return Length(getDoubleValue(), Percent); | 690 return Length(getDoubleValue(), Percent); |
| 691 ASSERT(isCalculated()); | 691 ASSERT(isCalculated()); |
| 692 return Length(cssCalcValue()->toCalcValue(conversionData)); | 692 return Length(cssCalcValue()->toCalcValue(conversionData)); |
| 693 } | 693 } |
| 694 | 694 |
| 695 double CSSPrimitiveValue::getDoubleValue() const | 695 double CSSPrimitiveValue::getDoubleValue() const |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 visitor->trace(m_value.shape); | 1109 visitor->trace(m_value.shape); |
| 1110 break; | 1110 break; |
| 1111 default: | 1111 default: |
| 1112 break; | 1112 break; |
| 1113 } | 1113 } |
| 1114 #endif | 1114 #endif |
| 1115 CSSValue::traceAfterDispatch(visitor); | 1115 CSSValue::traceAfterDispatch(visitor); |
| 1116 } | 1116 } |
| 1117 | 1117 |
| 1118 } // namespace blink | 1118 } // namespace blink |
| OLD | NEW |