OLD | NEW |
1 {% from 'macros.tmpl' import license %} | 1 {% from 'macros.tmpl' import license %} |
2 {# | 2 {# |
3 This file is for property handlers which use the templating engine to | 3 This file is for property handlers which use the templating engine to |
4 reduce (handwritten) code duplication. | 4 reduce (handwritten) code duplication. |
5 | 5 |
6 The `properties' dict can be used to access a property's parameters in | 6 The `properties' dict can be used to access a property's parameters in |
7 jinja2 templates (i.e. setter, getter, initial, type_name) | 7 jinja2 templates (i.e. setter, getter, initial, type_name) |
8 #} | 8 #} |
9 #include "config.h" | 9 #include "config.h" |
10 #include "StyleBuilderFunctions.h" | 10 #include "StyleBuilderFunctions.h" |
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 {{apply_value_number('CSSPropertyInternalMarqueeRepetition', 'CSSValueInfinite')
}} | 471 {{apply_value_number('CSSPropertyInternalMarqueeRepetition', 'CSSValueInfinite')
}} |
472 | 472 |
473 {% macro apply_value_shape(property_id) %} | 473 {% macro apply_value_shape(property_id) %} |
474 {{declare_value_function(property_id)}} | 474 {{declare_value_function(property_id)}} |
475 { | 475 { |
476 {% set property = properties[property_id] %} | 476 {% set property = properties[property_id] %} |
477 if (value->isPrimitiveValue()) { | 477 if (value->isPrimitiveValue()) { |
478 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 478 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
479 if (primitiveValue->getValueID() == CSSValueAuto) | 479 if (primitiveValue->getValueID() == CSSValueAuto) |
480 {{set_value(property)}}(nullptr); | 480 {{set_value(property)}}(nullptr); |
481 } else if (value->isImageValue() || value->isImageSetValue()) { | 481 } else if (value->isImageValue() || value->isImageGeneratorValue() || value-
>isImageSetValue()) { |
482 {{set_value(property)}}(ShapeValue::createImageValue(state.styleImage({{
property_id}}, value))); | 482 {{set_value(property)}}(ShapeValue::createImageValue(state.styleImage({{
property_id}}, value))); |
483 } else if (value->isValueList()) { | 483 } else if (value->isValueList()) { |
484 RefPtr<BasicShape> shape; | 484 RefPtr<BasicShape> shape; |
485 CSSBoxType cssBox = BoxMissing; | 485 CSSBoxType cssBox = BoxMissing; |
486 CSSValueList* valueList = toCSSValueList(value); | 486 CSSValueList* valueList = toCSSValueList(value); |
487 for (unsigned i = 0; i < valueList->length(); ++i) { | 487 for (unsigned i = 0; i < valueList->length(); ++i) { |
488 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(valueList->i
temWithoutBoundsCheck(i)); | 488 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(valueList->i
temWithoutBoundsCheck(i)); |
489 if (primitiveValue->isShape()) | 489 if (primitiveValue->isShape()) |
490 shape = basicShapeForValue(state, primitiveValue->getShapeValue(
)); | 490 shape = basicShapeForValue(state, primitiveValue->getShapeValue(
)); |
491 else if (primitiveValue->getValueID() == CSSValueContentBox | 491 else if (primitiveValue->getValueID() == CSSValueContentBox |
492 || primitiveValue->getValueID() == CSSValueBorderBox | 492 || primitiveValue->getValueID() == CSSValueBorderBox |
493 || primitiveValue->getValueID() == CSSValuePaddingBox | 493 || primitiveValue->getValueID() == CSSValuePaddingBox |
494 || primitiveValue->getValueID() == CSSValueMarginBox) | 494 || primitiveValue->getValueID() == CSSValueMarginBox) |
495 cssBox = CSSBoxType(*primitiveValue); | 495 cssBox = CSSBoxType(*primitiveValue); |
496 else | 496 else |
497 return; | 497 return; |
498 } | 498 } |
499 | 499 |
500 if (shape) | 500 if (shape) |
501 {{set_value(property)}}(ShapeValue::createShapeValue(shape.release()
, cssBox)); | 501 {{set_value(property)}}(ShapeValue::createShapeValue(shape.release()
, cssBox)); |
502 else if (cssBox != BoxMissing) | 502 else if (cssBox != BoxMissing) |
503 {{set_value(property)}}(ShapeValue::createBoxShapeValue(cssBox)); | 503 {{set_value(property)}}(ShapeValue::createBoxShapeValue(cssBox)); |
504 } | 504 } |
505 } | 505 } |
506 {% endmacro %} | 506 {% endmacro %} |
507 {{apply_value_shape('CSSPropertyShapeOutside')}} | 507 {{apply_value_shape('CSSPropertyShapeOutside')}} |
508 } // namespace WebCore | 508 } // namespace WebCore |
OLD | NEW |