| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/css/cssom/CSSSkew.h" | 5 #include "core/css/cssom/CSSSkew.h" |
| 6 | 6 |
| 7 #include "core/css/CSSFunctionValue.h" | 7 #include "core/css/CSSFunctionValue.h" |
| 8 #include "core/css/CSSPrimitiveValue.h" | 8 #include "core/css/CSSPrimitiveValue.h" |
| 9 #include "core/css/cssom/CSSAngleValue.h" | 9 #include "core/css/cssom/CSSNumericValue.h" |
| 10 #include "core/css/cssom/CSSUnitValue.h" |
| 10 | 11 |
| 11 namespace blink { | 12 namespace blink { |
| 12 | 13 |
| 13 CSSSkew* CSSSkew::FromCSSValue(const CSSFunctionValue& value) { | 14 CSSSkew* CSSSkew::FromCSSValue(const CSSFunctionValue& value) { |
| 14 const CSSPrimitiveValue& x_value = ToCSSPrimitiveValue(value.Item(0)); | 15 return nullptr; |
| 15 if (x_value.IsCalculated()) { | 16 // TODO(meade): Re-enable this code once numbers and units types have been |
| 16 // TODO(meade): Decide what we want to do with calc angles. | 17 // re-written to the new spec. |
| 17 return nullptr; | 18 // const CSSPrimitiveValue& x_value = ToCSSPrimitiveValue(value.Item(0)); |
| 18 } | 19 // if (x_value.IsCalculated()) { |
| 19 DCHECK(x_value.IsAngle()); | 20 // // TODO(meade): Decide what we want to do with calc angles. |
| 20 switch (value.FunctionType()) { | 21 // return nullptr; |
| 21 case CSSValueSkew: | 22 // } |
| 22 if (value.length() == 2U) { | 23 // DCHECK(x_value.IsAngle()); |
| 23 const CSSPrimitiveValue& y_value = ToCSSPrimitiveValue(value.Item(1)); | 24 // switch (value.FunctionType()) { |
| 24 if (y_value.IsCalculated()) { | 25 // case CSSValueSkew: |
| 25 // TODO(meade): Decide what we want to do with calc angles. | 26 // if (value.length() == 2U) { |
| 26 return nullptr; | 27 // const CSSPrimitiveValue& y_value = |
| 27 } | 28 // ToCSSPrimitiveValue(value.Item(1)); if (y_value.IsCalculated()) { |
| 28 DCHECK(y_value.IsAngle()); | 29 // // TODO(meade): Decide what we want to do with calc angles. |
| 29 return CSSSkew::Create(CSSAngleValue::FromCSSValue(x_value), | 30 // return nullptr; |
| 30 CSSAngleValue::FromCSSValue(y_value)); | 31 // } |
| 31 } | 32 // DCHECK(y_value.IsAngle()); |
| 32 // Else fall through; skew(ax) == skewX(ax). | 33 // return CSSSkew::Create(CSSNumericValue::FromCSSValue(x_value), |
| 33 case CSSValueSkewX: | 34 // CSSNumericValue::FromCSSValue(y_value)); |
| 34 DCHECK_EQ(value.length(), 1U); | 35 // } |
| 35 return CSSSkew::Create( | 36 // // Else fall through; skew(ax) == skewX(ax). |
| 36 CSSAngleValue::FromCSSValue(x_value), | 37 // case CSSValueSkewX: |
| 37 CSSAngleValue::Create(0, CSSPrimitiveValue::UnitType::kDegrees)); | 38 // DCHECK_EQ(value.length(), 1U); |
| 38 case CSSValueSkewY: | 39 // return CSSSkew::Create( |
| 39 DCHECK_EQ(value.length(), 1U); | 40 // CSSNumericValue::FromCSSValue(x_value), |
| 40 return CSSSkew::Create( | 41 // CSSUnitValue::Create(0, CSSPrimitiveValue::UnitType::kDegrees)); |
| 41 CSSAngleValue::Create(0, CSSPrimitiveValue::UnitType::kDegrees), | 42 // case CSSValueSkewY: |
| 42 CSSAngleValue::FromCSSValue(x_value)); | 43 // DCHECK_EQ(value.length(), 1U); |
| 43 default: | 44 // return CSSSkew::Create( |
| 44 NOTREACHED(); | 45 // CSSUnitValue::Create(0, CSSPrimitiveValue::UnitType::kDegrees), |
| 45 return nullptr; | 46 // CSSNumericValue::FromCSSValue(x_value)); |
| 46 } | 47 // default: |
| 48 // NOTREACHED(); |
| 49 // return nullptr; |
| 50 // } |
| 47 } | 51 } |
| 48 | 52 |
| 49 CSSFunctionValue* CSSSkew::ToCSSValue() const { | 53 CSSFunctionValue* CSSSkew::ToCSSValue() const { |
| 50 CSSFunctionValue* result = CSSFunctionValue::Create(CSSValueSkew); | 54 return nullptr; |
| 51 result->Append(*CSSPrimitiveValue::Create(ax_->Value(), ax_->Unit())); | 55 // TODO(meade): Re-implement this when we finish rewriting number/length |
| 52 result->Append(*CSSPrimitiveValue::Create(ay_->Value(), ay_->Unit())); | 56 // types. |
| 53 return result; | 57 // CSSFunctionValue* result = CSSFunctionValue::Create(CSSValueSkew); |
| 58 // result->Append(*CSSPrimitiveValue::Create(ax_->Value(), ax_->Unit())); |
| 59 // result->Append(*CSSPrimitiveValue::Create(ay_->Value(), ay_->Unit())); |
| 60 // return result; |
| 54 } | 61 } |
| 55 | 62 |
| 56 } // namespace blink | 63 } // namespace blink |
| OLD | NEW |