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 17 matching lines...) Expand all Loading... |
28 - 'enum', for fields that store the values of an enum | 28 - 'enum', for fields that store the values of an enum |
29 - 'inherited_flag', for single-bit flags that store whether a property is | 29 - 'inherited_flag', for single-bit flags that store whether a property is |
30 inherited by this style or set explicitly | 30 inherited by this style or set explicitly |
31 """ | 31 """ |
32 def __init__(self, field_family, **kwargs): | 32 def __init__(self, field_family, **kwargs): |
33 # Values common to all fields | 33 # Values common to all fields |
34 # Name of field | 34 # Name of field |
35 self.name = kwargs.pop('name') | 35 self.name = kwargs.pop('name') |
36 # Name of property field is for | 36 # Name of property field is for |
37 self.property_name = kwargs.pop('property_name') | 37 self.property_name = kwargs.pop('property_name') |
38 # Field storage type | 38 # Internal field storage type |
39 self.type = kwargs.pop('type') | 39 self.storage_type = kwargs.pop('storage_type') |
40 # Bits needed for storage | 40 # Bits needed for storage |
41 self.size = kwargs.pop('size') | 41 self.size = kwargs.pop('size') |
42 # Default value for field | 42 # Default value for field |
43 self.default_value = kwargs.pop('default_value') | 43 self.default_value = kwargs.pop('default_value') |
44 # Method names | 44 # Method names |
45 self.getter_method_name = kwargs.pop('getter_method_name') | 45 self.getter_method_name = kwargs.pop('getter_method_name') |
46 self.setter_method_name = kwargs.pop('setter_method_name') | 46 self.setter_method_name = kwargs.pop('setter_method_name') |
47 self.initial_method_name = kwargs.pop('initial_method_name') | 47 self.initial_method_name = kwargs.pop('initial_method_name') |
48 self.resetter_method_name = kwargs.pop('resetter_method_name') | 48 self.resetter_method_name = kwargs.pop('resetter_method_name') |
49 | 49 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 | 105 |
106 # If the property is independent, add the single-bit sized isInh
erited flag | 106 # If the property is independent, add the single-bit sized isInh
erited flag |
107 # to the list of Fields as well. | 107 # to the list of Fields as well. |
108 if property['independent']: | 108 if property['independent']: |
109 field_name_suffix_upper = property['upper_camel_name'] + 'Is
Inherited' | 109 field_name_suffix_upper = property['upper_camel_name'] + 'Is
Inherited' |
110 field_name_suffix_lower = property_name_lower + 'IsInherited
' | 110 field_name_suffix_lower = property_name_lower + 'IsInherited
' |
111 self._fields.append(Field( | 111 self._fields.append(Field( |
112 'inherited_flag', | 112 'inherited_flag', |
113 name='m_' + field_name_suffix_lower, | 113 name='m_' + field_name_suffix_lower, |
114 property_name=property['name'], | 114 property_name=property['name'], |
115 type='bool', | 115 storage_type='bool', |
116 size=1, | 116 size=1, |
117 default_value='true', | 117 default_value='true', |
118 getter_method_name=field_name_suffix_lower, | 118 getter_method_name=field_name_suffix_lower, |
119 setter_method_name='set' + field_name_suffix_upper, | 119 setter_method_name='set' + field_name_suffix_upper, |
120 initial_method_name='initial' + field_name_suffix_upper, | 120 initial_method_name='initial' + field_name_suffix_upper, |
121 resetter_method_name='reset' + field_name_suffix_upper, | 121 resetter_method_name='reset' + field_name_suffix_upper, |
122 )) | 122 )) |
123 | 123 |
124 # Add the property itself as a member variable. | 124 # Add the property itself as a member variable. |
125 self._fields.append(Field( | 125 self._fields.append(Field( |
126 'enum', | 126 'enum', |
127 name=field_name, | 127 name=field_name, |
128 property_name=property['name'], | 128 property_name=property['name'], |
129 inherited=property['inherited'], | 129 inherited=property['inherited'], |
130 independent=property['independent'], | 130 independent=property['independent'], |
131 type=type_name, | 131 storage_type=type_name, |
132 size=int(math.ceil(bits_needed)), | 132 size=int(math.ceil(bits_needed)), |
133 default_value=default_value, | 133 default_value=default_value, |
134 getter_method_name=property_name_lower, | 134 getter_method_name=property_name_lower, |
135 setter_method_name='set' + property_name, | 135 setter_method_name='set' + property_name, |
136 initial_method_name='initial' + property_name, | 136 initial_method_name='initial' + property_name, |
137 resetter_method_name='reset' + property_name, | 137 resetter_method_name='reset' + property_name, |
138 is_inherited_method_name=property_name_lower + 'IsInherited'
, | 138 is_inherited_method_name=property_name_lower + 'IsInherited'
, |
139 )) | 139 )) |
140 | 140 |
141 # Small optimization: order fields by size, from largest to smallest, | 141 # Small optimization: order fields by size, from largest to smallest, |
(...skipping 19 matching lines...) Expand all Loading... |
161 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') | 161 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') |
162 def generate_base_computed_style_constants(self): | 162 def generate_base_computed_style_constants(self): |
163 return { | 163 return { |
164 'properties': self._properties, | 164 'properties': self._properties, |
165 'enums': self._computed_enums, | 165 'enums': self._computed_enums, |
166 'fields': self._fields, | 166 'fields': self._fields, |
167 } | 167 } |
168 | 168 |
169 if __name__ == '__main__': | 169 if __name__ == '__main__': |
170 in_generator.Maker(ComputedStyleBaseWriter).main(sys.argv) | 170 in_generator.Maker(ComputedStyleBaseWriter).main(sys.argv) |
OLD | NEW |