| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * * Redistributions of source code must retain the above copyright | 4 * * Redistributions of source code must retain the above copyright |
| 5 * notice, this list of conditions and the following disclaimer. | 5 * notice, this list of conditions and the following disclaimer. |
| 6 * * Redistributions in binary form must reproduce the above | 6 * * Redistributions in binary form must reproduce the above |
| 7 * copyright notice, this list of conditions and the following disclaimer | 7 * copyright notice, this list of conditions and the following disclaimer |
| 8 * in the documentation and/or other materials provided with the | 8 * in the documentation and/or other materials provided with the |
| 9 * distribution. | 9 * distribution. |
| 10 * * Neither the name of Google Inc. nor the names of its | 10 * * Neither the name of Google Inc. nor the names of its |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 | 97 |
| 98 if (angle <= 45.0f || angle > 315.0f) | 98 if (angle <= 45.0f || angle > 315.0f) |
| 99 return GO_0DEG; | 99 return GO_0DEG; |
| 100 if (angle > 45.0f && angle <= 135.0f) | 100 if (angle > 45.0f && angle <= 135.0f) |
| 101 return GO_90DEG; | 101 return GO_90DEG; |
| 102 if (angle > 135.0f && angle <= 225.0f) | 102 if (angle > 135.0f && angle <= 225.0f) |
| 103 return GO_180DEG; | 103 return GO_180DEG; |
| 104 return GO_270DEG; | 104 return GO_270DEG; |
| 105 } | 105 } |
| 106 | 106 |
| 107 | |
| 108 GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSS
Value* value) | 107 GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSS
Value* value) |
| 109 { | 108 { |
| 110 // We accept the specification's grammar: | 109 // We accept the specification's grammar: |
| 111 // 'auto' | [ <integer> || <string> ] | [ span && [ <integer> || string ] ]
| <ident> | 110 // 'auto' | [ <integer> || <string> ] | [ span && [ <integer> || string ] ]
| <ident> |
| 112 | 111 |
| 113 GridPosition position; | 112 GridPosition position; |
| 114 | 113 |
| 115 if (value->isPrimitiveValue()) { | 114 if (value->isPrimitiveValue()) { |
| 116 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 115 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
| 117 // We translate <ident> to <string> during parsing as it | 116 // We translate <ident> to <string> during parsing as it |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 ++currentNamedGridLine; | 202 ++currentNamedGridLine; |
| 204 trackSizes.append(convertGridTrackSize(state, currValue)); | 203 trackSizes.append(convertGridTrackSize(state, currValue)); |
| 205 } | 204 } |
| 206 | 205 |
| 207 // The parser should have rejected any <track-list> without any <track-size>
as | 206 // The parser should have rejected any <track-list> without any <track-size>
as |
| 208 // this is not conformant to the syntax. | 207 // this is not conformant to the syntax. |
| 209 ASSERT(!trackSizes.isEmpty()); | 208 ASSERT(!trackSizes.isEmpty()); |
| 210 return true; | 209 return true; |
| 211 } | 210 } |
| 212 | 211 |
| 212 void StyleBuilderConverter::createImplicitNamedGridLinesFromGridArea(const Named
GridAreaMap& namedGridAreas, NamedGridLinesMap& namedGridLines, GridTrackSizingD
irection direction) |
| 213 { |
| 214 NamedGridAreaMap::const_iterator end = namedGridAreas.end(); |
| 215 for (NamedGridAreaMap::const_iterator it = namedGridAreas.begin(); it != end
; ++it) { |
| 216 GridSpan areaSpan = direction == ForRows ? it->value.rows : it->value.co
lumns; |
| 217 { |
| 218 NamedGridLinesMap::AddResult startResult = namedGridLines.add(it->ke
y + "-start", Vector<size_t>()); |
| 219 startResult.storedValue->value.append(areaSpan.resolvedInitialPositi
on.toInt()); |
| 220 std::sort(startResult.storedValue->value.begin(), startResult.stored
Value->value.end()); |
| 221 } |
| 222 { |
| 223 NamedGridLinesMap::AddResult endResult = namedGridLines.add(it->key
+ "-end", Vector<size_t>()); |
| 224 endResult.storedValue->value.append(areaSpan.resolvedFinalPosition.t
oInt() + 1); |
| 225 std::sort(endResult.storedValue->value.begin(), endResult.storedValu
e->value.end()); |
| 226 } |
| 227 } |
| 228 } |
| 229 |
| 213 Length StyleBuilderConverter::convertLength(StyleResolverState& state, CSSValue*
value) | 230 Length StyleBuilderConverter::convertLength(StyleResolverState& state, CSSValue*
value) |
| 214 { | 231 { |
| 215 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 232 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
| 216 Length result = primitiveValue->convertToLength<FixedConversion | PercentCon
version>(state.cssToLengthConversionData()); | 233 Length result = primitiveValue->convertToLength<FixedConversion | PercentCon
version>(state.cssToLengthConversionData()); |
| 217 result.setQuirk(primitiveValue->isQuirkValue()); | 234 result.setQuirk(primitiveValue->isQuirkValue()); |
| 218 return result; | 235 return result; |
| 219 } | 236 } |
| 220 | 237 |
| 221 Length StyleBuilderConverter::convertLengthOrAuto(StyleResolverState& state, CSS
Value* value) | 238 Length StyleBuilderConverter::convertLengthOrAuto(StyleResolverState& state, CSS
Value* value) |
| 222 { | 239 { |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 { | 449 { |
| 433 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 450 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
| 434 if (primitiveValue->getValueID()) { | 451 if (primitiveValue->getValueID()) { |
| 435 float multiplier = convertLineWidth<float>(state, value); | 452 float multiplier = convertLineWidth<float>(state, value); |
| 436 return CSSPrimitiveValue::create(multiplier / 48, CSSPrimitiveValue::CSS
_EMS)->computeLength<float>(state.cssToLengthConversionData()); | 453 return CSSPrimitiveValue::create(multiplier / 48, CSSPrimitiveValue::CSS
_EMS)->computeLength<float>(state.cssToLengthConversionData()); |
| 437 } | 454 } |
| 438 return primitiveValue->computeLength<float>(state.cssToLengthConversionData(
)); | 455 return primitiveValue->computeLength<float>(state.cssToLengthConversionData(
)); |
| 439 } | 456 } |
| 440 | 457 |
| 441 } // namespace WebCore | 458 } // namespace WebCore |
| OLD | NEW |