| OLD | NEW |
| 1 {% from 'macros.tmpl' import license %} | 1 {% from 'macros.tmpl' import license %} |
| 2 {{license()}} | 2 {{license()}} |
| 3 | 3 |
| 4 #include "config.h" | 4 #include "config.h" |
| 5 #include "core/css/resolver/StyleBuilder.h" | 5 #include "core/css/resolver/StyleBuilder.h" |
| 6 | 6 |
| 7 #include "StyleBuilderFunctions.h" | 7 #include "StyleBuilderFunctions.h" |
| 8 #include "core/css/CSSProperty.h" | 8 #include "core/css/CSSProperty.h" |
| 9 #include "core/css/resolver/StyleResolverState.h" | 9 #include "core/css/resolver/StyleResolverState.h" |
| 10 | 10 |
| 11 // FIXME: currently we're just generating a switch statement, but we should | 11 // FIXME: currently we're just generating a switch statement, but we should |
| 12 // test other variations for performance once we have more properties here. | 12 // test other variations for performance once we have more properties here. |
| 13 | 13 |
| 14 namespace blink { | 14 namespace blink { |
| 15 | 15 |
| 16 void StyleBuilder::applyProperty(CSSPropertyID property, StyleResolverState& sta
te, CSSValue* value, bool isInitial, bool isInherit) { | 16 void StyleBuilder::applyProperty(CSSPropertyID property, StyleResolverState& sta
te, CSSValue* value, bool isInitial, bool isInherit) { |
| 17 switch(property) { | 17 switch(property) { |
| 18 {% for property_id, property in properties.items() | 18 {% for property_id, property in properties.items() |
| 19 if not property.direction_aware and not property.skip %} | 19 if property.should_declare_functions or property.use_handlers_for %} |
| 20 {% set used_property = properties[property.use_handlers_for] or property %} | 20 {% set used_property = properties[property.use_handlers_for] or property %} |
| 21 {% set used_property_id = used_property.property_id %} | 21 {% set used_property_id = used_property.property_id %} |
| 22 case {{property_id}}: | 22 case {{property_id}}: |
| 23 if (isInitial) | 23 if (isInitial) |
| 24 StyleBuilderFunctions::applyInitial{{used_property_id}}(state); | 24 StyleBuilderFunctions::applyInitial{{used_property_id}}(state); |
| 25 else if (isInherit) | 25 else if (isInherit) |
| 26 StyleBuilderFunctions::applyInherit{{used_property_id}}(state); | 26 StyleBuilderFunctions::applyInherit{{used_property_id}}(state); |
| 27 else | 27 else |
| 28 StyleBuilderFunctions::applyValue{{used_property_id}}(state, value); | 28 StyleBuilderFunctions::applyValue{{used_property_id}}(state, value); |
| 29 return; | 29 return; |
| 30 | 30 |
| 31 {% endfor %} | 31 {% endfor %} |
| 32 {% for property_id, property in properties.items() if property.direction_awa
re %} | 32 {% for property_id, property in properties.items() if property.direction_awa
re %} |
| 33 case {{property_id}}: | 33 case {{property_id}}: |
| 34 {% endfor %} | 34 {% endfor %} |
| 35 { | 35 { |
| 36 CSSPropertyID resolvedProperty = CSSProperty::resolveDirectionAwarePrope
rty(property, state.style()->direction(), state.style()->writingMode()); | 36 CSSPropertyID resolvedProperty = CSSProperty::resolveDirectionAwarePrope
rty(property, state.style()->direction(), state.style()->writingMode()); |
| 37 ASSERT(resolvedProperty != property); | 37 ASSERT(resolvedProperty != property); |
| 38 applyProperty(resolvedProperty, state, value); | 38 applyProperty(resolvedProperty, state, value); |
| 39 return; | 39 return; |
| 40 } | 40 } |
| 41 {% for property_id, property in properties.items() if property.skip %} | 41 {% for property_id, property in properties.items() if property.builder_skip
%} |
| 42 case {{property_id}}: | 42 case {{property_id}}: |
| 43 {% endfor %} | 43 {% endfor %} |
| 44 return; | 44 return; |
| 45 default: | 45 default: |
| 46 // FIXME: We should explicitly handle all cases here once we merge the v
arious .in files | |
| 47 ASSERT_NOT_REACHED(); | 46 ASSERT_NOT_REACHED(); |
| 48 } | 47 } |
| 49 } | 48 } |
| 50 | 49 |
| 51 } // namespace blink | 50 } // namespace blink |
| OLD | NEW |