From f7bc8beb18b1b2e89d6bd3c221a86d5750b7f065 Mon Sep 17 00:00:00 2001 From: Tetsuharu OHZEKI Date: Sat, 31 Aug 2013 03:28:04 +0900 Subject: [PATCH] Generate bindings for HTMLLegendElement. --- .../script/dom/bindings/codegen/Bindings.conf | 1 + .../bindings/codegen/HTMLLegendElement.webidl | 29 +++++++++++++++++++ src/components/script/dom/bindings/element.rs | 2 ++ src/components/script/dom/bindings/node.rs | 1 + src/components/script/dom/element.rs | 1 + .../script/dom/htmllegendelement.rs | 19 ++++++++++++ .../script/html/hubbub_html_parser.rs | 1 + src/components/script/script.rc | 1 + 8 files changed, 55 insertions(+) create mode 100644 src/components/script/dom/bindings/codegen/HTMLLegendElement.webidl create mode 100644 src/components/script/dom/htmllegendelement.rs diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 84da68409d8..d29f8e3222f 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -580,6 +580,7 @@ addHTMLElement('HTMLHRElement') addHTMLElement('HTMLIFrameElement') addHTMLElement('HTMLImageElement') addHTMLElement('HTMLInputElement') +addHTMLElement('HTMLLegendElement') addHTMLElement('HTMLLIElement') addHTMLElement('HTMLLinkElement') addHTMLElement('HTMLMapElement') diff --git a/src/components/script/dom/bindings/codegen/HTMLLegendElement.webidl b/src/components/script/dom/bindings/codegen/HTMLLegendElement.webidl new file mode 100644 index 00000000000..9a98a441b6f --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLLegendElement.webidl @@ -0,0 +1,29 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. + * + * The origin of this IDL file is + * http://www.whatwg.org/specs/web-apps/current-work/#the-legend-element + * http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis + * + * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and + * Opera Software ASA. You are granted a license to use, reproduce + * and create derivative works of this document. + */ + +// import from http://mxr.mozilla.org/mozilla-central/source/dom/webidl/ + +// http://www.whatwg.org/specs/web-apps/current-work/#the-legend-element +interface HTMLLegendElement : HTMLElement { +/* + FIXME: + readonly attribute HTMLFormElement? form; +*/ +}; + +// http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis +partial interface HTMLLegendElement { + [SetterThrows] + attribute DOMString align; +}; diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs index 268babe1740..95eae0bc7e3 100644 --- a/src/components/script/dom/bindings/element.rs +++ b/src/components/script/dom/bindings/element.rs @@ -92,6 +92,8 @@ generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap) generate_binding_object!(HTMLImageElement) generate_cacheable_wrapper!(HTMLInputElement, HTMLInputElementBinding::Wrap) generate_binding_object!(HTMLInputElement) +generate_cacheable_wrapper!(HTMLLegendElement, HTMLLegendElementBinding::Wrap) +generate_binding_object!(HTMLLegendElement) generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap) generate_binding_object!(HTMLLIElement) generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap) diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 3a55a781c18..39260bb3ae6 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -49,6 +49,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode) -> *JSObject ElementNodeTypeId(HTMLIframeElementTypeId) => generate_element!(HTMLIFrameElement), ElementNodeTypeId(HTMLImageElementTypeId) => generate_element!(HTMLImageElement), ElementNodeTypeId(HTMLInputElementTypeId) => generate_element!(HTMLInputElement), + ElementNodeTypeId(HTMLLegendElementTypeId) => generate_element!(HTMLLegendElement), ElementNodeTypeId(HTMLLIElementTypeId) => generate_element!(HTMLLIElement), ElementNodeTypeId(HTMLLinkElementTypeId) => generate_element!(HTMLLinkElement), ElementNodeTypeId(HTMLMapElementTypeId) => generate_element!(HTMLMapElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index c06822ae808..038494c8d36 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -73,6 +73,7 @@ pub enum ElementTypeId { HTMLIframeElementTypeId, HTMLImageElementTypeId, HTMLInputElementTypeId, + HTMLLegendElementTypeId, HTMLLinkElementTypeId, HTMLLIElementTypeId, HTMLMapElementTypeId, diff --git a/src/components/script/dom/htmllegendelement.rs b/src/components/script/dom/htmllegendelement.rs new file mode 100644 index 00000000000..f7f67e87265 --- /dev/null +++ b/src/components/script/dom/htmllegendelement.rs @@ -0,0 +1,19 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use dom::bindings::utils::{DOMString, null_string, ErrorResult}; +use dom::htmlelement::HTMLElement; + +pub struct HTMLLegendElement { + parent: HTMLElement, +} + +impl HTMLLegendElement { + pub fn Align(&self) -> DOMString { + null_string + } + + pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) { + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index c2840c5ecde..e01562f6f32 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -208,6 +208,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode handle_element!(cx, tag, "head", HTMLHeadElementTypeId, HTMLHeadElement, []); handle_element!(cx, tag, "html", HTMLHtmlElementTypeId, HTMLHtmlElement, []); handle_element!(cx, tag, "input", HTMLInputElementTypeId, HTMLInputElement, []); + handle_element!(cx, tag, "legend", HTMLLegendElementTypeId, HTMLLegendElement, []); handle_element!(cx, tag, "link", HTMLLinkElementTypeId, HTMLLinkElement, []); handle_element!(cx, tag, "li", HTMLLIElementTypeId, HTMLLIElement, []); handle_element!(cx, tag, "map", HTMLMapElementTypeId, HTMLMapElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index b8f9a112513..8f47fe00362 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -84,6 +84,7 @@ pub mod dom { pub mod htmliframeelement; pub mod htmlimageelement; pub mod htmlinputelement; + pub mod htmllegendelement; pub mod htmllielement; pub mod htmllinkelement; pub mod htmlmapelement;