mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Remove many long ugly lists of imports of HTML element types. They can now be obtained via dom::types::*, which is autogenerated.
This commit is contained in:
parent
79956abb38
commit
d31e308d3f
19 changed files with 327 additions and 495 deletions
|
@ -230,6 +230,12 @@ DOMInterfaces = {
|
|||
'pointerType': '',
|
||||
},
|
||||
|
||||
'HTMLFormElement': {
|
||||
'nativeType': 'AbstractNode<ScriptView>',
|
||||
'pointerType': '',
|
||||
'register': False
|
||||
},
|
||||
|
||||
'HTMLOptionsCollection': [
|
||||
{
|
||||
'nativeType': 'nsHTMLOptionCollection',
|
||||
|
@ -565,7 +571,7 @@ addHTMLElement('HTMLElement')
|
|||
addHTMLElement('HTMLEmbedElement')
|
||||
addHTMLElement('HTMLFieldSetElement')
|
||||
addHTMLElement('HTMLFontElement')
|
||||
addHTMLElement('HTMLFormElement')
|
||||
#addHTMLElement('HTMLFormElement')
|
||||
addHTMLElement('HTMLFrameElement')
|
||||
addHTMLElement('HTMLFrameSetElement')
|
||||
addHTMLElement('HTMLHeadElement')
|
||||
|
|
|
@ -4612,75 +4612,15 @@ class CGBindingRoot(CGThing):
|
|||
'js::jsapi::*',
|
||||
'js::jsfriendapi::bindgen::*',
|
||||
'js::glue::*',
|
||||
'dom::characterdata::CharacterData', #XXXjdm
|
||||
'dom::node::{AbstractNode, Node, Text}', #XXXjdm
|
||||
'dom::document::{Document, AbstractDocument}', #XXXjdm
|
||||
'dom::element::{Element, HTMLHeadElement, HTMLHtmlElement}', #XXXjdm
|
||||
'dom::element::{HTMLDivElement, HTMLSpanElement, HTMLParagraphElement}', #XXXjdm
|
||||
'dom::htmlanchorelement::HTMLAnchorElement', #XXXjdm
|
||||
'dom::htmlappletelement::HTMLAppletElement', #XXXjune0cho
|
||||
'dom::htmlareaelement::HTMLAreaElement', #XXXjune0cho
|
||||
'dom::htmlbaseelement::HTMLBaseElement', #XXXjune0cho
|
||||
'dom::htmlbodyelement::HTMLBodyElement', #XXXjune0cho
|
||||
'dom::htmlbrelement::HTMLBRElement', #XXXrecrack
|
||||
'dom::htmlbuttonelement::HTMLButtonElement', #XXXjdm
|
||||
'dom::htmlcanvaselement::HTMLCanvasElement',
|
||||
'dom::htmldataelement::HTMLDataElement', #XXXjune0cho
|
||||
'dom::htmldatalistelement::HTMLDataListElement',
|
||||
'dom::htmldlistelement::HTMLDListElement',
|
||||
'dom::htmldirectoryelement::HTMLDirectoryElement',
|
||||
'dom::htmlelement::HTMLElement', #XXXjdm
|
||||
'dom::htmlembedelement::HTMLEmbedElement', #XXXjdm
|
||||
'dom::htmlfieldsetelement::HTMLFieldSetElement', #XXXjdm
|
||||
'dom::htmlfontelement::HTMLFontElement', #XXXjdm
|
||||
'dom::htmlframeelement::HTMLFrameElement', #XXXjdm
|
||||
'dom::htmlframesetelement::HTMLFrameSetElement', #XXXjdm
|
||||
'dom::htmldocument::HTMLDocument', #XXXjdm
|
||||
'dom::htmlheadingelement::HTMLHeadingElement',
|
||||
'dom::htmlhrelement::HTMLHRElement',
|
||||
'dom::htmliframeelement::HTMLIFrameElement', #XXXjdm
|
||||
'dom::htmlimageelement::HTMLImageElement', #XXXjdm
|
||||
'dom::htmlinputelement::HTMLInputElement',
|
||||
'dom::htmllielement::HTMLLIElement',
|
||||
'dom::htmllinkelement::HTMLLinkElement', #XXXrecrack
|
||||
'dom::htmlmapelement::HTMLMapElement',
|
||||
'dom::htmlmetaelement::HTMLMetaElement',
|
||||
'dom::htmlolistelement::HTMLOListElement',
|
||||
'dom::htmlprogresselement::HTMLProgressElement',
|
||||
'dom::htmlquoteelement::HTMLQuoteElement',
|
||||
'dom::htmlscriptelement::HTMLScriptElement',
|
||||
'dom::htmlsourceelement::HTMLSourceElement',
|
||||
'dom::htmlstyleelement::HTMLStyleElement',
|
||||
'dom::htmltablecaptionelement::HTMLTableCaptionElement',
|
||||
'dom::htmltableelement::HTMLTableElement',
|
||||
'dom::htmltablecellelement::HTMLTableCellElement',
|
||||
'dom::htmltablecolelement::HTMLTableColElement',
|
||||
'dom::htmltablerowelement::HTMLTableRowElement',
|
||||
'dom::htmltablesectionelement::HTMLTableSectionElement',
|
||||
'dom::htmltextareaelement::HTMLTextAreaElement',
|
||||
'dom::htmltimeelement::HTMLTimeElement',
|
||||
'dom::htmltitleelement::HTMLTitleElement', #XXXyusukesuzuki
|
||||
'dom::htmlulistelement::HTMLUListElement',
|
||||
'dom::types::*',
|
||||
'dom::bindings::utils::*',
|
||||
'dom::bindings::conversions::*',
|
||||
'dom::blob::*', #XXXjdm
|
||||
'dom::clientrect::*', #XXXjdm
|
||||
'dom::clientrectlist::*', #XXXjdm
|
||||
'dom::htmlcollection::*', #XXXjdm
|
||||
'dom::bindings::proxyhandler::*',
|
||||
'dom::domparser::*', #XXXjdm
|
||||
'dom::event::*', #XXXjdm
|
||||
'dom::eventtarget::*', #XXXjdm
|
||||
'dom::formdata::*', #XXXjdm
|
||||
'dom::mouseevent::*', #XXXjdm
|
||||
'dom::uievent::*', #XXXjdm
|
||||
'dom::validitystate::*', #XXXjdm
|
||||
'dom::windowproxy::*', #XXXjdm
|
||||
'dom::window::Window', #XXXjdm
|
||||
'dom::bindings::codegen::*', #XXXjdm
|
||||
'script_task::{JSPageInfo, page_from_context}',
|
||||
'dom::bindings::utils::EnumEntry',
|
||||
'dom::node::ScriptView',
|
||||
'dom::bindings::proxyhandler::*',
|
||||
'dom::document::AbstractDocument',
|
||||
'dom::node::{AbstractNode, ScriptView}',
|
||||
'servo_util::vec::zip_copies',
|
||||
'std::cast',
|
||||
'std::libc',
|
||||
|
@ -4782,3 +4722,18 @@ class GlobalGenRoots():
|
|||
# Done.
|
||||
return curr
|
||||
|
||||
@staticmethod
|
||||
def InterfaceTypes(config):
|
||||
|
||||
descriptors = [d.name for d in config.getDescriptors(register=True)]
|
||||
curr = CGList([CGGeneric(declare="pub use dom::%s::%s;\n" % (name.lower(), name)) for name in descriptors])
|
||||
curr = CGWrapper(curr, pre=AUTOGENERATED_WARNING_COMMENT)
|
||||
return curr
|
||||
|
||||
@staticmethod
|
||||
def BindingDeclarations(config):
|
||||
|
||||
descriptors = [d.name for d in config.getDescriptors(register=True)]
|
||||
curr = CGList([CGGeneric(declare="pub mod %sBinding;\n" % name) for name in descriptors])
|
||||
curr = CGWrapper(curr, pre=AUTOGENERATED_WARNING_COMMENT)
|
||||
return curr
|
||||
|
|
|
@ -80,6 +80,12 @@ def main():
|
|||
# Generate the common code.
|
||||
generate_file(config, 'RegisterBindings', 'declare+define')
|
||||
|
||||
# Generate the type list.
|
||||
generate_file(config, 'InterfaceTypes', 'declare+define')
|
||||
|
||||
# Generate the module declarations.
|
||||
generate_file(config, 'BindingDeclarations', 'declare+define')
|
||||
|
||||
#XXXjdm No union support yet
|
||||
#generate_file(config, 'UnionTypes', 'declare')
|
||||
#generate_file(config, 'UnionConversions', 'declare')
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
* 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::types::*;
|
||||
use dom::bindings::codegen::*;
|
||||
use dom::bindings::node::unwrap;
|
||||
use dom::bindings::utils::jsval_to_str;
|
||||
use dom::bindings::utils::{domstring_to_jsval, WrapNewBindingObject};
|
||||
use dom::bindings::utils::{str, CacheableWrapper, DOM_OBJECT_SLOT, DOMString};
|
||||
use dom::bindings::utils::{BindingObject, WrapperCache};
|
||||
use dom::element::Element;
|
||||
use dom::element::{HTMLImageElementTypeId, HTMLHeadElementTypeId, HTMLScriptElementTypeId,
|
||||
HTMLDivElementTypeId};
|
||||
|
@ -306,3 +309,123 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> jsobj {
|
|||
|
||||
return obj;
|
||||
}
|
||||
|
||||
pub macro_rules! generate_cacheable_wrapper(
|
||||
($name: ident, $wrap: path) => (
|
||||
impl CacheableWrapper for $name {
|
||||
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;
|
||||
$wrap(cx, scope, self, &mut unused)
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
pub macro_rules! generate_binding_object(
|
||||
($name: ident) => (
|
||||
impl BindingObject for $name {
|
||||
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
|
||||
self.parent.GetParentObject(cx)
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
generate_cacheable_wrapper!(HTMLHeadElement, HTMLHeadElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHeadElement)
|
||||
generate_cacheable_wrapper!(HTMLAnchorElement, HTMLAnchorElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLAnchorElement)
|
||||
generate_cacheable_wrapper!(HTMLAppletElement, HTMLAppletElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLAppletElement)
|
||||
generate_cacheable_wrapper!(HTMLAreaElement, HTMLAreaElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLAreaElement)
|
||||
generate_cacheable_wrapper!(HTMLBaseElement, HTMLBaseElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLBaseElement)
|
||||
generate_cacheable_wrapper!(HTMLBodyElement, HTMLBodyElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLBodyElement)
|
||||
generate_cacheable_wrapper!(HTMLButtonElement, HTMLButtonElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLButtonElement)
|
||||
generate_cacheable_wrapper!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLCanvasElement)
|
||||
generate_cacheable_wrapper!(HTMLDataListElement, HTMLDataListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDataListElement)
|
||||
generate_cacheable_wrapper!(HTMLDListElement, HTMLDListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDListElement)
|
||||
generate_cacheable_wrapper!(HTMLFrameElement, HTMLFrameElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFrameElement)
|
||||
generate_cacheable_wrapper!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFrameSetElement)
|
||||
generate_cacheable_wrapper!(HTMLBRElement, HTMLBRElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLBRElement)
|
||||
generate_cacheable_wrapper!(HTMLHRElement, HTMLHRElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHRElement)
|
||||
generate_cacheable_wrapper!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHtmlElement)
|
||||
generate_cacheable_wrapper!(HTMLDataElement, HTMLDataElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDataElement)
|
||||
generate_cacheable_wrapper!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDirectoryElement)
|
||||
generate_cacheable_wrapper!(HTMLDivElement, HTMLDivElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDivElement)
|
||||
generate_cacheable_wrapper!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLEmbedElement)
|
||||
generate_cacheable_wrapper!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFieldSetElement)
|
||||
generate_cacheable_wrapper!(HTMLFontElement, HTMLFontElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFontElement)
|
||||
generate_cacheable_wrapper!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHeadingElement)
|
||||
generate_cacheable_wrapper!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLIFrameElement)
|
||||
generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLImageElement)
|
||||
generate_cacheable_wrapper!(HTMLInputElement, HTMLInputElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLInputElement)
|
||||
generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLLIElement)
|
||||
generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLLinkElement)
|
||||
generate_cacheable_wrapper!(HTMLMapElement, HTMLMapElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLMapElement)
|
||||
generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLMetaElement)
|
||||
generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLOListElement)
|
||||
generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLParagraphElement)
|
||||
generate_cacheable_wrapper!(HTMLProgressElement, HTMLProgressElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLProgressElement)
|
||||
generate_cacheable_wrapper!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLQuoteElement)
|
||||
generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLScriptElement)
|
||||
generate_cacheable_wrapper!(HTMLSourceElement, HTMLSourceElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLSourceElement)
|
||||
generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLSpanElement)
|
||||
generate_cacheable_wrapper!(HTMLStyleElement, HTMLStyleElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLStyleElement)
|
||||
generate_cacheable_wrapper!(HTMLTableElement, HTMLTableElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableElement)
|
||||
generate_cacheable_wrapper!(HTMLTableCaptionElement, HTMLTableCaptionElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableCaptionElement)
|
||||
generate_cacheable_wrapper!(HTMLTableCellElement, HTMLTableCellElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableCellElement)
|
||||
generate_cacheable_wrapper!(HTMLTableColElement, HTMLTableColElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableColElement)
|
||||
generate_cacheable_wrapper!(HTMLTableRowElement, HTMLTableRowElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableRowElement)
|
||||
generate_cacheable_wrapper!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableSectionElement)
|
||||
generate_cacheable_wrapper!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTextAreaElement)
|
||||
generate_cacheable_wrapper!(HTMLTitleElement, HTMLTitleElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTitleElement)
|
||||
generate_cacheable_wrapper!(HTMLTimeElement, HTMLTimeElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTimeElement)
|
||||
generate_cacheable_wrapper!(HTMLUListElement, HTMLUListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLUListElement)
|
||||
|
|
|
@ -25,52 +25,9 @@ use dom::element::{HTMLElementTypeId,
|
|||
HTMLTableColElementTypeId,
|
||||
HTMLTableRowElementTypeId, HTMLTableSectionElementTypeId, HTMLTimeElementTypeId,
|
||||
HTMLTitleElementTypeId, HTMLUListElementTypeId, HTMLDListElementTypeId};
|
||||
use dom::element::{HTMLHeadElement,HTMLHtmlElement, HTMLDivElement, HTMLParagraphElement, HTMLSpanElement};
|
||||
use dom::htmlelement::HTMLElement;
|
||||
use dom::htmlanchorelement::HTMLAnchorElement;
|
||||
use dom::htmlappletelement::HTMLAppletElement;
|
||||
use dom::htmlareaelement::HTMLAreaElement;
|
||||
use dom::htmlbaseelement::HTMLBaseElement;
|
||||
use dom::htmlbodyelement::HTMLBodyElement;
|
||||
use dom::htmlbuttonelement::HTMLButtonElement;
|
||||
use dom::htmlhrelement::HTMLHRElement;
|
||||
use dom::htmlbrelement::HTMLBRElement;
|
||||
use dom::htmlcanvaselement::HTMLCanvasElement;
|
||||
use dom::htmldataelement::HTMLDataElement;
|
||||
use dom::htmldatalistelement::HTMLDataListElement;
|
||||
use dom::htmldirectoryelement::HTMLDirectoryElement;
|
||||
use dom::htmldlistelement::HTMLDListElement;
|
||||
use dom::htmlembedelement::HTMLEmbedElement;
|
||||
use dom::htmlfieldsetelement::HTMLFieldSetElement;
|
||||
use dom::htmlfontelement::HTMLFontElement;
|
||||
use dom::htmlframeelement::HTMLFrameElement;
|
||||
use dom::htmlframesetelement::HTMLFrameSetElement;
|
||||
use dom::htmlheadingelement::HTMLHeadingElement;
|
||||
use dom::htmliframeelement::HTMLIFrameElement;
|
||||
use dom::htmlimageelement::HTMLImageElement;
|
||||
use dom::htmlinputelement::HTMLInputElement;
|
||||
use dom::htmllielement::HTMLLIElement;
|
||||
use dom::htmllinkelement::HTMLLinkElement;
|
||||
use dom::htmlmapelement::HTMLMapElement;
|
||||
use dom::htmlmetaelement::HTMLMetaElement;
|
||||
use dom::htmlolistelement::HTMLOListElement;
|
||||
use dom::htmlprogresselement::HTMLProgressElement;
|
||||
use dom::htmlquoteelement::HTMLQuoteElement;
|
||||
use dom::htmlscriptelement::HTMLScriptElement;
|
||||
use dom::htmlsourceelement::HTMLSourceElement;
|
||||
use dom::htmlstyleelement::HTMLStyleElement;
|
||||
use dom::htmltableelement::HTMLTableElement;
|
||||
use dom::htmltablecaptionelement::HTMLTableCaptionElement;
|
||||
use dom::htmltablecellelement::HTMLTableCellElement;
|
||||
use dom::htmltablecolelement::HTMLTableColElement;
|
||||
use dom::htmltablerowelement::HTMLTableRowElement;
|
||||
use dom::htmltablesectionelement::HTMLTableSectionElement;
|
||||
use dom::htmltextareaelement::HTMLTextAreaElement;
|
||||
use dom::htmltimeelement::HTMLTimeElement;
|
||||
use dom::htmltitleelement::HTMLTitleElement;
|
||||
use dom::htmlulistelement::HTMLUListElement;
|
||||
use dom::types::*;
|
||||
use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId};
|
||||
use dom::node::{DoctypeNodeTypeId, ScriptView, Text};
|
||||
use dom::node::{DoctypeNodeTypeId, ScriptView};
|
||||
|
||||
use std::cast;
|
||||
use std::libc::c_uint;
|
||||
|
|
|
@ -6,8 +6,9 @@ use dom::bindings::element;
|
|||
use dom::bindings::node::unwrap;
|
||||
use dom::bindings::utils;
|
||||
use dom::bindings::utils::{DOM_OBJECT_SLOT, CacheableWrapper};
|
||||
use dom::node::{AbstractNode, Text, Comment, Doctype, TextNodeTypeId, CommentNodeTypeId};
|
||||
use dom::node::{AbstractNode, Comment, Doctype, TextNodeTypeId, CommentNodeTypeId};
|
||||
use dom::node::{DoctypeNodeTypeId, ScriptView};
|
||||
use dom::text::Text;
|
||||
|
||||
use js::jsapi::{JSFreeOp, JSObject, JSContext};
|
||||
use js::jsapi::{JS_SetReservedSlot};
|
||||
|
|
|
@ -5,13 +5,15 @@
|
|||
use dom::bindings::codegen::DocumentBinding;
|
||||
use dom::bindings::utils::{DOMString, WrapperCache, ErrorResult, null_string, str};
|
||||
use dom::bindings::utils::{BindingObject, CacheableWrapper, rust_box, DerivedWrapper};
|
||||
use dom::element::{Element, HTMLHtmlElement};
|
||||
use dom::element::{Element};
|
||||
use dom::element::{HTMLHtmlElementTypeId, HTMLHeadElementTypeId, HTMLTitleElementTypeId};
|
||||
use dom::event::Event;
|
||||
use dom::htmlcollection::HTMLCollection;
|
||||
use dom::htmldocument::HTMLDocument;
|
||||
use dom::htmlelement::HTMLElement;
|
||||
use dom::node::{AbstractNode, ScriptView, Node, ElementNodeTypeId, Text};
|
||||
use dom::htmlhtmlelement::HTMLHtmlElement;
|
||||
use dom::node::{AbstractNode, ScriptView, Node, ElementNodeTypeId};
|
||||
use dom::text::Text;
|
||||
use dom::window::Window;
|
||||
use dom::windowproxy::WindowProxy;
|
||||
use dom::htmltitleelement::HTMLTitleElement;
|
||||
|
|
|
@ -6,9 +6,10 @@ use dom::bindings::codegen::DOMParserBinding;
|
|||
use dom::bindings::codegen::DOMParserBinding::SupportedTypeValues::{Text_html, Text_xml};
|
||||
use dom::bindings::utils::{DOMString, ErrorResult, WrapperCache, CacheableWrapper};
|
||||
use dom::document::{AbstractDocument, Document, XML};
|
||||
use dom::element::{HTMLHtmlElement, HTMLHtmlElementTypeId};
|
||||
use dom::element::HTMLHtmlElementTypeId;
|
||||
use dom::htmldocument::HTMLDocument;
|
||||
use dom::htmlelement::HTMLElement;
|
||||
use dom::htmlhtmlelement::HTMLHtmlElement;
|
||||
use dom::node::Node;
|
||||
use dom::window::Window;
|
||||
|
||||
|
|
|
@ -4,77 +4,12 @@
|
|||
|
||||
//! Element nodes.
|
||||
|
||||
use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding,
|
||||
HTMLAreaElementBinding, HTMLBaseElementBinding,
|
||||
HTMLBodyElementBinding, HTMLBRElementBinding,
|
||||
HTMLButtonElementBinding, HTMLCanvasElementBinding,
|
||||
HTMLDataElementBinding, HTMLDataListElementBinding,
|
||||
HTMLDirectoryElementBinding, HTMLDListElementBinding,
|
||||
HTMLDivElementBinding, HTMLEmbedElementBinding,
|
||||
HTMLFieldSetElementBinding, HTMLFontElementBinding,
|
||||
HTMLFrameElementBinding, HTMLFrameSetElementBinding,
|
||||
HTMLHeadElementBinding, HTMLHeadingElementBinding,
|
||||
HTMLHRElementBinding, HTMLHtmlElementBinding,
|
||||
HTMLIFrameElementBinding, HTMLImageElementBinding,
|
||||
HTMLInputElementBinding, HTMLLIElementBinding,
|
||||
HTMLLinkElementBinding, HTMLMapElementBinding,
|
||||
HTMLMetaElementBinding,
|
||||
HTMLOListElementBinding, HTMLParagraphElementBinding,
|
||||
HTMLProgressElementBinding, HTMLQuoteElementBinding,
|
||||
HTMLScriptElementBinding, HTMLSourceElementBinding, HTMLSpanElementBinding,
|
||||
HTMLStyleElementBinding, HTMLTableElementBinding,
|
||||
HTMLTableCaptionElementBinding, HTMLTableCellElementBinding,
|
||||
HTMLTableColElementBinding, HTMLTableRowElementBinding,
|
||||
HTMLTableSectionElementBinding, HTMLTextAreaElementBinding,
|
||||
HTMLTimeElementBinding, HTMLTitleElementBinding, HTMLUListElementBinding};
|
||||
use dom::bindings::utils::{null_string, str};
|
||||
use dom::bindings::utils::{BindingObject, CacheableWrapper, DOMString, ErrorResult, WrapperCache};
|
||||
use dom::htmlelement::HTMLElement;
|
||||
use dom::htmlcollection::HTMLCollection;
|
||||
use dom::clientrect::ClientRect;
|
||||
use dom::clientrectlist::ClientRectList;
|
||||
use dom::htmlanchorelement::HTMLAnchorElement;
|
||||
use dom::htmlappletelement::HTMLAppletElement;
|
||||
use dom::htmlareaelement::HTMLAreaElement;
|
||||
use dom::htmlbaseelement::HTMLBaseElement;
|
||||
use dom::htmlbodyelement::HTMLBodyElement;
|
||||
use dom::htmlbrelement::HTMLBRElement;
|
||||
use dom::htmlbuttonelement::HTMLButtonElement;
|
||||
use dom::htmlcanvaselement::HTMLCanvasElement;
|
||||
use dom::htmlcollection::HTMLCollection;
|
||||
use dom::htmldataelement::HTMLDataElement;
|
||||
use dom::htmldatalistelement::HTMLDataListElement;
|
||||
use dom::htmldirectoryelement::HTMLDirectoryElement;
|
||||
use dom::htmldlistelement::HTMLDListElement;
|
||||
use dom::htmlelement::HTMLElement;
|
||||
use dom::htmlembedelement::HTMLEmbedElement;
|
||||
use dom::htmlfieldsetelement::HTMLFieldSetElement;
|
||||
use dom::htmlfontelement::HTMLFontElement;
|
||||
use dom::htmlframeelement::HTMLFrameElement;
|
||||
use dom::htmlframesetelement::HTMLFrameSetElement;
|
||||
use dom::htmlheadingelement::HTMLHeadingElement;
|
||||
use dom::htmlhrelement::HTMLHRElement;
|
||||
use dom::htmliframeelement::HTMLIFrameElement;
|
||||
use dom::htmlimageelement::HTMLImageElement;
|
||||
use dom::htmlinputelement::HTMLInputElement;
|
||||
use dom::htmllielement::HTMLLIElement;
|
||||
use dom::htmllinkelement::HTMLLinkElement;
|
||||
use dom::htmlmapelement::HTMLMapElement;
|
||||
use dom::htmlmetaelement::HTMLMetaElement;
|
||||
use dom::htmlolistelement::HTMLOListElement;
|
||||
use dom::htmlprogresselement::HTMLProgressElement;
|
||||
use dom::htmlquoteelement::HTMLQuoteElement;
|
||||
use dom::htmlscriptelement::HTMLScriptElement;
|
||||
use dom::htmlsourceelement::HTMLSourceElement;
|
||||
use dom::htmlstyleelement::HTMLStyleElement;
|
||||
use dom::htmltableelement::HTMLTableElement;
|
||||
use dom::htmltablecaptionelement::HTMLTableCaptionElement;
|
||||
use dom::htmltablecellelement::HTMLTableCellElement;
|
||||
use dom::htmltablecolelement::HTMLTableColElement;
|
||||
use dom::htmltablerowelement::HTMLTableRowElement;
|
||||
use dom::htmltablesectionelement::HTMLTableSectionElement;
|
||||
use dom::htmltextareaelement::HTMLTextAreaElement;
|
||||
use dom::htmltimeelement::HTMLTimeElement;
|
||||
use dom::htmltitleelement::HTMLTitleElement;
|
||||
use dom::htmlulistelement::HTMLUListElement;
|
||||
use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode};
|
||||
use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
|
||||
use layout_interface::{ContentBoxesResponse};
|
||||
|
@ -171,164 +106,11 @@ pub enum ElementTypeId {
|
|||
// Regular old elements
|
||||
//
|
||||
|
||||
pub struct HTMLDivElement { parent: HTMLElement }
|
||||
pub struct HTMLFormElement { parent: HTMLElement }
|
||||
pub struct HTMLHeadElement { parent: HTMLElement }
|
||||
pub struct HTMLHtmlElement { parent: HTMLElement }
|
||||
pub struct HTMLOptionElement { parent: HTMLElement }
|
||||
pub struct HTMLParagraphElement { parent: HTMLElement }
|
||||
pub struct HTMLSelectElement { parent: HTMLElement }
|
||||
pub struct HTMLSmallElement { parent: HTMLElement }
|
||||
pub struct HTMLSpanElement { parent: HTMLElement }
|
||||
pub struct UnknownElement { parent: HTMLElement }
|
||||
|
||||
impl HTMLHtmlElement {
|
||||
pub fn Version(&self) -> DOMString {
|
||||
null_string
|
||||
}
|
||||
|
||||
pub fn SetVersion(&mut self, _version: &DOMString, _rv: &mut ErrorResult) {
|
||||
}
|
||||
}
|
||||
|
||||
impl HTMLDivElement {
|
||||
pub fn Align(&self) -> DOMString {
|
||||
null_string
|
||||
}
|
||||
|
||||
pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) {
|
||||
}
|
||||
}
|
||||
|
||||
impl HTMLParagraphElement {
|
||||
pub fn Align(&self) -> DOMString {
|
||||
null_string
|
||||
}
|
||||
|
||||
pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) {
|
||||
}
|
||||
}
|
||||
|
||||
pub macro_rules! generate_cacheable_wrapper(
|
||||
($name: ident, $wrap: path) => (
|
||||
impl CacheableWrapper for $name {
|
||||
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;
|
||||
$wrap(cx, scope, self, &mut unused)
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
pub macro_rules! generate_binding_object(
|
||||
($name: ident) => (
|
||||
impl BindingObject for $name {
|
||||
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
|
||||
self.parent.GetParentObject(cx)
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
generate_cacheable_wrapper!(HTMLHeadElement, HTMLHeadElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHeadElement)
|
||||
generate_cacheable_wrapper!(HTMLAnchorElement, HTMLAnchorElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLAnchorElement)
|
||||
generate_cacheable_wrapper!(HTMLAppletElement, HTMLAppletElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLAppletElement)
|
||||
generate_cacheable_wrapper!(HTMLAreaElement, HTMLAreaElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLAreaElement)
|
||||
generate_cacheable_wrapper!(HTMLBaseElement, HTMLBaseElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLBaseElement)
|
||||
generate_cacheable_wrapper!(HTMLBodyElement, HTMLBodyElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLBodyElement)
|
||||
generate_cacheable_wrapper!(HTMLButtonElement, HTMLButtonElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLButtonElement)
|
||||
generate_cacheable_wrapper!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLCanvasElement)
|
||||
generate_cacheable_wrapper!(HTMLDataListElement, HTMLDataListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDataListElement)
|
||||
generate_cacheable_wrapper!(HTMLDListElement, HTMLDListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDListElement)
|
||||
generate_cacheable_wrapper!(HTMLFrameElement, HTMLFrameElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFrameElement)
|
||||
generate_cacheable_wrapper!(HTMLFrameSetElement, HTMLFrameSetElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFrameSetElement)
|
||||
generate_cacheable_wrapper!(HTMLBRElement, HTMLBRElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLBRElement)
|
||||
generate_cacheable_wrapper!(HTMLHRElement, HTMLHRElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHRElement)
|
||||
generate_cacheable_wrapper!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHtmlElement)
|
||||
generate_cacheable_wrapper!(HTMLDataElement, HTMLDataElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDataElement)
|
||||
generate_cacheable_wrapper!(HTMLDirectoryElement, HTMLDirectoryElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDirectoryElement)
|
||||
generate_cacheable_wrapper!(HTMLDivElement, HTMLDivElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLDivElement)
|
||||
generate_cacheable_wrapper!(HTMLEmbedElement, HTMLEmbedElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLEmbedElement)
|
||||
generate_cacheable_wrapper!(HTMLFieldSetElement, HTMLFieldSetElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFieldSetElement)
|
||||
generate_cacheable_wrapper!(HTMLFontElement, HTMLFontElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLFontElement)
|
||||
generate_cacheable_wrapper!(HTMLHeadingElement, HTMLHeadingElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLHeadingElement)
|
||||
generate_cacheable_wrapper!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLIFrameElement)
|
||||
generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLImageElement)
|
||||
generate_cacheable_wrapper!(HTMLInputElement, HTMLInputElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLInputElement)
|
||||
generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLLIElement)
|
||||
generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLLinkElement)
|
||||
generate_cacheable_wrapper!(HTMLMapElement, HTMLMapElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLMapElement)
|
||||
generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLMetaElement)
|
||||
generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLOListElement)
|
||||
generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLParagraphElement)
|
||||
generate_cacheable_wrapper!(HTMLProgressElement, HTMLProgressElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLProgressElement)
|
||||
generate_cacheable_wrapper!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLQuoteElement)
|
||||
generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLScriptElement)
|
||||
generate_cacheable_wrapper!(HTMLSourceElement, HTMLSourceElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLSourceElement)
|
||||
generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLSpanElement)
|
||||
generate_cacheable_wrapper!(HTMLStyleElement, HTMLStyleElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLStyleElement)
|
||||
generate_cacheable_wrapper!(HTMLTableElement, HTMLTableElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableElement)
|
||||
generate_cacheable_wrapper!(HTMLTableCaptionElement, HTMLTableCaptionElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableCaptionElement)
|
||||
generate_cacheable_wrapper!(HTMLTableCellElement, HTMLTableCellElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableCellElement)
|
||||
generate_cacheable_wrapper!(HTMLTableColElement, HTMLTableColElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableColElement)
|
||||
generate_cacheable_wrapper!(HTMLTableRowElement, HTMLTableRowElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableRowElement)
|
||||
generate_cacheable_wrapper!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTableSectionElement)
|
||||
generate_cacheable_wrapper!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTextAreaElement)
|
||||
generate_cacheable_wrapper!(HTMLTitleElement, HTMLTitleElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTitleElement)
|
||||
generate_cacheable_wrapper!(HTMLTimeElement, HTMLTimeElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLTimeElement)
|
||||
generate_cacheable_wrapper!(HTMLUListElement, HTMLUListElementBinding::Wrap)
|
||||
generate_binding_object!(HTMLUListElement)
|
||||
|
||||
//
|
||||
// Element methods
|
||||
//
|
||||
|
|
19
src/components/script/dom/htmldivelement.rs
Normal file
19
src/components/script/dom/htmldivelement.rs
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* 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, null_string, ErrorResult};
|
||||
use dom::htmlelement::HTMLElement;
|
||||
|
||||
pub struct HTMLDivElement {
|
||||
parent: HTMLElement
|
||||
}
|
||||
|
||||
impl HTMLDivElement {
|
||||
pub fn Align(&self) -> DOMString {
|
||||
null_string
|
||||
}
|
||||
|
||||
pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) {
|
||||
}
|
||||
}
|
9
src/components/script/dom/htmlformelement.rs
Normal file
9
src/components/script/dom/htmlformelement.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* 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::htmlelement::HTMLElement;
|
||||
|
||||
pub struct HTMLFormElement {
|
||||
parent: HTMLElement
|
||||
}
|
9
src/components/script/dom/htmlheadelement.rs
Normal file
9
src/components/script/dom/htmlheadelement.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* 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::htmlelement::HTMLElement;
|
||||
|
||||
pub struct HTMLHeadElement {
|
||||
parent: HTMLElement
|
||||
}
|
19
src/components/script/dom/htmlhtmlelement.rs
Normal file
19
src/components/script/dom/htmlhtmlelement.rs
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* 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, null_string, ErrorResult};
|
||||
use dom::htmlelement::HTMLElement;
|
||||
|
||||
pub struct HTMLHtmlElement {
|
||||
parent: HTMLElement
|
||||
}
|
||||
|
||||
impl HTMLHtmlElement {
|
||||
pub fn Version(&self) -> DOMString {
|
||||
null_string
|
||||
}
|
||||
|
||||
pub fn SetVersion(&mut self, _version: &DOMString, _rv: &mut ErrorResult) {
|
||||
}
|
||||
}
|
19
src/components/script/dom/htmlparagraphelement.rs
Normal file
19
src/components/script/dom/htmlparagraphelement.rs
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* 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, null_string, ErrorResult};
|
||||
use dom::htmlelement::HTMLElement;
|
||||
|
||||
pub struct HTMLParagraphElement {
|
||||
parent: HTMLElement
|
||||
}
|
||||
|
||||
impl HTMLParagraphElement {
|
||||
pub fn Align(&self) -> DOMString {
|
||||
null_string
|
||||
}
|
||||
|
||||
pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) {
|
||||
}
|
||||
}
|
9
src/components/script/dom/htmlspanelement.rs
Normal file
9
src/components/script/dom/htmlspanelement.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* 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::htmlelement::HTMLElement;
|
||||
|
||||
pub struct HTMLSpanElement {
|
||||
parent: HTMLElement
|
||||
}
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
//! The core DOM types. Defines the basic DOM hierarchy as well as all the HTML elements.
|
||||
|
||||
use dom::bindings::codegen::TextBinding;
|
||||
use dom::bindings::node;
|
||||
use dom::bindings::utils::{WrapperCache, DOMString, null_string, ErrorResult};
|
||||
use dom::bindings::utils::{BindingObject, CacheableWrapper, rust_box};
|
||||
|
@ -15,7 +14,7 @@ use dom::element::{Element, ElementTypeId, HTMLImageElementTypeId, HTMLIframeEle
|
|||
use dom::element::{HTMLStyleElementTypeId};
|
||||
use dom::htmlimageelement::HTMLImageElement;
|
||||
use dom::htmliframeelement::HTMLIFrameElement;
|
||||
use dom::window::Window;
|
||||
use dom::text::Text;
|
||||
|
||||
use std::cast;
|
||||
use std::cast::transmute;
|
||||
|
@ -143,33 +142,6 @@ impl Comment {
|
|||
}
|
||||
}
|
||||
|
||||
/// 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<View> Clone for AbstractNode<View> {
|
||||
fn clone(&self) -> AbstractNode<View> {
|
||||
*self
|
||||
|
@ -707,19 +679,3 @@ impl BindingObject for Node<ScriptView> {
|
|||
}
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
|
55
src/components/script/dom/text.rs
Normal file
55
src/components/script/dom/text.rs
Normal file
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -23,59 +23,15 @@ use dom::element::{HTMLElementTypeId,
|
|||
HTMLTableRowElementTypeId, HTMLTextAreaElementTypeId,
|
||||
HTMLTimeElementTypeId, HTMLTitleElementTypeId, HTMLUListElementTypeId,
|
||||
UnknownElementTypeId};
|
||||
use dom::element::{HTMLDivElement, HTMLFormElement,
|
||||
HTMLHeadElement, HTMLHtmlElement,
|
||||
HTMLOptionElement, HTMLParagraphElement,
|
||||
HTMLSelectElement, HTMLSmallElement,
|
||||
HTMLSpanElement};
|
||||
use dom::element::{HTMLOptionElement, HTMLSelectElement, HTMLSmallElement};
|
||||
use dom::element::{HTMLHeadingElementTypeId};
|
||||
use dom::htmlbrelement::HTMLBRElement;
|
||||
use dom::htmlanchorelement::HTMLAnchorElement;
|
||||
use dom::htmlappletelement::HTMLAppletElement;
|
||||
use dom::htmlareaelement::HTMLAreaElement;
|
||||
use dom::htmlbaseelement::HTMLBaseElement;
|
||||
use dom::htmlbodyelement::HTMLBodyElement;
|
||||
use dom::htmlbuttonelement::HTMLButtonElement;
|
||||
use dom::htmlcanvaselement::HTMLCanvasElement;
|
||||
use dom::htmldataelement::HTMLDataElement;
|
||||
use dom::htmldatalistelement::HTMLDataListElement;
|
||||
use dom::htmldirectoryelement::HTMLDirectoryElement;
|
||||
use dom::htmldlistelement::HTMLDListElement;
|
||||
use dom::htmlembedelement::HTMLEmbedElement;
|
||||
use dom::htmlfieldsetelement::HTMLFieldSetElement;
|
||||
use dom::htmlfontelement::HTMLFontElement;
|
||||
use dom::htmlframeelement::HTMLFrameElement;
|
||||
use dom::htmlframesetelement::HTMLFrameSetElement;
|
||||
use dom::htmlheadingelement::{HTMLHeadingElement, Heading1, Heading2, Heading3, Heading4,
|
||||
Heading5, Heading6};
|
||||
use dom::htmlhrelement::HTMLHRElement;
|
||||
use dom::htmliframeelement::{IFrameSize, HTMLIFrameElement};
|
||||
use dom::htmlimageelement::HTMLImageElement;
|
||||
use dom::htmlinputelement::HTMLInputElement;
|
||||
use dom::htmllielement::HTMLLIElement;
|
||||
use dom::htmllinkelement::HTMLLinkElement;
|
||||
use dom::htmlmapelement::HTMLMapElement;
|
||||
use dom::htmlmetaelement::HTMLMetaElement;
|
||||
use dom::htmlolistelement::HTMLOListElement;
|
||||
use dom::htmlprogresselement::HTMLProgressElement;
|
||||
use dom::htmlquoteelement::HTMLQuoteElement;
|
||||
use dom::htmlscriptelement::HTMLScriptElement;
|
||||
use dom::htmlsourceelement::HTMLSourceElement;
|
||||
use dom::htmlstyleelement::HTMLStyleElement;
|
||||
use dom::htmltableelement::HTMLTableElement;
|
||||
use dom::htmltablecaptionelement::HTMLTableCaptionElement;
|
||||
use dom::htmltablecellelement::HTMLTableCellElement;
|
||||
use dom::htmltablecolelement::HTMLTableColElement;
|
||||
use dom::htmltablerowelement::HTMLTableRowElement;
|
||||
use dom::htmltablesectionelement::HTMLTableSectionElement;
|
||||
use dom::htmltextareaelement::HTMLTextAreaElement;
|
||||
use dom::htmltimeelement::HTMLTimeElement;
|
||||
use dom::htmltitleelement::HTMLTitleElement;
|
||||
use dom::htmlulistelement::HTMLUListElement;
|
||||
use dom::htmlheadingelement::{Heading1, Heading2, Heading3, Heading4, Heading5, Heading6};
|
||||
use dom::htmliframeelement::IFrameSize;
|
||||
use dom::htmlformelement::HTMLFormElement;
|
||||
use dom::types::*;
|
||||
use dom::element::Element;
|
||||
use dom::htmlelement::HTMLElement;
|
||||
use dom::node::{AbstractNode, Comment, Doctype, ElementNodeTypeId, Node, ScriptView};
|
||||
use dom::node::{Text};
|
||||
use dom::bindings::utils::str;
|
||||
use html::cssparse::{InlineProvenance, StylesheetProvenance, UrlProvenance, spawn_css_parser};
|
||||
use js::jsapi::JSContext;
|
||||
|
|
|
@ -32,77 +32,18 @@ pub mod dom {
|
|||
pub mod proxyhandler;
|
||||
pub mod domparser;
|
||||
pub mod codegen {
|
||||
pub mod BlobBinding;
|
||||
pub mod CharacterDataBinding;
|
||||
pub mod ClientRectBinding;
|
||||
pub mod ClientRectListBinding;
|
||||
pub mod DocumentBinding;
|
||||
pub mod DOMParserBinding;
|
||||
pub mod ElementBinding;
|
||||
pub mod EventBinding;
|
||||
pub mod EventTargetBinding;
|
||||
pub mod FormDataBinding;
|
||||
pub mod HTMLAnchorElementBinding;
|
||||
pub mod HTMLAppletElementBinding;
|
||||
pub mod HTMLAreaElementBinding;
|
||||
pub mod HTMLBaseElementBinding;
|
||||
pub mod HTMLBodyElementBinding;
|
||||
pub mod HTMLBRElementBinding;
|
||||
pub mod HTMLButtonElementBinding;
|
||||
pub mod HTMLCanvasElementBinding;
|
||||
pub mod HTMLCollectionBinding;
|
||||
pub mod HTMLDataElementBinding;
|
||||
pub mod HTMLDataListElementBinding;
|
||||
pub mod HTMLDirectoryElementBinding;
|
||||
pub mod HTMLDListElementBinding;
|
||||
pub mod HTMLDivElementBinding;
|
||||
pub mod HTMLDocumentBinding;
|
||||
pub mod HTMLElementBinding;
|
||||
pub mod HTMLEmbedElementBinding;
|
||||
pub mod HTMLFieldSetElementBinding;
|
||||
pub mod HTMLFontElementBinding;
|
||||
pub mod HTMLFrameElementBinding;
|
||||
pub mod HTMLFrameSetElementBinding;
|
||||
pub mod HTMLHeadElementBinding;
|
||||
pub mod HTMLHeadingElementBinding;
|
||||
pub mod HTMLHRElementBinding;
|
||||
pub mod HTMLHtmlElementBinding;
|
||||
pub mod HTMLIFrameElementBinding;
|
||||
pub mod HTMLImageElementBinding;
|
||||
pub mod HTMLInputElementBinding;
|
||||
pub mod HTMLLIElementBinding;
|
||||
pub mod HTMLLinkElementBinding;
|
||||
pub mod HTMLMapElementBinding;
|
||||
pub mod HTMLMetaElementBinding;
|
||||
pub mod HTMLOListElementBinding;
|
||||
pub mod HTMLParagraphElementBinding;
|
||||
pub mod HTMLProgressElementBinding;
|
||||
pub mod HTMLQuoteElementBinding;
|
||||
pub mod HTMLScriptElementBinding;
|
||||
pub mod HTMLSourceElementBinding;
|
||||
pub mod HTMLSpanElementBinding;
|
||||
pub mod HTMLStyleElementBinding;
|
||||
pub mod HTMLTableElementBinding;
|
||||
pub mod HTMLTableCaptionElementBinding;
|
||||
pub mod HTMLTableCellElementBinding;
|
||||
pub mod HTMLTableColElementBinding;
|
||||
pub mod HTMLTableRowElementBinding;
|
||||
pub mod HTMLTableSectionElementBinding;
|
||||
pub mod HTMLTextAreaElementBinding;
|
||||
pub mod HTMLTimeElementBinding;
|
||||
pub mod HTMLTitleElementBinding;
|
||||
pub mod HTMLUListElementBinding;
|
||||
pub mod MouseEventBinding;
|
||||
pub mod NodeBinding;
|
||||
pub use self::BindingDeclarations::*;
|
||||
pub mod InterfaceTypes;
|
||||
pub mod PrototypeList;
|
||||
pub mod RegisterBindings;
|
||||
pub mod TextBinding;
|
||||
pub mod UIEventBinding;
|
||||
pub mod ValidityStateBinding;
|
||||
pub mod WindowBinding;
|
||||
pub mod WindowProxyBinding;
|
||||
pub mod BindingDeclarations;
|
||||
}
|
||||
}
|
||||
|
||||
pub mod types {
|
||||
pub use super::bindings::codegen::InterfaceTypes::*;
|
||||
}
|
||||
|
||||
pub mod blob;
|
||||
pub mod characterdata;
|
||||
pub mod clientrect;
|
||||
|
@ -125,16 +66,20 @@ pub mod dom {
|
|||
pub mod htmldataelement;
|
||||
pub mod htmldatalistelement;
|
||||
pub mod htmldirectoryelement;
|
||||
pub mod htmldivelement;
|
||||
pub mod htmldlistelement;
|
||||
pub mod htmldocument;
|
||||
pub mod htmlelement;
|
||||
pub mod htmlembedelement;
|
||||
pub mod htmlfieldsetelement;
|
||||
pub mod htmlfontelement;
|
||||
pub mod htmlformelement;
|
||||
pub mod htmlframeelement;
|
||||
pub mod htmlframesetelement;
|
||||
pub mod htmlheadelement;
|
||||
pub mod htmlheadingelement;
|
||||
pub mod htmlhrelement;
|
||||
pub mod htmlhtmlelement;
|
||||
pub mod htmliframeelement;
|
||||
pub mod htmlimageelement;
|
||||
pub mod htmlinputelement;
|
||||
|
@ -143,9 +88,11 @@ pub mod dom {
|
|||
pub mod htmlmapelement;
|
||||
pub mod htmlmetaelement;
|
||||
pub mod htmlolistelement;
|
||||
pub mod htmlparagraphelement;
|
||||
pub mod htmlprogresselement;
|
||||
pub mod htmlquoteelement;
|
||||
pub mod htmlscriptelement;
|
||||
pub mod htmlspanelement;
|
||||
pub mod htmlsourceelement;
|
||||
pub mod htmlstyleelement;
|
||||
pub mod htmltableelement;
|
||||
|
@ -161,6 +108,7 @@ pub mod dom {
|
|||
pub mod mouseevent;
|
||||
pub mod node;
|
||||
pub mod uievent;
|
||||
pub mod text;
|
||||
pub mod validitystate;
|
||||
pub mod window;
|
||||
pub mod windowproxy;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue