aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/text.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2013-08-27 17:36:37 -0400
committerJosh Matthews <josh@joshmatthews.net>2013-08-27 17:38:27 -0400
commitd31e308d3fd0f15d50865a003cc00d32f3a567c3 (patch)
treeed68d6143cc0a15609e7390d33f2c06e88a6fe44 /src/components/script/dom/text.rs
parent79956abb384177fb5035e5d1f00f1ac152e081e5 (diff)
downloadservo-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.rs55
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)
+ }
+}