| OLD | NEW |
| 1 {% from 'macros.tmpl' import license, print_if %} | 1 {% from 'macros.tmpl' import license, print_if %} |
| 2 {% from 'fields/field.tmpl' import encode, getter_expression, setter_expression,
declare_storage, fieldwise_compare, fieldwise_copy, fieldwise_diff, fieldwise_p
ointer_compare_inherited %} | 2 {% from 'fields/field.tmpl' import encode, getter_expression, setter_expression,
declare_storage, fieldwise_compare, fieldwise_copy, fieldwise_diff, fieldwise_p
ointer_compare_inherited %} |
| 3 {% from 'fields/group.tmpl' import define_field_group_class %} | 3 {% from 'fields/group.tmpl' import define_field_group_class %} |
| 4 {{license()}} | 4 {{license()}} |
| 5 | 5 |
| 6 #ifndef ComputedStyleBase_h | 6 #ifndef ComputedStyleBase_h |
| 7 #define ComputedStyleBase_h | 7 #define ComputedStyleBase_h |
| 8 | 8 |
| 9 #include "core/style/ComputedStyleConstants.h" | 9 #include "core/style/ComputedStyleConstants.h" |
| 10 #include "core/CoreExport.h" | 10 #include "core/CoreExport.h" |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 const ComputedStyleFinal& self = static_cast<const ComputedStyleFinal&>(*thi
s); | 141 const ComputedStyleFinal& self = static_cast<const ComputedStyleFinal&>(*thi
s); |
| 142 {{fieldwise_diff(groups_to_diff)|indent(4)}} | 142 {{fieldwise_diff(groups_to_diff)|indent(4)}} |
| 143 return false; | 143 return false; |
| 144 } | 144 } |
| 145 {% endfor %} | 145 {% endfor %} |
| 146 | 146 |
| 147 // Fields. | 147 // Fields. |
| 148 // TODO(sashab): Remove initialFoo() static methods and update callers to | 148 // TODO(sashab): Remove initialFoo() static methods and update callers to |
| 149 // use resetFoo(), which can be more efficient. | 149 // use resetFoo(), which can be more efficient. |
| 150 | 150 |
| 151 {% for field in computed_style.all_fields %} | 151 {% for field in computed_style.all_fields|sort(attribute='name') %} |
| 152 // {{field.property_name}} | 152 // {{field.property_name}} |
| 153 {{field_templates[field.field_template].decl_public_methods(field)|indent(2)}} | 153 {{field_templates[field.field_template].decl_public_methods(field)|indent(2)}} |
| 154 | 154 |
| 155 {% endfor %} | 155 {% endfor %} |
| 156 private: | 156 private: |
| 157 {% for subgroup in computed_style.subgroups %} | 157 {% for subgroup in computed_style.subgroups %} |
| 158 {{define_field_group_class(subgroup)|indent(2)}} | 158 {{define_field_group_class(subgroup)|indent(2)}} |
| 159 | 159 |
| 160 {% endfor %} | 160 {% endfor %} |
| 161 | 161 |
| 162 protected: | 162 protected: |
| 163 // Constructor and destructor are protected so that only the parent class Comp
utedStyle | 163 // Constructor and destructor are protected so that only the parent class Comp
utedStyle |
| 164 // can instantiate this class. | 164 // can instantiate this class. |
| 165 ALWAYS_INLINE ComputedStyleBase() : | 165 ALWAYS_INLINE ComputedStyleBase() : |
| 166 {% for field in computed_style.fields %} | 166 {% for field in computed_style.fields %} |
| 167 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.
last, ',')}} | 167 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.
last, ',')}} |
| 168 {% endfor %} | 168 {% endfor %} |
| 169 { | 169 { |
| 170 static_assert(std::is_same<ComputedStyle, ComputedStyleFinal>::value, "Compu
tedStyleBase can only be templated with ComputedStyle"); | 170 static_assert(std::is_same<ComputedStyle, ComputedStyleFinal>::value, "Compu
tedStyleBase can only be templated with ComputedStyle"); |
| 171 {% for subgroup in computed_style.subgroups %} | 171 {% for subgroup in computed_style.subgroups %} |
| 172 {{subgroup.member_name}}.Init(); | 172 {{subgroup.member_name}}.Init(); |
| 173 {% endfor %} | 173 {% endfor %} |
| 174 } | 174 } |
| 175 | 175 |
| 176 {% for field in computed_style.all_fields %} | 176 {% for field in computed_style.all_fields|sort(attribute='name') %} |
| 177 {% if field.field_template in ('storage_only', 'monotonic_flag', 'external') %
} | 177 {% if field.field_template in ('storage_only', 'monotonic_flag', 'external') %
} |
| 178 // {{field.property_name}} | 178 // {{field.property_name}} |
| 179 {{field_templates[field.field_template].decl_protected_methods(field)|indent(2
)}} | 179 {{field_templates[field.field_template].decl_protected_methods(field)|indent(2
)}} |
| 180 | 180 |
| 181 {% endif %} | 181 {% endif %} |
| 182 {% endfor %} | 182 {% endfor %} |
| 183 | 183 |
| 184 ~ComputedStyleBase() = default; | 184 ~ComputedStyleBase() = default; |
| 185 | 185 |
| 186 // Storage. | 186 // Storage. |
| 187 {% for subgroup in computed_style.subgroups %} | 187 {% for subgroup in computed_style.subgroups %} |
| 188 DataRef<{{subgroup.type_name}}> {{subgroup.member_name}}; | 188 DataRef<{{subgroup.type_name}}> {{subgroup.member_name}}; |
| 189 {% endfor %} | 189 {% endfor %} |
| 190 | 190 |
| 191 static unsigned WidthToFixedPoint(float width) { | 191 static unsigned WidthToFixedPoint(float width) { |
| 192 DCHECK_GE(width, 0); | 192 DCHECK_GE(width, 0); |
| 193 return static_cast<unsigned>(std::min<float>(width, kMaxForBorderWidth) * | 193 return static_cast<unsigned>(std::min<float>(width, kMaxForBorderWidth) * |
| 194 kBorderWidthDenominator); | 194 kBorderWidthDenominator); |
| 195 } | 195 } |
| 196 | 196 |
| 197 private: | 197 private: |
| 198 {% for field in computed_style.fields %} | 198 {% for field in computed_style.fields %} |
| 199 {{declare_storage(field)}} | 199 {{declare_storage(field)}} |
| 200 {% endfor %} | 200 {% endfor %} |
| 201 }; | 201 }; |
| 202 | 202 |
| 203 } // namespace blink | 203 } // namespace blink |
| 204 | 204 |
| 205 #endif // ComputedStyleBase_h | 205 #endif // ComputedStyleBase_h |
| OLD | NEW |