aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2013-10-31 15:31:15 +0100
committerMs2ger <ms2ger@gmail.com>2013-10-31 15:41:35 +0100
commita972c470a772c27d4a999aca65ad5e40d7dea035 (patch)
tree5c3cd46d7383961cfb9157f74e7c09ce4e92fe89 /src
parent618447445f8af2be4a4f2aaed5e586d9c02c3137 (diff)
downloadservo-a972c470a772c27d4a999aca65ad5e40d7dea035.tar.gz
servo-a972c470a772c27d4a999aca65ad5e40d7dea035.zip
Introduce HTMLTable{Data,Header}CellElement::new.
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/htmltablecellelement.rs2
-rw-r--r--src/components/script/dom/htmltabledatacellelement.rs17
-rw-r--r--src/components/script/dom/htmltableheadercellelement.rs17
-rw-r--r--src/components/script/html/hubbub_html_parser.rs16
4 files changed, 37 insertions, 15 deletions
diff --git a/src/components/script/dom/htmltablecellelement.rs b/src/components/script/dom/htmltablecellelement.rs
index 365030b90be..771cd389ecb 100644
--- a/src/components/script/dom/htmltablecellelement.rs
+++ b/src/components/script/dom/htmltablecellelement.rs
@@ -12,7 +12,7 @@ pub struct HTMLTableCellElement {
}
impl HTMLTableCellElement {
- pub fn new(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> HTMLTableCellElement {
+ pub fn new_inherited(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> HTMLTableCellElement {
HTMLTableCellElement {
htmlelement: HTMLElement::new(type_id, tag_name, document)
}
diff --git a/src/components/script/dom/htmltabledatacellelement.rs b/src/components/script/dom/htmltabledatacellelement.rs
index f0a69d97409..4b3dda09745 100644
--- a/src/components/script/dom/htmltabledatacellelement.rs
+++ b/src/components/script/dom/htmltabledatacellelement.rs
@@ -2,8 +2,25 @@
* 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::codegen::HTMLTableDataCellElementBinding;
+use dom::document::AbstractDocument;
+use dom::element::HTMLTableDataCellElementTypeId;
use dom::htmltablecellelement::HTMLTableCellElement;
+use dom::node::{AbstractNode, Node, ScriptView};
pub struct HTMLTableDataCellElement {
htmltablecellelement: HTMLTableCellElement,
}
+
+impl HTMLTableDataCellElement {
+ pub fn new_inherited(localName: ~str, document: AbstractDocument) -> HTMLTableDataCellElement {
+ HTMLTableDataCellElement {
+ htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLTableDataCellElementTypeId, localName, document)
+ }
+ }
+
+ pub fn new(localName: ~str, document: AbstractDocument) -> AbstractNode<ScriptView> {
+ let element = HTMLTableDataCellElement::new_inherited(localName, document);
+ Node::reflect_node(@mut element, document, HTMLTableDataCellElementBinding::Wrap)
+ }
+}
diff --git a/src/components/script/dom/htmltableheadercellelement.rs b/src/components/script/dom/htmltableheadercellelement.rs
index e7bb4b0fa38..59a9d596aea 100644
--- a/src/components/script/dom/htmltableheadercellelement.rs
+++ b/src/components/script/dom/htmltableheadercellelement.rs
@@ -2,8 +2,25 @@
* 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::codegen::HTMLTableHeaderCellElementBinding;
+use dom::document::AbstractDocument;
+use dom::element::HTMLTableHeaderCellElementTypeId;
use dom::htmltablecellelement::HTMLTableCellElement;
+use dom::node::{AbstractNode, Node, ScriptView};
pub struct HTMLTableHeaderCellElement {
htmltablecellelement: HTMLTableCellElement,
}
+
+impl HTMLTableHeaderCellElement {
+ pub fn new_inherited(localName: ~str, document: AbstractDocument) -> HTMLTableHeaderCellElement {
+ HTMLTableHeaderCellElement {
+ htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLTableHeaderCellElementTypeId, localName, document)
+ }
+ }
+
+ pub fn new(localName: ~str, document: AbstractDocument) -> AbstractNode<ScriptView> {
+ let element = HTMLTableHeaderCellElement::new_inherited(localName, document);
+ Node::reflect_node(@mut element, document, HTMLTableHeaderCellElementBinding::Wrap)
+ }
+}
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs
index a8587de354e..57053657185 100644
--- a/src/components/script/html/hubbub_html_parser.rs
+++ b/src/components/script/html/hubbub_html_parser.rs
@@ -67,17 +67,6 @@ macro_rules! handle_newable_element(
}
)
)
-macro_rules! handle_htmltablecellelement(
- ($cx: expr,
- $document: expr,
- $tag: expr,
- $string: expr,
- $type_id: expr,
- $ctor: ident) => (
- handle_element_base!(htmltablecellelement, HTMLTableCellElement,
- $cx, $document, $tag, $string, $type_id, $ctor, []);
- )
-)
macro_rules! handle_element_base(
($parent: ident,
$parent_init: ident,
@@ -299,11 +288,10 @@ pub fn build_element_from_tag(cx: *JSContext, tag: &str, document: AbstractDocum
handle_htmlelement!(cx, document, tag, "small", HTMLElementTypeId, HTMLElement);
handle_newable_element!(document, tag, "audio", HTMLAudioElement);
+ handle_newable_element!(document, tag, "td", HTMLTableDataCellElement);
+ handle_newable_element!(document, tag, "th", HTMLTableHeaderCellElement);
handle_newable_element!(document, tag, "video", HTMLVideoElement);
- handle_htmltablecellelement!(cx, document, tag, "td", HTMLTableDataCellElementTypeId, HTMLTableDataCellElement);
- handle_htmltablecellelement!(cx, document, tag, "th", HTMLTableHeaderCellElementTypeId, HTMLTableHeaderCellElement);
-
return HTMLUnknownElement::new(tag.to_str(), document);
}