Skip to content

Commit

Permalink
Stub style application; add an attribute accessor method
Browse files Browse the repository at this point in the history
  • Loading branch information
pcwalton committed May 25, 2012
1 parent e15c779 commit 8a00747
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 6 deletions.
13 changes: 12 additions & 1 deletion src/servo/dom/base.rs
Expand Up @@ -2,7 +2,7 @@ import dom::rcu::{writer_methods};
import gfx::geom::{au, size};
import layout::base::layout_data;
import util::tree;
import dvec::dvec;
import dvec::{dvec, extensions};

enum node_data = {
tree: tree::fields<node>,
Expand All @@ -24,6 +24,17 @@ class element {
self.subclass = subclass;
self.attrs = dvec();
}

fn get_attr(attr_name: str) -> option<str> {
let mut i = 0u;
while i < self.attrs.len() {
if attr_name == self.attrs[i].name {
ret some(self.attrs[i].value);
}
i += 1u;
}
ret none;
}
}

class attr {
Expand Down
12 changes: 11 additions & 1 deletion src/servo/layout/base.rs
Expand Up @@ -5,6 +5,7 @@ import dom::rcu;
import dom::rcu::reader_methods;
import gfx::geom;
import gfx::geom::{size, rect, point, au, zero_size_au};
import image::base::image;
import /*layout::*/block::block_layout_methods;
import /*layout::*/inline::inline_layout_methods;
import /*layout::*/style::style::*;
Expand All @@ -18,11 +19,20 @@ enum box_kind {
bk_text(@text_box)
}

class appearance {
let mut background_image: option<@image>;

new() {
self.background_image = none;
}
}

enum box = {
tree: tree::fields<@box>,
node: node,
mut bounds: geom::rect<au>,
kind: box_kind
kind: box_kind,
appearance: appearance
};

enum layout_data = {
Expand Down
9 changes: 5 additions & 4 deletions src/servo/layout/box_builder.rs
Expand Up @@ -3,9 +3,9 @@
import dom::base::{element, es_div, es_img, nk_element, nk_text, node};
import dom::rcu::reader_methods;
import gfx::geom;
import /*layout::*/base::{bk_block, bk_inline, bk_intrinsic, bk_text, box};
import /*layout::*/base::{box_kind, btree, node_methods, ntree, rd_tree_ops};
import /*layout::*/base::wr_tree_ops;
import /*layout::*/base::{appearance, bk_block, bk_inline, bk_intrinsic};
import /*layout::*/base::{bk_text, box, box_kind, btree, node_methods, ntree};
import /*layout::*/base::{rd_tree_ops, wr_tree_ops};
import /*layout::*/style::style::{di_block, di_inline, style_methods};
import /*layout::*/text::text_box;
import util::tree;
Expand All @@ -29,7 +29,8 @@ fn new_box(n: node, kind: box_kind) -> @box {
@box({tree: tree::empty(),
node: n,
mut bounds: geom::zero_rect_au(),
kind: kind })
kind: kind,
appearance: appearance() })
}

fn create_context(parent_node: node, parent_box: @box) -> ctxt {
Expand Down
3 changes: 3 additions & 0 deletions src/servo/layout/layout.rs
Expand Up @@ -12,6 +12,7 @@ import gfx::renderer;
import dom::base::node;
import dom::rcu::scope;
import /*layout::*/base::*;
import /*layout::*/style::apply::apply_style_methods;
import /*layout::*/style::style::style_methods;
import box_builder::box_builder_methods;
import dl = display_list;
Expand All @@ -37,7 +38,9 @@ fn layout(to_renderer: chan<renderer::msg>) -> chan<msg> {
let this_box = node.construct_boxes();
this_box.dump();

this_box.apply_style_for_subtree();
this_box.reflow(geom::px_to_au(800));

let dlist = build_display_list(this_box);
to_renderer.send(renderer::render(dlist));
}
Expand Down
3 changes: 3 additions & 0 deletions src/servo/servo.rc
Expand Up @@ -11,6 +11,7 @@ use sdl;
use azure;
use spidermonkey (name = "js");
use harfbuzz;
use stb_image;

mod dom {
mod base;
Expand All @@ -25,13 +26,15 @@ mod gfx {
}

mod image {
mod base;
mod encode {
mod tga;
}
}

mod layout {
mod style {
mod apply;
mod style;
}

Expand Down

0 comments on commit 8a00747

Please sign in to comment.