diff options
author | Alexandrov Sergey <splavgm@gmail.com> | 2016-10-05 00:16:45 +0300 |
---|---|---|
committer | Alexandrov Sergey <splavgm@gmail.com> | 2016-10-06 18:22:53 +0300 |
commit | 9876020c2258ef833044596944ab0aa5370b0a74 (patch) | |
tree | f563c5ce4efbda8105eadd206f5b4bbe24073a8d /components/script/dom/svggraphicselement.rs | |
parent | 318b23ed0047cc39625ca2f33a55d647b5886019 (diff) | |
download | servo-9876020c2258ef833044596944ab0aa5370b0a74.tar.gz servo-9876020c2258ef833044596944ab0aa5370b0a74.zip |
add SVGElement, SVGGraphicsElement interfaces and SVGSVGElement element
Diffstat (limited to 'components/script/dom/svggraphicselement.rs')
-rw-r--r-- | components/script/dom/svggraphicselement.rs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/components/script/dom/svggraphicselement.rs b/components/script/dom/svggraphicselement.rs new file mode 100644 index 00000000000..bd7c8d581f7 --- /dev/null +++ b/components/script/dom/svggraphicselement.rs @@ -0,0 +1,48 @@ +/* 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::codegen::Bindings::SVGGraphicsElementBinding; +use dom::bindings::inheritance::Castable; +use dom::bindings::js::Root; +use dom::bindings::str::DOMString; +use dom::document::Document; +use dom::node::Node; +use dom::svgelement::SVGElement; +use dom::virtualmethods::VirtualMethods; +use string_cache::Atom; +use style::element_state::ElementState; + +#[dom_struct] +pub struct SVGGraphicsElement { + svgelement: SVGElement, +} + +impl SVGGraphicsElement { + pub fn new_inherited(tag_name: Atom, prefix: Option<DOMString>, + document: &Document) -> SVGGraphicsElement { + SVGGraphicsElement::new_inherited_with_state(ElementState::empty(), tag_name, prefix, document) + } + + pub fn new_inherited_with_state(state: ElementState, tag_name: Atom, + prefix: Option<DOMString>, document: &Document) + -> SVGGraphicsElement { + SVGGraphicsElement { + svgelement: + SVGElement::new_inherited_with_state(state, tag_name, prefix, document), + } + } + + #[allow(unrooted_must_root)] + pub fn new(local_name: Atom, prefix: Option<DOMString>, document: &Document) -> Root<SVGGraphicsElement> { + Node::reflect_node(box SVGGraphicsElement::new_inherited(local_name, prefix, document), + document, + SVGGraphicsElementBinding::Wrap) + } +} + +impl VirtualMethods for SVGGraphicsElement { + fn super_type(&self) -> Option<&VirtualMethods> { + Some(self.upcast::<SVGElement>() as &VirtualMethods) + } +} |