diff options
Diffstat (limited to 'src/components/script/dom/htmlheadingelement.rs')
-rw-r--r-- | src/components/script/dom/htmlheadingelement.rs | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/components/script/dom/htmlheadingelement.rs b/src/components/script/dom/htmlheadingelement.rs index f15075f30cd..ecae9910b6d 100644 --- a/src/components/script/dom/htmlheadingelement.rs +++ b/src/components/script/dom/htmlheadingelement.rs @@ -3,12 +3,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::HTMLHeadingElementBinding; -use dom::document::AbstractDocument; +use dom::bindings::codegen::InheritTypes::HTMLHeadingElementDerived; +use dom::bindings::js::JS; +use dom::document::Document; use dom::element::HTMLHeadingElementTypeId; +use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::htmlelement::HTMLElement; -use dom::node::{AbstractNode, Node}; +use dom::node::{Node, ElementNodeTypeId}; use servo_util::str::DOMString; +#[deriving(Encodable)] pub enum HeadingLevel { Heading1, Heading2, @@ -18,22 +22,32 @@ pub enum HeadingLevel { Heading6, } +#[deriving(Encodable)] pub struct HTMLHeadingElement { htmlelement: HTMLElement, level: HeadingLevel, } +impl HTMLHeadingElementDerived for EventTarget { + fn is_htmlheadingelement(&self) -> bool { + match self.type_id { + NodeTargetTypeId(ElementNodeTypeId(HTMLHeadingElementTypeId)) => true, + _ => false + } + } +} + impl HTMLHeadingElement { - pub fn new_inherited(localName: DOMString, document: AbstractDocument, level: HeadingLevel) -> HTMLHeadingElement { + pub fn new_inherited(localName: DOMString, document: JS<Document>, level: HeadingLevel) -> HTMLHeadingElement { HTMLHeadingElement { htmlelement: HTMLElement::new_inherited(HTMLHeadingElementTypeId, localName, document), level: level, } } - pub fn new(localName: DOMString, document: AbstractDocument, level: HeadingLevel) -> AbstractNode { - let element = HTMLHeadingElement::new_inherited(localName, document, level); - Node::reflect_node(@mut element, document, HTMLHeadingElementBinding::Wrap) + pub fn new(localName: DOMString, document: &JS<Document>, level: HeadingLevel) -> JS<HTMLHeadingElement> { + let element = HTMLHeadingElement::new_inherited(localName, document.clone(), level); + Node::reflect_node(~element, document, HTMLHeadingElementBinding::Wrap) } } |