diff options
author | Brian Anderson <banderson@mozilla.com> | 2012-05-03 17:26:17 -0700 |
---|---|---|
committer | Brian Anderson <banderson@mozilla.com> | 2012-05-03 17:26:17 -0700 |
commit | 35e24aafcafb3a1231f75209adb153bc314766e3 (patch) | |
tree | 3dbb063575fc6334bf4fec34b3c5904abb372e93 /src | |
parent | 0b46922d6d64675fe60e61e5eefa548a094502a6 (diff) | |
download | servo-35e24aafcafb3a1231f75209adb153bc314766e3.tar.gz servo-35e24aafcafb3a1231f75209adb153bc314766e3.zip |
Structure layout task a little more
Diffstat (limited to 'src')
-rw-r--r-- | src/servo/layout/layout.rs | 68 |
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 |