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 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 for (currChild = currChild->next(); currChild; currChild = currChild->next()
) | 393 for (currChild = currChild->next(); currChild; currChild = currChild->next()
) |
394 currChild->clear{{fill_type}}(); | 394 currChild->clear{{fill_type}}(); |
395 } | 395 } |
396 | 396 |
397 {{declare_inherit_function(property_id)}} | 397 {{declare_inherit_function(property_id)}} |
398 { | 398 { |
399 FillLayer* currChild = &state.style()->{{access_layers}}(); | 399 FillLayer* currChild = &state.style()->{{access_layers}}(); |
400 FillLayer* prevChild = 0; | 400 FillLayer* prevChild = 0; |
401 const FillLayer* currParent = &state.parentStyle()->{{layer_type|lower}}Laye
rs(); | 401 const FillLayer* currParent = &state.parentStyle()->{{layer_type|lower}}Laye
rs(); |
402 while (currParent && currParent->is{{fill_type}}Set()) { | 402 while (currParent && currParent->is{{fill_type}}Set()) { |
403 if (!currChild) { | 403 if (!currChild) |
404 /* Need to make a new layer.*/ | 404 currChild = prevChild->ensureNext(); |
405 currChild = new FillLayer({{fill_layer_type}}); | |
406 prevChild->setNext(currChild); | |
407 } | |
408 currChild->set{{fill_type}}(currParent->{{fill_type|lower_first}}()); | 405 currChild->set{{fill_type}}(currParent->{{fill_type|lower_first}}()); |
409 prevChild = currChild; | 406 prevChild = currChild; |
410 currChild = prevChild->next(); | 407 currChild = prevChild->next(); |
411 currParent = currParent->next(); | 408 currParent = currParent->next(); |
412 } | 409 } |
413 | 410 |
414 while (currChild) { | 411 while (currChild) { |
415 /* Reset any remaining layers to not have the property set. */ | 412 /* Reset any remaining layers to not have the property set. */ |
416 currChild->clear{{fill_type}}(); | 413 currChild->clear{{fill_type}}(); |
417 currChild = currChild->next(); | 414 currChild = currChild->next(); |
418 } | 415 } |
419 } | 416 } |
420 | 417 |
421 {{declare_value_function(property_id)}} | 418 {{declare_value_function(property_id)}} |
422 { | 419 { |
423 FillLayer* currChild = &state.style()->{{access_layers}}(); | 420 FillLayer* currChild = &state.style()->{{access_layers}}(); |
424 FillLayer* prevChild = 0; | 421 FillLayer* prevChild = 0; |
425 if (value->isValueList() && !value->isImageSetValue()) { | 422 if (value->isValueList() && !value->isImageSetValue()) { |
426 /* Walk each value and put it into a layer, creating new layers as neede
d. */ | 423 /* Walk each value and put it into a layer, creating new layers as neede
d. */ |
427 CSSValueList* valueList = toCSSValueList(value); | 424 CSSValueList* valueList = toCSSValueList(value); |
428 for (unsigned int i = 0; i < valueList->length(); i++) { | 425 for (unsigned int i = 0; i < valueList->length(); i++) { |
429 if (!currChild) { | 426 if (!currChild) |
430 /* Need to make a new layer to hold this value */ | 427 currChild = prevChild->ensureNext(); |
431 currChild = new FillLayer({{fill_layer_type}}); | |
432 prevChild->setNext(currChild); | |
433 } | |
434 state.styleMap().{{map_fill}}({{property_id}}, currChild, valueList-
>item(i)); | 428 state.styleMap().{{map_fill}}({{property_id}}, currChild, valueList-
>item(i)); |
435 prevChild = currChild; | 429 prevChild = currChild; |
436 currChild = currChild->next(); | 430 currChild = currChild->next(); |
437 } | 431 } |
438 } else { | 432 } else { |
439 state.styleMap().{{map_fill}}({{property_id}}, currChild, value); | 433 state.styleMap().{{map_fill}}({{property_id}}, currChild, value); |
440 currChild = currChild->next(); | 434 currChild = currChild->next(); |
441 } | 435 } |
442 while (currChild) { | 436 while (currChild) { |
443 /* Reset all remaining layers to not have the property set. */ | 437 /* Reset all remaining layers to not have the property set. */ |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
642 } | 636 } |
643 {{set_value(property)}}(ptype, c, url, | 637 {{set_value(property)}}(ptype, c, url, |
644 state.applyPropertyToRegularStyle(), | 638 state.applyPropertyToRegularStyle(), |
645 state.applyPropertyToVisitedLinkStyle()); | 639 state.applyPropertyToVisitedLinkStyle()); |
646 } | 640 } |
647 } | 641 } |
648 {% endmacro %} | 642 {% endmacro %} |
649 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}} | 643 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}} |
650 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}} | 644 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}} |
651 } // namespace WebCore | 645 } // namespace WebCore |
OLD | NEW |