aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-05-03 17:26:17 -0700
committerBrian Anderson <banderson@mozilla.com>2012-05-03 17:26:17 -0700
commit35e24aafcafb3a1231f75209adb153bc314766e3 (patch)
tree3dbb063575fc6334bf4fec34b3c5904abb372e93 /src
parent0b46922d6d64675fe60e61e5eefa548a094502a6 (diff)
downloadservo-35e24aafcafb3a1231f75209adb153bc314766e3.tar.gz
servo-35e24aafcafb3a1231f75209adb153bc314766e3.zip
Structure layout task a little more
Diffstat (limited to 'src')
-rw-r--r--src/servo/layout/layout.rs68
1 files changed, 32 insertions, 36 deletions
diff --git a/src/servo/layout/layout.rs b/src/servo/layout/layout.rs
index f99bf57de9b..1379ebf4c8a 100644
--- a/src/servo/layout/layout.rs
+++ b/src/servo/layout/layout.rs
@@ -6,10 +6,11 @@ Builds display lists on request and passes them to the renderer
import task::*;
import comm::*;
-import display_list::*;
import gfx::geom;
import gfx::geom::*;
import gfx::renderer;
+import dom::base::*;
+import display_list::*;
enum msg {
build,
@@ -19,47 +20,17 @@ enum msg {
fn layout(renderer: chan<renderer::msg>) -> chan<msg> {
spawn_listener::<msg> {|po|
- let mut x1 = 100;
- let mut y1 = 100;
- let mut w1 = 200;
- let mut h1 = 200;
- let mut x2 = 200;
- let mut y2 = 200;
- let mut w2 = 300;
- let mut h2 = 300;
+
+ let dom = new_node(nk_div);
loop {
alt recv(po) {
build {
- let dlist = [
- display_item({
- item_type: solid_color,
- bounds: geom::box(
- int_to_au(x1),
- int_to_au(y1),
- int_to_au(w1),
- int_to_au(h1))
- }),
- display_item({
- item_type: solid_color,
- bounds: geom::box(
- int_to_au(x2),
- int_to_au(y2),
- int_to_au(w2),
- int_to_au(h2))
- })
- ];
- send(renderer, gfx::renderer::draw(dlist));
+ let box = layout_dom(dom);
+ let dlist = build_display_list(box);
- x1 += 1;
- y1 += 1;
- x2 -= 1;
- y2 -= 1;
- if x1 > 800 { x1 = 0 }
- if y1 > 600 { y1 = 0 }
- if x2 < 0 { x2 = 800 }
- if y2 < 0 { y2 = 600 }
+ send(renderer, gfx::renderer::draw(dlist));
}
exit {
break;
@@ -69,3 +40,28 @@ fn layout(renderer: chan<renderer::msg>) -> chan<msg> {
}
}
+
+fn layout_dom(dom: node) -> base::box {
+ base::new_box(dom)
+}
+
+fn build_display_list(_box: base::box) -> display_list::display_list {
+ [
+ display_item({
+ item_type: solid_color,
+ bounds: geom::box(
+ int_to_au(0),
+ int_to_au(0),
+ int_to_au(100),
+ int_to_au(100))
+ }),
+ display_item({
+ item_type: solid_color,
+ bounds: geom::box(
+ int_to_au(100),
+ int_to_au(100),
+ int_to_au(100),
+ int_to_au(100))
+ })
+ ]
+} \ No newline at end of file