| 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 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 | 502 |
| 503 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 503 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
| 504 if (primitiveValue->getValueID() == {{id_for_minus_one}}) | 504 if (primitiveValue->getValueID() == {{id_for_minus_one}}) |
| 505 {{set_value(property)}}(-1); | 505 {{set_value(property)}}(-1); |
| 506 else | 506 else |
| 507 {{set_value(property)}}(primitiveValue->getValue<{{property.type_name}}>
(CSSPrimitiveValue::CSS_NUMBER)); | 507 {{set_value(property)}}(primitiveValue->getValue<{{property.type_name}}>
(CSSPrimitiveValue::CSS_NUMBER)); |
| 508 } | 508 } |
| 509 {% endmacro %} | 509 {% endmacro %} |
| 510 {{apply_value_number('CSSPropertyInternalMarqueeRepetition', 'CSSValueInfinite')
}} | 510 {{apply_value_number('CSSPropertyInternalMarqueeRepetition', 'CSSValueInfinite')
}} |
| 511 | 511 |
| 512 {% macro apply_value_shape(property_id) %} | |
| 513 {{declare_value_function(property_id)}} | |
| 514 { | |
| 515 {% set property = properties[property_id] %} | |
| 516 if (value->isPrimitiveValue()) { | |
| 517 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | |
| 518 if (primitiveValue->getValueID() == CSSValueNone) | |
| 519 {{set_value(property)}}(nullptr); | |
| 520 } else if (value->isImageValue() || value->isImageGeneratorValue() || value-
>isImageSetValue()) { | |
| 521 {{set_value(property)}}(ShapeValue::createImageValue(state.styleImage({{
property_id}}, value))); | |
| 522 } else if (value->isValueList()) { | |
| 523 RefPtr<BasicShape> shape; | |
| 524 CSSBoxType cssBox = BoxMissing; | |
| 525 CSSValueList* valueList = toCSSValueList(value); | |
| 526 for (unsigned i = 0; i < valueList->length(); ++i) { | |
| 527 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(valueList->i
tem(i)); | |
| 528 if (primitiveValue->isShape()) | |
| 529 shape = basicShapeForValue(state, primitiveValue->getShapeValue(
)); | |
| 530 else if (primitiveValue->getValueID() == CSSValueContentBox | |
| 531 || primitiveValue->getValueID() == CSSValueBorderBox | |
| 532 || primitiveValue->getValueID() == CSSValuePaddingBox | |
| 533 || primitiveValue->getValueID() == CSSValueMarginBox) | |
| 534 cssBox = CSSBoxType(*primitiveValue); | |
| 535 else | |
| 536 return; | |
| 537 } | |
| 538 | |
| 539 if (shape) | |
| 540 {{set_value(property)}}(ShapeValue::createShapeValue(shape.release()
, cssBox)); | |
| 541 else if (cssBox != BoxMissing) | |
| 542 {{set_value(property)}}(ShapeValue::createBoxShapeValue(cssBox)); | |
| 543 } | |
| 544 } | |
| 545 {% endmacro %} | |
| 546 {{apply_value_shape('CSSPropertyShapeOutside')}} | |
| 547 | |
| 548 {% macro apply_alignment(property_id, alignment_type) %} | 512 {% macro apply_alignment(property_id, alignment_type) %} |
| 549 {% set property = properties[property_id] %} | 513 {% set property = properties[property_id] %} |
| 550 {{declare_initial_function(property_id)}} | 514 {{declare_initial_function(property_id)}} |
| 551 { | 515 { |
| 552 state.style()->set{{alignment_type}}(RenderStyle::initial{{alignment_type}}(
)); | 516 state.style()->set{{alignment_type}}(RenderStyle::initial{{alignment_type}}(
)); |
| 553 state.style()->set{{alignment_type}}OverflowAlignment(RenderStyle::initial{{
alignment_type}}OverflowAlignment()); | 517 state.style()->set{{alignment_type}}OverflowAlignment(RenderStyle::initial{{
alignment_type}}OverflowAlignment()); |
| 554 } | 518 } |
| 555 | 519 |
| 556 {{declare_inherit_function(property_id)}} | 520 {{declare_inherit_function(property_id)}} |
| 557 { | 521 { |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 634 } | 598 } |
| 635 {{set_value(property)}}(ptype, c, url, | 599 {{set_value(property)}}(ptype, c, url, |
| 636 state.applyPropertyToRegularStyle(), | 600 state.applyPropertyToRegularStyle(), |
| 637 state.applyPropertyToVisitedLinkStyle()); | 601 state.applyPropertyToVisitedLinkStyle()); |
| 638 } | 602 } |
| 639 } | 603 } |
| 640 {% endmacro %} | 604 {% endmacro %} |
| 641 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}} | 605 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}} |
| 642 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}} | 606 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}} |
| 643 } // namespace blink | 607 } // namespace blink |
| OLD | NEW |