summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/build/scripts/make_style_builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/build/scripts/make_style_builder.py')
-rwxr-xr-xchromium/third_party/WebKit/Source/build/scripts/make_style_builder.py78
1 files changed, 39 insertions, 39 deletions
diff --git a/chromium/third_party/WebKit/Source/build/scripts/make_style_builder.py b/chromium/third_party/WebKit/Source/build/scripts/make_style_builder.py
index 09aaa7b2fff..6c39b332e19 100755
--- a/chromium/third_party/WebKit/Source/build/scripts/make_style_builder.py
+++ b/chromium/third_party/WebKit/Source/build/scripts/make_style_builder.py
@@ -31,25 +31,35 @@ import re
import sys
import in_generator
+import name_utilities
+from name_utilities import camelcase_property_name, lower_first
import template_expander
class StyleBuilderWriter(in_generator.Writer):
class_name = 'StyleBuilder'
+ filters = {
+ 'lower_first': lower_first,
+ }
valid_values = {
'svg': [True, False],
+ 'font': [True, False],
'custom_all': [True, False],
'custom_initial': [True, False],
'custom_inherit': [True, False],
'custom_value': [True, False],
+ 'direction_aware': [True, False],
+ 'skip': [True, False],
}
defaults = {
- 'condition': None,
'name_for_methods': None,
'use_handlers_for': None,
'svg': False,
+ 'font': False,
'converter': None,
+ 'direction_aware': False,
+ 'skip': False,
# These depend on property name by default
'type_name': None,
'getter': None,
@@ -65,9 +75,9 @@ class StyleBuilderWriter(in_generator.Writer):
def __init__(self, in_files):
super(StyleBuilderWriter, self).__init__(in_files)
- self._outputs = {("StyleBuilderFunctions.h"): self.generate_style_builder_functions_h,
- ("StyleBuilderFunctions.cpp"): self.generate_style_builder_functions_cpp,
- ("StyleBuilder.cpp"): self.generate_style_builder,
+ self._outputs = {('StyleBuilderFunctions.h'): self.generate_style_builder_functions_h,
+ ('StyleBuilderFunctions.cpp'): self.generate_style_builder_functions_cpp,
+ ('StyleBuilder.cpp'): self.generate_style_builder,
}
self._properties = self.in_file.name_dictionaries
@@ -77,52 +87,42 @@ class StyleBuilderWriter(in_generator.Writer):
property[key] = value
for property in self._properties:
- cc = self._camelcase_property_name(property["name"])
- property["property_id"] = "CSSProperty" + cc
- cc = property["name_for_methods"] or cc.replace("Webkit", "")
- property["camel_case_name"] = cc
- set_if_none(property, "type_name", "E" + cc)
- set_if_none(property, "getter", self._lower_first(cc))
- set_if_none(property, "setter", "set" + cc)
- set_if_none(property, "initial", "initial" + cc)
- if property["custom_all"]:
- property["custom_initial"] = True
- property["custom_inherit"] = True
- property["custom_value"] = True
-
- self._properties = dict((property["property_id"], property) for property in self._properties)
-
-# FIXME: some of these might be better in a utils file
- @staticmethod
- def _camelcase_property_name(property_name):
- return re.sub(r'(^[^-])|-(.)', lambda match: (match.group(1) or match.group(2)).upper(), property_name)
-
- @staticmethod
- def _lower_first(s):
- return s[0].lower() + s[1:]
-
- @staticmethod
- def _upper_first(s):
- return s[0].upper() + s[1:]
-
- @template_expander.use_jinja("StyleBuilderFunctions.h.tmpl")
+ cc = camelcase_property_name(property['name'])
+ property['property_id'] = 'CSSProperty' + cc
+ cc = property['name_for_methods'] or cc.replace('Webkit', '')
+ property['camel_case_name'] = cc
+ set_if_none(property, 'type_name', 'E' + cc)
+ set_if_none(property, 'getter', lower_first(cc))
+ set_if_none(property, 'setter', 'set' + cc)
+ set_if_none(property, 'initial', 'initial' + cc)
+ if property['custom_all']:
+ property['custom_initial'] = True
+ property['custom_inherit'] = True
+ property['custom_value'] = True
+ property['should_declare_functions'] = not property['use_handlers_for'] and not property['direction_aware'] and not property['skip']
+
+ self._properties = dict((property['property_id'], property) for property in self._properties)
+
+ @template_expander.use_jinja('StyleBuilderFunctions.h.tmpl',
+ filters=filters)
def generate_style_builder_functions_h(self):
return {
- "properties": self._properties,
+ 'properties': self._properties,
}
- @template_expander.use_jinja("StyleBuilderFunctions.cpp.tmpl")
+ @template_expander.use_jinja('StyleBuilderFunctions.cpp.tmpl',
+ filters=filters)
def generate_style_builder_functions_cpp(self):
return {
- "properties": self._properties,
+ 'properties': self._properties,
}
- @template_expander.use_jinja("StyleBuilder.cpp.tmpl")
+ @template_expander.use_jinja('StyleBuilder.cpp.tmpl', filters=filters)
def generate_style_builder(self):
return {
- "properties": self._properties,
+ 'properties': self._properties,
}
-if __name__ == "__main__":
+if __name__ == '__main__':
in_generator.Maker(StyleBuilderWriter).main(sys.argv)