diff options
author | Josh Matthews <josh@joshmatthews.net> | 2013-08-27 17:36:37 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2013-08-27 17:38:27 -0400 |
commit | d31e308d3fd0f15d50865a003cc00d32f3a567c3 (patch) | |
tree | ed68d6143cc0a15609e7390d33f2c06e88a6fe44 /src/components/script/dom/text.rs | |
parent | 79956abb384177fb5035e5d1f00f1ac152e081e5 (diff) | |
download | servo-d31e308d3fd0f15d50865a003cc00d32f3a567c3.tar.gz servo-d31e308d3fd0f15d50865a003cc00d32f3a567c3.zip |
Remove many long ugly lists of imports of HTML element types. They can now be obtained via dom::types::*, which is autogenerated.
Diffstat (limited to 'src/components/script/dom/text.rs')
-rw-r--r-- | src/components/script/dom/text.rs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/components/script/dom/text.rs b/src/components/script/dom/text.rs new file mode 100644 index 00000000000..95926d12d92 --- /dev/null +++ b/src/components/script/dom/text.rs @@ -0,0 +1,55 @@ +/* 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, ErrorResult, null_string, CacheableWrapper}; +use dom::bindings::utils::{BindingObject, WrapperCache}; +use dom::bindings::codegen::TextBinding; +use dom::characterdata::CharacterData; +use dom::node::{AbstractNode, ScriptView, Node, TextNodeTypeId}; +use dom::window::Window; +use js::jsapi::{JSContext, JSObject}; + +/// An HTML text node. +pub struct Text { + parent: CharacterData, +} + +impl Text { + /// Creates a new HTML text node. + pub fn new(text: ~str) -> Text { + Text { + parent: CharacterData::new(TextNodeTypeId, text) + } + } + + pub fn Constructor(owner: @mut Window, text: &DOMString, _rv: &mut ErrorResult) -> AbstractNode<ScriptView> { + let cx = unsafe {(*owner.page).js_info.get_ref().js_compartment.cx.ptr}; + unsafe { Node::as_abstract_node(cx, @Text::new(text.to_str())) } + } + + pub fn SplitText(&self, _offset: u32, _rv: &mut ErrorResult) -> AbstractNode<ScriptView> { + fail!("unimplemented") + } + + pub fn GetWholeText(&self, _rv: &mut ErrorResult) -> DOMString { + null_string + } +} + +impl CacheableWrapper for Text { + fn get_wrappercache(&mut self) -> &mut WrapperCache { + self.parent.get_wrappercache() + } + + fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { + let mut unused = false; + TextBinding::Wrap(cx, scope, self, &mut unused) + } +} + +impl BindingObject for Text { + fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> { + self.parent.GetParentObject(cx) + } +} |