OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2016 The Chromium Authors. All rights reserved. | 2 # Copyright 2016 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import math | 6 import math |
7 import sys | 7 import sys |
8 | 8 |
9 import in_generator | 9 import in_generator |
10 import template_expander | 10 import template_expander |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 enum_name = property['type_name'] | 82 enum_name = property['type_name'] |
83 # From the Blink style guide: Enum members should use InterCaps
with an initial capital letter. [names-enum-members] | 83 # From the Blink style guide: Enum members should use InterCaps
with an initial capital letter. [names-enum-members] |
84 enum_values = [camel_case(k) for k in property['keywords']] | 84 enum_values = [camel_case(k) for k in property['keywords']] |
85 self._computed_enums[enum_name] = enum_values | 85 self._computed_enums[enum_name] = enum_values |
86 | 86 |
87 # A list of all the fields to be generated. | 87 # A list of all the fields to be generated. |
88 self._fields = [] | 88 self._fields = [] |
89 for property in self._properties.values(): | 89 for property in self._properties.values(): |
90 if property['keyword_only']: | 90 if property['keyword_only']: |
91 property_name = property['name_for_methods'] | 91 property_name = property['name_for_methods'] |
92 if property['name_for_methods']: | |
93 property_name = property['name_for_methods'] | |
94 property_name_lower = property_name[0].lower() + property_name[1
:] | 92 property_name_lower = property_name[0].lower() + property_name[1
:] |
95 | 93 |
96 # From the Blink style guide: Other data members should be prefi
xed by "m_". [names-data-members] | 94 # From the Blink style guide: Other data members should be prefi
xed by "m_". [names-data-members] |
97 field_name = 'm_' + property_name_lower | 95 field_name = 'm_' + property_name_lower |
98 bits_needed = math.log(len(property['keywords']), 2) | 96 bits_needed = math.log(len(property['keywords']), 2) |
99 type_name = property['type_name'] | 97 type_name = property['type_name'] |
100 | 98 |
101 assert property['initial_keyword'] is not None, \ | 99 assert property['initial_keyword'] is not None, \ |
102 ('MakeComputedStyleBase requires an initial keyword for keyw
ord_only values, none specified ' | 100 ('MakeComputedStyleBase requires an initial keyword for keyw
ord_only values, none specified ' |
103 'for property ' + property['name']) | 101 'for property ' + property['name']) |
104 default_value = type_name + '::' + camel_case(property['initial_
keyword']) | 102 default_value = type_name + '::' + camel_case(property['initial_
keyword']) |
105 | 103 |
106 # If the property is independent, add the single-bit sized isInh
erited flag | 104 # If the property is independent, add the single-bit sized isInh
erited flag |
107 # to the list of Fields as well. | 105 # to the list of Fields as well. |
108 if property['independent']: | 106 if property['independent']: |
109 field_name_suffix_upper = property['name_for_methods'] + 'Is
Inherited' | 107 field_name_suffix_upper = property_name + 'IsInherited' |
110 field_name_suffix_lower = property_name_lower + 'IsInherited
' | 108 field_name_suffix_lower = property_name_lower + 'IsInherited
' |
111 self._fields.append(Field( | 109 self._fields.append(Field( |
112 'inherited_flag', | 110 'inherited_flag', |
113 name='m_' + field_name_suffix_lower, | 111 name='m_' + field_name_suffix_lower, |
114 property_name=property['name'], | 112 property_name=property['name'], |
115 storage_type='bool', | 113 storage_type='bool', |
116 size=1, | 114 size=1, |
117 default_value='true', | 115 default_value='true', |
118 getter_method_name=field_name_suffix_lower, | 116 getter_method_name=field_name_suffix_lower, |
119 setter_method_name='set' + field_name_suffix_upper, | 117 setter_method_name='set' + field_name_suffix_upper, |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') | 159 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') |
162 def generate_base_computed_style_constants(self): | 160 def generate_base_computed_style_constants(self): |
163 return { | 161 return { |
164 'properties': self._properties, | 162 'properties': self._properties, |
165 'enums': self._computed_enums, | 163 'enums': self._computed_enums, |
166 'fields': self._fields, | 164 'fields': self._fields, |
167 } | 165 } |
168 | 166 |
169 if __name__ == '__main__': | 167 if __name__ == '__main__': |
170 in_generator.Maker(ComputedStyleBaseWriter).main(sys.argv) | 168 in_generator.Maker(ComputedStyleBaseWriter).main(sys.argv) |
OLD | NEW |