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 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 {{set_value(property)}}( | 600 {{set_value(property)}}( |
601 svgParentStyle->{{paint_type|lower_first}}Type(), | 601 svgParentStyle->{{paint_type|lower_first}}Type(), |
602 svgParentStyle->{{paint_type|lower_first}}Color(), | 602 svgParentStyle->{{paint_type|lower_first}}Color(), |
603 svgParentStyle->{{paint_type|lower_first}}Uri(), | 603 svgParentStyle->{{paint_type|lower_first}}Uri(), |
604 state.applyPropertyToRegularStyle(), | 604 state.applyPropertyToRegularStyle(), |
605 state.applyPropertyToVisitedLinkStyle()); | 605 state.applyPropertyToVisitedLinkStyle()); |
606 } | 606 } |
607 | 607 |
608 {{declare_value_function(property_id)}} | 608 {{declare_value_function(property_id)}} |
609 { | 609 { |
610 if (value->isSVGPaint()) { | 610 String url; |
611 SVGPaint* svgPaint = toSVGPaint(value); | 611 if (value->isValueList()) { |
| 612 CSSValueList* list = toCSSValueList(value); |
| 613 ASSERT(list->length() > 1); |
612 | 614 |
613 Color color; | 615 if (!list->item(0)->isPrimitiveValue()) |
614 if (svgPaint->paintType() == SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR | 616 return; |
615 || svgPaint->paintType() == SVGPaint::SVG_PAINTTYPE_URI_CURRENTC
OLOR) | |
616 color = state.style()->color(); | |
617 else | |
618 color = svgPaint->color(); | |
619 | 617 |
620 {{set_value(property)}}(svgPaint->paintType(), | 618 CSSPrimitiveValue* pValue = toCSSPrimitiveValue(list->item(0)); |
621 color, | 619 if (!pValue->isURI()) |
622 svgPaint->uri(), | 620 return; |
| 621 |
| 622 url = pValue->getStringValue(); |
| 623 value = list->item(1); |
| 624 } |
| 625 if (value->isPrimitiveValue()) { |
| 626 CSSPrimitiveValue* pValue = toCSSPrimitiveValue(value); |
| 627 Color c; |
| 628 SVGPaintType ptype = SVG_PAINTTYPE_RGBCOLOR; |
| 629 if (pValue->isRGBColor()) { |
| 630 c = pValue->getRGBA32Value(); |
| 631 ptype = url.isEmpty() ? SVG_PAINTTYPE_RGBCOLOR : SVG_PAINTTYPE_URI_R
GBCOLOR; |
| 632 } else if (pValue->getValueID() == CSSValueCurrentcolor) { |
| 633 c = state.style()->color(); |
| 634 ptype = url.isEmpty() ? SVG_PAINTTYPE_CURRENTCOLOR : SVG_PAINTTYPE_U
RI_CURRENTCOLOR; |
| 635 } else if (pValue->getValueID() == CSSValueNone) { |
| 636 ptype = url.isEmpty() ? SVG_PAINTTYPE_NONE : SVG_PAINTTYPE_URI_NONE; |
| 637 } else if (pValue->isURI()) { |
| 638 ptype = SVG_PAINTTYPE_URI; |
| 639 url = pValue->getStringValue(); |
| 640 } else { |
| 641 return; |
| 642 } |
| 643 {{set_value(property)}}(ptype, c, url, |
623 state.applyPropertyToRegularStyle(), | 644 state.applyPropertyToRegularStyle(), |
624 state.applyPropertyToVisitedLinkStyle()); | 645 state.applyPropertyToVisitedLinkStyle()); |
625 } | 646 } |
626 } | 647 } |
627 {% endmacro %} | 648 {% endmacro %} |
628 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}} | 649 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}} |
629 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}} | 650 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}} |
630 } // namespace WebCore | 651 } // namespace WebCore |
OLD | NEW |