get it so that content actually has height and displays

This commit is contained in:
Niko Matsakis 2012-05-04 17:04:05 -07:00
parent 3c5b1928a0
commit 78a5cd763c
3 changed files with 26 additions and 4 deletions

View file

@ -56,9 +56,10 @@ fn linked_box(n: node) -> @box {
}
fn linked_subtree(p: node) -> @box {
#debug["linked_subtree root=%?", p.rd() { |r| r.kind }];
let p_box = linked_box(p);
for ntree.each_child(p) { |c|
let c_box = linked_box(c);
let c_box = linked_subtree(c);
btree.add_child(p_box, c_box);
}
ret p_box;
@ -74,6 +75,7 @@ fn reflow_block(root: @box, available_width: au) {
// - and recursively computes the bounds for each child
let k = root.node.rd() { |r| r.kind };
#debug["reflow_block root=%?", k];
alt k {
nk_img(size) {
root.bounds.size = size;

View file

@ -5,6 +5,7 @@ import dom::base::{methods, rd_tree_ops, wr_tree_ops};
import dom = dom::base;
import parser = parser::html;
import html::token;
import gfx::geom;
fn build_dom(scope: dom::node_scope,
stream: port<token>) -> dom::node {
@ -15,11 +16,24 @@ fn build_dom(scope: dom::node_scope,
#debug["token=%?", token];
alt token {
parser::to_eof { break; }
parser::to_start_tag(_) {
let new_node = scope.new_node(dom::nk_div);
parser::to_start_tag("div") {
#debug["DIV"];
let new_node = scope.new_node(
dom::nk_div);
scope.add_child(cur, new_node);
cur = new_node;
}
parser::to_start_tag("img") {
#debug["IMG"];
let new_node = scope.new_node(
dom::nk_img({mut width: geom::int_to_au(100),
mut height: geom::int_to_au(100)}));
scope.add_child(cur, new_node);
cur = new_node;
}
parser::to_start_tag(t) {
fail ("Unrecognized tag: " + t);
}
parser::to_end_tag(_) {
// TODO: Assert that the closing tag has the right name.
// TODO: Fail more gracefully (i.e. according to the HTML5