OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 switch (m_category) { | 186 switch (m_category) { |
187 case CalcLength: | 187 case CalcLength: |
188 value.pixels += | 188 value.pixels += |
189 m_value->computeLength<float>(conversionData) * multiplier; | 189 m_value->computeLength<float>(conversionData) * multiplier; |
190 break; | 190 break; |
191 case CalcPercent: | 191 case CalcPercent: |
192 ASSERT(m_value->isPercentage()); | 192 ASSERT(m_value->isPercentage()); |
193 value.percent += m_value->getDoubleValue() * multiplier; | 193 value.percent += m_value->getDoubleValue() * multiplier; |
194 break; | 194 break; |
195 case CalcNumber: | 195 case CalcNumber: |
196 // TODO(alancutter): Stop treating numbers like pixels unconditionally i
n calcs to be able to accomodate border-image-width | 196 // TODO(alancutter): Stop treating numbers like pixels unconditionally |
| 197 // in calcs to be able to accomodate border-image-width |
197 // https://drafts.csswg.org/css-backgrounds-3/#the-border-image-width | 198 // https://drafts.csswg.org/css-backgrounds-3/#the-border-image-width |
198 value.pixels += | 199 value.pixels += |
199 m_value->getDoubleValue() * conversionData.zoom() * multiplier; | 200 m_value->getDoubleValue() * conversionData.zoom() * multiplier; |
200 break; | 201 break; |
201 default: | 202 default: |
202 ASSERT_NOT_REACHED(); | 203 ASSERT_NOT_REACHED(); |
203 } | 204 } |
204 } | 205 } |
205 | 206 |
206 double doubleValue() const override { | 207 double doubleValue() const override { |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 private: | 261 private: |
261 CSSCalcPrimitiveValue(CSSPrimitiveValue* value, bool isInteger) | 262 CSSCalcPrimitiveValue(CSSPrimitiveValue* value, bool isInteger) |
262 : CSSCalcExpressionNode(unitCategory(value->typeWithCalcResolved()), | 263 : CSSCalcExpressionNode(unitCategory(value->typeWithCalcResolved()), |
263 isInteger), | 264 isInteger), |
264 m_value(value) {} | 265 m_value(value) {} |
265 | 266 |
266 Member<CSSPrimitiveValue> m_value; | 267 Member<CSSPrimitiveValue> m_value; |
267 }; | 268 }; |
268 | 269 |
269 static const CalculationCategory addSubtractResult[CalcOther][CalcOther] = { | 270 static const CalculationCategory addSubtractResult[CalcOther][CalcOther] = { |
270 // CalcNumber CalcLength
CalcPercent CalcPercentNumber CalcPercentLength
CalcAngle CalcTime CalcFrequency CalcLengthNumber CalcPercentLength
Number | |
271 /* CalcNumber */ {CalcNumber, CalcLengthNumber, CalcPercentNumber, | 271 /* CalcNumber */ {CalcNumber, CalcLengthNumber, CalcPercentNumber, |
272 CalcPercentNumber, CalcOther, CalcOther, CalcOther, | 272 CalcPercentNumber, CalcOther, CalcOther, CalcOther, |
273 CalcOther, CalcLengthNumber, CalcPercentLengthNumber}, | 273 CalcOther, CalcLengthNumber, CalcPercentLengthNumber}, |
274 /* CalcLength */ {CalcLengthNumber, CalcLength, CalcPercentLength, | 274 /* CalcLength */ {CalcLengthNumber, CalcLength, CalcPercentLength, |
275 CalcOther, CalcPercentLength, CalcOther, CalcOther, | 275 CalcOther, CalcPercentLength, CalcOther, CalcOther, |
276 CalcOther, CalcLengthNumber, CalcPercentLengthNumber}, | 276 CalcOther, CalcLengthNumber, CalcPercentLengthNumber}, |
277 /* CalcPercent */ {CalcPercentNumber, CalcPercentLength, CalcPercent, | 277 /* CalcPercent */ {CalcPercentNumber, CalcPercentLength, CalcPercent, |
278 CalcPercentNumber, CalcPercentLength, CalcOther, | 278 CalcPercentNumber, CalcPercentLength, CalcOther, |
279 CalcOther, CalcOther, CalcPercentLengthNumber, | 279 CalcOther, CalcOther, CalcPercentLengthNumber, |
280 CalcPercentLengthNumber}, | 280 CalcPercentLengthNumber}, |
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 | 812 |
813 return expression ? new CSSCalcValue(expression, range) : nullptr; | 813 return expression ? new CSSCalcValue(expression, range) : nullptr; |
814 } | 814 } |
815 | 815 |
816 CSSCalcValue* CSSCalcValue::create(CSSCalcExpressionNode* expression, | 816 CSSCalcValue* CSSCalcValue::create(CSSCalcExpressionNode* expression, |
817 ValueRange range) { | 817 ValueRange range) { |
818 return new CSSCalcValue(expression, range); | 818 return new CSSCalcValue(expression, range); |
819 } | 819 } |
820 | 820 |
821 } // namespace blink | 821 } // namespace blink |
OLD | NEW |