aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/main/layout/inline.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/main/layout/inline.rs')
-rw-r--r--src/components/main/layout/inline.rs28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/components/main/layout/inline.rs b/src/components/main/layout/inline.rs
index e6a2643536f..4292ab32274 100644
--- a/src/components/main/layout/inline.rs
+++ b/src/components/main/layout/inline.rs
@@ -7,9 +7,9 @@ use layout::box_::{Box, CannotSplit, GenericBox, IframeBox, ImageBox, ScannedTex
use layout::box_::{SplitDidNotFit, UnscannedTextBox, InlineInfo};
use layout::context::LayoutContext;
use layout::display_list_builder::{DisplayListBuilder, ExtraDisplayListData};
+use layout::floats::{FloatLeft, Floats, PlacementInfo};
use layout::flow::{BaseFlow, FlowClass, Flow, InlineFlowClass};
use layout::flow;
-use layout::float_context::{FloatContext, FloatLeft, PlacementInfo};
use layout::util::ElementMapping;
use layout::wrapper::ThreadSafeLayoutNode;
@@ -56,7 +56,7 @@ struct LineBox {
}
struct LineboxScanner {
- floats: FloatContext,
+ floats: Floats,
new_boxes: ~[Box],
work_list: RingBuf<Box>,
pending_line: LineBox,
@@ -65,7 +65,7 @@ struct LineboxScanner {
}
impl LineboxScanner {
- pub fn new(float_ctx: FloatContext) -> LineboxScanner {
+ pub fn new(float_ctx: Floats) -> LineboxScanner {
LineboxScanner {
floats: float_ctx,
new_boxes: ~[],
@@ -80,7 +80,7 @@ impl LineboxScanner {
}
}
- pub fn floats_out(&mut self) -> FloatContext {
+ pub fn floats(&mut self) -> Floats {
self.floats.clone()
}
@@ -193,11 +193,10 @@ impl LineboxScanner {
};
let mut info = PlacementInfo {
- width: placement_width,
- height: first_box_size.height,
+ size: Size2D(placement_width, first_box_size.height),
ceiling: ceiling,
max_width: flow.base.position.size.width,
- f_type: FloatLeft
+ kind: FloatLeft,
};
let line_bounds = self.floats.place_between_floats(&info);
@@ -253,7 +252,7 @@ impl LineboxScanner {
(None, None) => fail!("This case makes no sense.")
};
- info.width = actual_box_width;
+ info.size.width = actual_box_width;
let new_bounds = self.floats.place_between_floats(&info);
debug!("LineboxScanner: case=new line position: {}", new_bounds);
@@ -626,7 +625,7 @@ impl Flow for InlineFlow {
for kid in self.base.child_iter() {
let child_base = flow::mut_base(kid);
num_floats += child_base.num_floats;
- child_base.floats_in = FloatContext::new(child_base.num_floats);
+ child_base.floats = Floats::new();
}
let mut min_width = Au::new(0);
@@ -653,7 +652,7 @@ impl Flow for InlineFlow {
//
// TODO: Combine this with `LineboxScanner`'s walk in the box list, or put this into `Box`.
- debug!("InlineFlow::assign_widths: floats_in: {:?}", self.base.floats_in);
+ debug!("InlineFlow::assign_widths: floats in: {:?}", self.base.floats);
{
let this = &mut *self;
@@ -698,12 +697,12 @@ impl Flow for InlineFlow {
// determine its height for computing linebox height.
//
// TODO(pcwalton): Cache the linebox scanner?
- debug!("assign_height_inline: floats_in: {:?}", self.base.floats_in);
+ debug!("assign_height_inline: floats in: {:?}", self.base.floats);
// assign height for inline boxes
for box_ in self.boxes.iter() {
box_.assign_height();
}
- let scanner_floats = self.base.floats_in.clone();
+ let scanner_floats = self.base.floats.clone();
let mut scanner = LineboxScanner::new(scanner_floats);
// Access the linebox scanner.
@@ -880,9 +879,8 @@ impl Flow for InlineFlow {
Au::new(0)
};
- self.base.floats_out = scanner.floats_out()
- .translate(Point2D(Au::new(0),
- -self.base.position.size.height));
+ self.base.floats = scanner.floats();
+ self.base.floats.translate(Point2D(Au::new(0), -self.base.position.size.height));
}
fn collapse_margins(&mut self,