Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Side by Side Diff: Source/core/scripts/templates/StyleBuilder.cpp.tmpl

Issue 22546004: Remove .tmpl extension from Jinja templates in core Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 {% from "macros.tmpl" import wrap_with_condition, license -%}
2 {{ license() }}
3
4 #include "config.h"
5 #include "core/css/resolver/StyleBuilder.h"
6
7 #include "StyleBuilderFunctions.h"
8 #include "core/css/CSSPrimitiveValueMappings.h"
9 #include "core/css/resolver/StyleResolverState.h"
10
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.
13
14 {%- macro set_value(property) %}
15 {%- if property.svg -%}
16 state.style()->accessSVGStyle()->{{property.setter}}
17 {%- else -%}
18 state.style()->{{property.setter}}
19 {%- endif %}
20 {%- endmacro %}
21
22 namespace WebCore {
23
24 {%- macro apply_value_length(property) -%}
25 if (!value->isPrimitiveValue())
26 return;
27
28 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
29 Length length;
30 switch(primitiveValue->getValueID()) {
31
32 {%- if property.use_none %}
33 case CSSValueNone:
34 length = Length(Undefined);
35 break;
36 {%- endif %}
37
38 {%- if property.use_intrinsic %}
39 case CSSValueIntrinsic:
40 length = Length(Intrinsic);
41 break;
42 case CSSValueMinIntrinsic:
43 length = Length(MinIntrinsic);
44 break;
45 case CSSValueWebkitMinContent:
46 length = Length(MinContent);
47 break;
48 case CSSValueWebkitMaxContent:
49 length = Length(MaxContent);
50 break;
51 case CSSValueWebkitFillAvailable:
52 length = Length(FillAvailable);
53 break;
54 case CSSValueWebkitFitContent:
55 length = Length(FitContent);
56 break;
57 {%- endif %}
58
59 {%- if property.use_auto %}
60 case CSSValueAuto:
61 break; // default ctor is auto
62 {%- endif %}
63
64 case CSSValueInvalid:
65 length = primitiveValue->convertToLength<FixedIntegerConversion | Percen tConversion>(state.style(), state.rootElementStyle(), state.style()->effectiveZo om());
66 length.setQuirk(primitiveValue->isQuirkValue());
67 break;
68 default:
69 ASSERT_NOT_REACHED();
70 }
71 {{ set_value(property) }}(length);
72 {%- endmacro %}
73
74 {%- for property_id, property in properties.items() if not property.use_handlers _for %}
75 {%- call wrap_with_condition(property.condition) %}
76 {%- set apply_type = property.apply_type %}
77
78 {%- if not property.custom_initial %}
79 void StyleBuilderFunctions::applyInitial{{property_id}}(StyleResolverState& stat e)
80 {
81 {%- if property.svg %}
82 {{ set_value(property) }}(SVGRenderStyle::{{property.initial}}());
83 {%- else %}
84 {{ set_value(property) }}(RenderStyle::{{property.initial}}());
85 {%- endif %}
86 }
87 {% endif %}
88
89 {%- if not property.custom_inherit %}
90 void StyleBuilderFunctions::applyInherit{{property_id}}(StyleResolverState& stat e)
91 {
92 {%- if property.svg %}
93 {{ set_value(property) }}(state.parentStyle()->svgStyle()->{{property.getter }}());
94 {%- else %}
95 {{ set_value(property) }}(state.parentStyle()->{{property.getter}}());
96 {%- endif %}
97 }
98 {% endif %}
99
100 {%- if not property.custom_value %}
101 void StyleBuilderFunctions::applyValue{{property_id}}(StyleResolverState& state, CSSValue* value)
102 {
103 {%- if apply_type == "length" %}
104 {{ apply_value_length(property) }}
105 {%- else %}
106 {{ set_value(property) }}(static_cast<{{property.type_name}}>(*toCSSPrimitiv eValue(value)));
107 {%- endif %}
108 }
109 {% endif %}
110
111 {%- endcall %}
112 {%- endfor %}
113
114 bool StyleBuilder::applyProperty(CSSPropertyID property, StyleResolverState& sta te, CSSValue* value, bool isInitial, bool isInherit) {
115 switch(property) {
116 {%- for property_id, property in properties.items() %}
117 {%- set used_property = properties[property.use_handlers_for] or property %}
118 {%- set used_property_id = used_property.property_id %}
119 {%- call wrap_with_condition(used_property.condition) %}
120 case {{ property_id }}:
121 if (isInitial)
122 StyleBuilderFunctions::applyInitial{{ used_property_id }}(state);
123 else if (isInherit)
124 StyleBuilderFunctions::applyInherit{{ used_property_id }}(state);
125 else
126 StyleBuilderFunctions::applyValue{{ used_property_id }}(state, value );
127 return true;
128 {%- endcall %}
129 {% endfor %}
130 default:
131 return false;
132 }
133 }
134
135 } // namespace WebCore
136
OLDNEW
« no previous file with comments | « Source/core/scripts/templates/StyleBuilder.cpp ('k') | Source/core/scripts/templates/StyleBuilderFunctions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698