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

Unified Diff: sdk/lib/html/scripts/css_code_generator.py

Issue 11691009: Moved most of html lib generating scripts into tools. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/html/scripts/all_tests.py ('k') | sdk/lib/html/scripts/dartdomgenerator.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/html/scripts/css_code_generator.py
diff --git a/sdk/lib/html/scripts/css_code_generator.py b/sdk/lib/html/scripts/css_code_generator.py
deleted file mode 100644
index 11bf7bcbf63ab04d2a66e2c3307fbbbe35bcd465..0000000000000000000000000000000000000000
--- a/sdk/lib/html/scripts/css_code_generator.py
+++ /dev/null
@@ -1,219 +0,0 @@
-#!/usr/bin/python2.6
-#
-# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-"""Generates CSSStyleDeclaration from css property definitions defined in WebKit."""
-
-import tempfile, os
-
-COMMENT_LINE_PREFIX = ' * '
-SOURCE_PATH = 'Source/WebCore/css/CSSPropertyNames.in'
-INPUT_URL = 'http://trac.webkit.org/export/latest/trunk/%s' % SOURCE_PATH
-INTERFACE_FILE = '../../html/src/CSSStyleDeclaration.dart'
-CLASS_FILE = '../../html/src/CSSStyleDeclarationWrappingImplementation.dart'
-
-def main():
- _, css_names_file = tempfile.mkstemp('.CSSPropertyNames.in')
- try:
- if os.system('wget %s -O %s' % (INPUT_URL, css_names_file)):
- return 1
- generate_code(css_names_file)
- print 'Successfully generated %s and %s' % (INTERFACE_FILE, CLASS_FILE)
- finally:
- os.remove(css_names_file)
-
-def camelCaseName(name):
- """Convert a CSS property name to a lowerCamelCase name."""
- name = name.replace('-webkit-', '')
- words = []
- for word in name.split('-'):
- if words:
- words.append(word.title())
- else:
- words.append(word)
- return ''.join(words)
-
-def generate_code(input_path):
- data = open(input_path).readlines()
-
- # filter CSSPropertyNames.in to only the properties
- data = [d[:-1] for d in data
- if len(d) > 1
- and not d.startswith('#')
- and not d.startswith('//')
- and not '=' in d]
-
- interface_file = open(INTERFACE_FILE, 'w')
- class_file = open(CLASS_FILE, 'w')
-
- interface_file.write("""
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit.
-// This file was generated by html/scripts/css_code_generator.py
-
-// Source of CSS properties:
-// %s
-
-// TODO(jacobr): add versions that take numeric values in px, miliseconds, etc.
-
-interface CSSStyleDeclaration {
-
- String get cssText;
-
- void set cssText(String value);
-
- int get length;
-
- CSSRule get parentRule;
-
- CSSValue getPropertyCSSValue(String propertyName);
-
- String getPropertyPriority(String propertyName);
-
- String getPropertyShorthand(String propertyName);
-
- String getPropertyValue(String propertyName);
-
- bool isPropertyImplicit(String propertyName);
-
- String item(int index);
-
- String removeProperty(String propertyName);
-
- void setProperty(String propertyName, String value, [String priority]);
-
-""".lstrip() % SOURCE_PATH)
-
-
- class_file.write("""
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// WARNING: Do not edit.
-// This file was generated by html/scripts/css_code_generator.py
-
-// Source of CSS properties:
-// %s
-
-// TODO(jacobr): add versions that take numeric values in px, miliseconds, etc.
-
-class CSSStyleDeclarationWrappingImplementation extends DOMWrapperBase implements CSSStyleDeclaration {
- static String _cachedBrowserPrefix;
-
- CSSStyleDeclarationWrappingImplementation._wrap(ptr) : super._wrap(ptr) {}
-
- static String get _browserPrefix {
- if (_cachedBrowserPrefix == null) {
- if (_Device.isFirefox) {
- _cachedBrowserPrefix = '-moz-';
- } else {
- _cachedBrowserPrefix = '-webkit-';
- }
- // TODO(jacobr): support IE 9.0 and Opera as well.
- }
- return _cachedBrowserPrefix;
- }
-
- String get cssText { return _ptr.cssText; }
-
- void set cssText(String value) { _ptr.cssText = value; }
-
- int get length { return _ptr.length; }
-
- CSSRule get parentRule { return LevelDom.wrapCSSRule(_ptr.parentRule); }
-
- CSSValue getPropertyCSSValue(String propertyName) {
- return LevelDom.wrapCSSValue(_ptr.getPropertyCSSValue(propertyName));
- }
-
- String getPropertyPriority(String propertyName) {
- return _ptr.getPropertyPriority(propertyName);
- }
-
- String getPropertyShorthand(String propertyName) {
- return _ptr.getPropertyShorthand(propertyName);
- }
-
- String getPropertyValue(String propertyName) {
- return _ptr.getPropertyValue(propertyName);
- }
-
- bool isPropertyImplicit(String propertyName) {
- return _ptr.isPropertyImplicit(propertyName);
- }
-
- String item(int index) {
- return _ptr.item(index);
- }
-
- String removeProperty(String propertyName) {
- return _ptr.removeProperty(propertyName);
- }
-
- void setProperty(String propertyName, String value, [String priority = '']) {
- _ptr.setProperty(propertyName, value, priority);
- }
-
- String get typeName { return "CSSStyleDeclaration"; }
-
-""".lstrip() % SOURCE_PATH)
-
- interface_lines = [];
- class_lines = [];
-
- seen = set()
- for prop in sorted(data, key=lambda p: camelCaseName(p)):
- camel_case_name = camelCaseName(prop)
- upper_camel_case_name = camel_case_name[0].upper() + camel_case_name[1:];
- css_name = prop.replace('-webkit-', '${_browserPrefix}')
- base_css_name = prop.replace('-webkit-', '')
-
- if base_css_name in seen:
- continue
- seen.add(base_css_name)
-
- comment = ' /** %s the value of "' + base_css_name + '" */'
-
- interface_lines.append(comment % 'Gets')
- interface_lines.append("""
- String get %s;
-
-""" % camel_case_name)
-
- interface_lines.append(comment % 'Sets')
- interface_lines.append("""
- void set %s(String value);
-
-""" % camel_case_name)
-
- class_lines.append('\n');
- class_lines.append(comment % 'Gets')
- class_lines.append("""
- String get %s =>
- getPropertyValue('%s');
-
-""" % (camel_case_name, css_name))
-
- class_lines.append(comment % 'Sets')
- class_lines.append("""
- void set %s(String value) {
- setProperty('%s', value, '');
- }
-""" % (camel_case_name, css_name))
-
- interface_file.write(''.join(interface_lines));
- interface_file.write('}\n')
- interface_file.close()
-
- class_file.write(''.join(class_lines));
- class_file.write('}\n')
- class_file.close()
-
-if __name__ == '__main__':
- main()
« no previous file with comments | « sdk/lib/html/scripts/all_tests.py ('k') | sdk/lib/html/scripts/dartdomgenerator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698