Move Document and Node to own files.

This commit is contained in:
Brian J. Burg 2012-09-20 14:43:32 -07:00
parent 789398ddc2
commit 719310615e
16 changed files with 44 additions and 39 deletions

View file

@ -12,7 +12,8 @@ use comm::{Port, Chan, listen, select2};
use task::{spawn, spawn_listener}; use task::{spawn, spawn_listener};
use io::{read_whole_file, println}; use io::{read_whole_file, println};
use dom::base::{Document, Node, NodeScope, define_bindings}; use dom::document::Document;
use dom::node::{Node, NodeScope, define_bindings};
use dom::event::{Event, ResizeEvent, ReflowEvent}; use dom::event::{Event, ResizeEvent, ReflowEvent};
use dom::window::Window; use dom::window::Window;
use gfx::compositor::Compositor; use gfx::compositor::Compositor;

View file

@ -120,7 +120,7 @@ impl StyleApplicator {
// Right now, we only handle images. // Right now, we only handle images.
do self.box.node.read |node| { do self.box.node.read |node| {
match node.kind { match node.kind {
~dom::base::Element(element) => { ~dom::node::Element(element) => {
match element.kind { match element.kind {
~HTMLImageElement(*) => { ~HTMLImageElement(*) => {
let url = element.get_attr(~"src"); let url = element.get_attr(~"src");

View file

@ -1,9 +1,7 @@
#[doc="Performs CSS selector matching."] #[doc="Performs CSS selector matching."]
use dom::base::{LayoutData}; use dom::node::{LayoutData, Node, Text};
use dom::base;
use dom::element::ElementData; use dom::element::ElementData;
use base::{Node, Text};
use values::*; use values::*;
use styles::{SpecifiedStyle}; use styles::{SpecifiedStyle};
@ -67,7 +65,7 @@ impl Node : PrivMatchingMethods {
Child(_, _) | Descendant(_, _) | Sibling(_, _) => { return false; } Child(_, _) | Descendant(_, _) | Sibling(_, _) => { return false; }
Element(tag, attrs) => { Element(tag, attrs) => {
match self.read(|n| copy *n.kind) { match self.read(|n| copy *n.kind) {
base::Element(elmt) => { dom::node::Element(elmt) => {
if !(tag == ~"*" || tag == elmt.tag_name) { if !(tag == ~"*" || tag == elmt.tag_name) {
return false; return false;
} }
@ -209,8 +207,8 @@ impl Node : MatchingMethods {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use dom::base::{Attr, HTMLDivElement, HTMLHeadElement, HTMLImageElement}; use dom::element::{Attr, HTMLDivElement, HTMLHeadElement, HTMLImageElement, UnknownElement};
use dom::base::{NodeScope, UnknownElement}; use dom::node::NodeScope;
use dvec::DVec; use dvec::DVec;
#[allow(non_implicitly_copyable_typarams)] #[allow(non_implicitly_copyable_typarams)]
@ -218,7 +216,7 @@ mod test {
let elmt = ElementData(~"div", ~HTMLDivElement); let elmt = ElementData(~"div", ~HTMLDivElement);
let attr = ~Attr(name, val); let attr = ~Attr(name, val);
elmt.attrs.push(attr); elmt.attrs.push(attr);
return scope.new_node(base::Element(elmt)); return scope.new_node(dom::node::Element(elmt));
} }
#[test] #[test]

View file

@ -5,11 +5,10 @@ use std::arc::{ARC, get, clone};
use css::values::*; use css::values::*;
use css::values::Stylesheet; use css::values::Stylesheet;
use dom::element::{HTMLDivElement, HTMLHeadElement, HTMLImageElement, UnknownElement, HTMLScriptElement}; use dom::element::{HTMLDivElement, HTMLHeadElement, HTMLImageElement, UnknownElement, HTMLScriptElement};
use dom::base::{Comment, Doctype, Element, Node, NodeKind, Text}; use dom::node::{Comment, Doctype, Element, Text,
use dom::base::{LayoutData}; Node, NodeKind, NodeTree, LayoutData};
use util::color::{Color, rgb}; use util::color::{Color, rgb};
use util::color::css_colors::{white, black}; use util::color::css_colors::{white, black};
use dom::base::NodeTree;
use layout::context::LayoutContext; use layout::context::LayoutContext;
type SpecifiedStyle = {mut background_color : CSSValue<CSSBackgroundColor>, type SpecifiedStyle = {mut background_color : CSSValue<CSSBackgroundColor>,

View file

@ -12,7 +12,8 @@ use ptr::null;
use libc::c_uint; use libc::c_uint;
use utils::{DOMString, domstring_to_jsval, rust_box, squirrel_away, str}; use utils::{DOMString, domstring_to_jsval, rust_box, squirrel_away, str};
use bindings::node::create; use bindings::node::create;
use base::Document;
use dom::document::Document;
enum DOMException { enum DOMException {
INVALID_CHARACTER_ERR INVALID_CHARACTER_ERR

View file

@ -11,7 +11,7 @@ use js::jsapi::bindgen::*;
use js::glue::bindgen::*; use js::glue::bindgen::*;
use js::crust::{JS_PropertyStub, JS_StrictPropertyStub, JS_EnumerateStub, JS_ConvertStub}; use js::crust::{JS_PropertyStub, JS_StrictPropertyStub, JS_EnumerateStub, JS_ConvertStub};
use dom::base::{Node, NodeScope, Element}; use dom::node::{Node, NodeScope, Element};
use dom::element::*; use dom::element::*;
use node::NodeBundle; use node::NodeBundle;
use utils::{rust_box, squirrel_away_unique, get_compartment, domstring_to_jsval, str}; use utils::{rust_box, squirrel_away_unique, get_compartment, domstring_to_jsval, str};

View file

@ -9,7 +9,7 @@ use js::jsapi::bindgen::*;
use js::glue::bindgen::*; use js::glue::bindgen::*;
use js::crust::{JS_PropertyStub, JS_StrictPropertyStub, JS_EnumerateStub, JS_ConvertStub}; use js::crust::{JS_PropertyStub, JS_StrictPropertyStub, JS_EnumerateStub, JS_ConvertStub};
use dom::base::{Node, NodeScope, Element, Text, Doctype, Comment}; use dom::node::{Node, NodeScope, Text, Doctype, Comment, Element};
use utils::{rust_box, squirrel_away_unique, get_compartment, domstring_to_jsval, str}; use utils::{rust_box, squirrel_away_unique, get_compartment, domstring_to_jsval, str};
use libc::c_uint; use libc::c_uint;
use ptr::null; use ptr::null;

View file

@ -14,7 +14,7 @@ use libc::c_uint;
use utils::{rust_box, squirrel_away, jsval_to_str}; use utils::{rust_box, squirrel_away, jsval_to_str};
use bindings::node::create; use bindings::node::create;
use dom::window::{Window, TimerMessage_Fire}; use dom::window::{Window, TimerMessage_Fire};
use dom::base::Node; use dom::node::Node;
use dvec::DVec; use dvec::DVec;
extern fn alert(cx: *JSContext, argc: c_uint, vp: *jsval) -> JSBool { extern fn alert(cx: *JSContext, argc: c_uint, vp: *jsval) -> JSBool {

17
src/servo/dom/document.rs Normal file
View file

@ -0,0 +1,17 @@
use css::values::Stylesheet;
use dom::node::{NodeScope, Node};
use std::arc::ARC;
struct Document {
root: Node,
scope: NodeScope,
css_rules: ARC<Stylesheet>,
}
fn Document(root: Node, scope: NodeScope, -css_rules: Stylesheet) -> Document {
Document {
root : root,
scope : scope,
css_rules : ARC(css_rules),
}
}

View file

@ -1,6 +1,7 @@
/* The core DOM types. Defines the basic DOM hierarchy as well as all the HTML elements. */ /* The core DOM types. Defines the basic DOM hierarchy as well as all the HTML elements. */
use css::styles::SpecifiedStyle; use css::styles::SpecifiedStyle;
use css::values::Stylesheet; use css::values::Stylesheet;
use dom::document::Document;
use dom::element::{Attr, ElementData}; use dom::element::{Attr, ElementData};
use dom::window::Window; use dom::window::Window;
use dom::bindings; use dom::bindings;
@ -17,20 +18,6 @@ use ptr::null;
use std::arc::ARC; use std::arc::ARC;
use util::tree; use util::tree;
struct Document {
root: Node,
scope: NodeScope,
css_rules: ARC<Stylesheet>,
}
fn Document(root: Node, scope: NodeScope, -css_rules: Stylesheet) -> Document {
Document {
root : root,
scope : scope,
css_rules : ARC(css_rules),
}
}
enum NodeData = { enum NodeData = {
tree: tree::Tree<Node>, tree: tree::Tree<Node>,
kind: ~NodeKind, kind: ~NodeKind,

View file

@ -1,7 +1,8 @@
use au = gfx::geometry; use au = gfx::geometry;
use dom::base::{Comment, Doctype, DoctypeData, Element}; use dom::element::UnknownElement;
use dom::node::{Comment, Doctype, DoctypeData, Text,
Element, Node, NodeScope};
use dom::element::*; use dom::element::*;
use dom::base::{Node, NodeScope, Text, UnknownElement};
use css::values::Stylesheet; use css::values::Stylesheet;
use geom::size::Size2D; use geom::size::Size2D;
use resource::resource_task::{Done, Load, Payload, ResourceTask}; use resource::resource_task::{Done, Load, Payload, ResourceTask};

View file

@ -11,7 +11,7 @@ use css::styles::SpecifiedStyle;
use css::values::{BoxSizing, Length, Px, CSSDisplay, Specified, BgColor, BgTransparent}; use css::values::{BoxSizing, Length, Px, CSSDisplay, Specified, BgColor, BgTransparent};
use dl = gfx::display_list; use dl = gfx::display_list;
use dom::element::{ElementKind, HTMLDivElement, HTMLImageElement}; use dom::element::{ElementKind, HTMLDivElement, HTMLImageElement};
use dom::base::{Element, Node, NodeData, NodeKind, NodeTree}; use dom::node::{Element, Node, NodeData, NodeKind, NodeTree};
use dom::rcu; use dom::rcu;
use geom::rect::Rect; use geom::rect::Rect;
use geom::size::Size2D; use geom::size::Size2D;
@ -527,8 +527,8 @@ impl @RenderBox : DebugMethods {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use dom::base::{Element, ElementData, HTMLDivElement, HTMLImageElement, Node, NodeKind}; use dom::element::{ElementData, HTMLDivElement, HTMLImageElement};
use dom::base::{NodeScope}; use dom::node::{Element, NodeScope, Node, NodeKind};
use dom::rcu::Scope; use dom::rcu::Scope;
/* /*

View file

@ -4,8 +4,8 @@ use core::dvec::DVec;
use css::styles::SpecifiedStyle; use css::styles::SpecifiedStyle;
use css::values::{CSSDisplay, DisplayBlock, DisplayInline, DisplayInlineBlock, DisplayNone}; use css::values::{CSSDisplay, DisplayBlock, DisplayInline, DisplayInlineBlock, DisplayNone};
use css::values::{Inherit, Initial, Specified}; use css::values::{Inherit, Initial, Specified};
use dom::base::{Node, Comment, Text, Element, Doctype, NodeTree};
use dom::element::*; use dom::element::*;
use dom::node::{Comment, Doctype, Element, Text, Node, NodeTree};
use layout::base::{RenderBox, BoxData, GenericBox, ImageBox, TextBox, RenderBoxTree}; use layout::base::{RenderBox, BoxData, GenericBox, ImageBox, TextBox, RenderBoxTree};
use layout::base::{FlowContext, FlowContextData, BlockFlow, InlineFlow, InlineBlockFlow, RootFlow, FlowTree}; use layout::base::{FlowContext, FlowContextData, BlockFlow, InlineFlow, InlineBlockFlow, RootFlow, FlowTree};
use layout::block::BlockFlowData; use layout::block::BlockFlowData;

View file

@ -4,7 +4,7 @@ use au = gfx::geometry;
use base::{RenderBox, RenderBoxTree}; use base::{RenderBox, RenderBoxTree};
use css::values::{BgColor, BgTransparent, Specified}; use css::values::{BgColor, BgTransparent, Specified};
use dl = gfx::display_list; use dl = gfx::display_list;
use dom::base::{Text, NodeScope}; use dom::node::{Text, NodeScope};
use dom::rcu::Scope; use dom::rcu::Scope;
use dvec::DVec; use dvec::DVec;
use either::{Left, Right}; use either::{Left, Right};

View file

@ -10,7 +10,7 @@ use core::dvec::DVec;
use css::resolve::apply::apply_style; use css::resolve::apply::apply_style;
use css::values::Stylesheet; use css::values::Stylesheet;
use dl = gfx::display_list; use dl = gfx::display_list;
use dom::base::Node; use dom::node::Node;
use dom::event::{Event, ReflowEvent}; use dom::event::{Event, ReflowEvent};
use geom::point::Point2D; use geom::point::Point2D;
use geom::rect::Rect; use geom::rect::Rect;

View file

@ -23,7 +23,6 @@ extern mod hubbub;
mod engine; mod engine;
mod dom { mod dom {
mod base;
mod bindings { mod bindings {
mod document; mod document;
mod element; mod element;
@ -31,8 +30,10 @@ mod dom {
mod node; mod node;
mod window; mod window;
} }
mod document;
mod element; mod element;
mod event; mod event;
mod node;
mod rcu; mod rcu;
mod window; mod window;
} }