layout: Refactor Flow::from_fragment-style constructors to be

consistent.
This commit is contained in:
Patrick Walton 2016-10-24 17:25:56 -07:00
parent e888b76534
commit be252371ea
11 changed files with 35 additions and 15 deletions

View file

@ -533,7 +533,12 @@ impl Encodable for BlockFlowFlags {
} }
impl BlockFlow { impl BlockFlow {
pub fn from_fragment(fragment: Fragment, float_kind: Option<FloatKind>) -> BlockFlow { pub fn from_fragment(fragment: Fragment) -> BlockFlow {
BlockFlow::from_fragment_and_float_kind(fragment, None)
}
pub fn from_fragment_and_float_kind(fragment: Fragment, float_kind: Option<FloatKind>)
-> BlockFlow {
let writing_mode = fragment.style().writing_mode; let writing_mode = fragment.style().writing_mode;
BlockFlow { BlockFlow {
base: BaseFlow::new(Some(fragment.style()), writing_mode, match float_kind { base: BaseFlow::new(Some(fragment.style()), writing_mode, match float_kind {

View file

@ -768,8 +768,9 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
return self.build_flow_for_multicol(node, float_kind) return self.build_flow_for_multicol(node, float_kind)
} }
let flow: FlowRef = Arc::new( let fragment = self.build_fragment_for_block(node);
BlockFlow::from_fragment(self.build_fragment_for_block(node), float_kind)); let flow: FlowRef =
Arc::new(BlockFlow::from_fragment_and_float_kind(fragment, float_kind));
self.build_flow_for_block_like(flow, node) self.build_flow_for_block_like(flow, node)
} }
@ -1165,7 +1166,7 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
-> ConstructionResult { -> ConstructionResult {
let fragment = Fragment::new(node, SpecificFragmentInfo::TableWrapper, self.layout_context); let fragment = Fragment::new(node, SpecificFragmentInfo::TableWrapper, self.layout_context);
let mut wrapper_flow: FlowRef = Arc::new( let mut wrapper_flow: FlowRef = Arc::new(
TableWrapperFlow::from_fragment(fragment, FloatKind::from_property(float_value))); TableWrapperFlow::from_fragment_and_float_kind(fragment, FloatKind::from_property(float_value)));
let table_fragment = Fragment::new(node, SpecificFragmentInfo::Table, self.layout_context); let table_fragment = Fragment::new(node, SpecificFragmentInfo::Table, self.layout_context);
let table_flow = Arc::new(TableFlow::from_fragment(table_fragment)); let table_flow = Arc::new(TableFlow::from_fragment(table_fragment));

View file

@ -382,7 +382,7 @@ impl FlexFlow {
} }
FlexFlow { FlexFlow {
block_flow: BlockFlow::from_fragment(fragment, flotation), block_flow: BlockFlow::from_fragment_and_float_kind(fragment, flotation),
main_mode: main_mode, main_mode: main_mode,
available_main_size: AxisSize::Infinite, available_main_size: AxisSize::Infinite,
available_cross_size: AxisSize::Infinite, available_cross_size: AxisSize::Infinite,

View file

@ -42,7 +42,7 @@ impl ListItemFlow {
flotation: Option<FloatKind>) flotation: Option<FloatKind>)
-> ListItemFlow { -> ListItemFlow {
let mut this = ListItemFlow { let mut this = ListItemFlow {
block_flow: BlockFlow::from_fragment(main_fragment, flotation), block_flow: BlockFlow::from_fragment_and_float_kind(main_fragment, flotation),
marker_fragments: marker_fragments, marker_fragments: marker_fragments,
}; };

View file

@ -41,7 +41,7 @@ pub struct MulticolColumnFlow {
impl MulticolFlow { impl MulticolFlow {
pub fn from_fragment(fragment: Fragment, float_kind: Option<FloatKind>) -> MulticolFlow { pub fn from_fragment(fragment: Fragment, float_kind: Option<FloatKind>) -> MulticolFlow {
MulticolFlow { MulticolFlow {
block_flow: BlockFlow::from_fragment(fragment, float_kind), block_flow: BlockFlow::from_fragment_and_float_kind(fragment, float_kind),
column_pitch: Au(0), column_pitch: Au(0),
} }
} }
@ -50,7 +50,7 @@ impl MulticolFlow {
impl MulticolColumnFlow { impl MulticolColumnFlow {
pub fn from_fragment(fragment: Fragment) -> MulticolColumnFlow { pub fn from_fragment(fragment: Fragment) -> MulticolColumnFlow {
MulticolColumnFlow { MulticolColumnFlow {
block_flow: BlockFlow::from_fragment(fragment, None), block_flow: BlockFlow::from_fragment(fragment),
} }
} }
} }

View file

@ -63,7 +63,7 @@ pub struct TableFlow {
impl TableFlow { impl TableFlow {
pub fn from_fragment(fragment: Fragment) -> TableFlow { pub fn from_fragment(fragment: Fragment) -> TableFlow {
let mut block_flow = BlockFlow::from_fragment(fragment, None); let mut block_flow = BlockFlow::from_fragment(fragment);
let table_layout = let table_layout =
if block_flow.fragment().style().get_table().table_layout == table_layout::T::fixed { if block_flow.fragment().style().get_table().table_layout == table_layout::T::fixed {
TableLayout::Fixed TableLayout::Fixed

View file

@ -29,7 +29,7 @@ pub struct TableCaptionFlow {
impl TableCaptionFlow { impl TableCaptionFlow {
pub fn from_fragment(fragment: Fragment) -> TableCaptionFlow { pub fn from_fragment(fragment: Fragment) -> TableCaptionFlow {
TableCaptionFlow { TableCaptionFlow {
block_flow: BlockFlow::from_fragment(fragment, None) block_flow: BlockFlow::from_fragment(fragment),
} }
} }
} }

View file

@ -46,10 +46,19 @@ pub struct TableCellFlow {
} }
impl TableCellFlow { impl TableCellFlow {
pub fn from_fragment(fragment: Fragment) -> TableCellFlow {
TableCellFlow {
block_flow: BlockFlow::from_fragment(fragment),
collapsed_borders: CollapsedBordersForCell::new(),
column_span: 1,
visible: true,
}
}
pub fn from_node_fragment_and_visibility_flag<N: ThreadSafeLayoutNode>( pub fn from_node_fragment_and_visibility_flag<N: ThreadSafeLayoutNode>(
node: &N, fragment: Fragment, visible: bool) -> TableCellFlow { node: &N, fragment: Fragment, visible: bool) -> TableCellFlow {
TableCellFlow { TableCellFlow {
block_flow: BlockFlow::from_fragment(fragment, None), block_flow: BlockFlow::from_fragment(fragment),
collapsed_borders: CollapsedBordersForCell::new(), collapsed_borders: CollapsedBordersForCell::new(),
column_span: node.get_colspan(), column_span: node.get_colspan(),
visible: visible, visible: visible,

View file

@ -84,7 +84,7 @@ impl TableRowFlow {
pub fn from_fragment(fragment: Fragment) -> TableRowFlow { pub fn from_fragment(fragment: Fragment) -> TableRowFlow {
let writing_mode = fragment.style().writing_mode; let writing_mode = fragment.style().writing_mode;
TableRowFlow { TableRowFlow {
block_flow: BlockFlow::from_fragment(fragment, None), block_flow: BlockFlow::from_fragment(fragment),
cell_intrinsic_inline_sizes: Vec::new(), cell_intrinsic_inline_sizes: Vec::new(),
column_computed_inline_sizes: Vec::new(), column_computed_inline_sizes: Vec::new(),
spacing: border_spacing::T { spacing: border_spacing::T {

View file

@ -64,7 +64,7 @@ impl TableRowGroupFlow {
pub fn from_fragment(fragment: Fragment) -> TableRowGroupFlow { pub fn from_fragment(fragment: Fragment) -> TableRowGroupFlow {
let writing_mode = fragment.style().writing_mode; let writing_mode = fragment.style().writing_mode;
TableRowGroupFlow { TableRowGroupFlow {
block_flow: BlockFlow::from_fragment(fragment, None), block_flow: BlockFlow::from_fragment(fragment),
column_intrinsic_inline_sizes: Vec::new(), column_intrinsic_inline_sizes: Vec::new(),
column_computed_inline_sizes: Vec::new(), column_computed_inline_sizes: Vec::new(),
spacing: border_spacing::T { spacing: border_spacing::T {

View file

@ -57,8 +57,13 @@ pub struct TableWrapperFlow {
} }
impl TableWrapperFlow { impl TableWrapperFlow {
pub fn from_fragment(fragment: Fragment, float_kind: Option<FloatKind>) -> TableWrapperFlow { pub fn from_fragment(fragment: Fragment) -> TableWrapperFlow {
let mut block_flow = BlockFlow::from_fragment(fragment, float_kind); TableWrapperFlow::from_fragment_and_float_kind(fragment, None)
}
pub fn from_fragment_and_float_kind(fragment: Fragment, float_kind: Option<FloatKind>)
-> TableWrapperFlow {
let mut block_flow = BlockFlow::from_fragment_and_float_kind(fragment, float_kind);
let table_layout = if block_flow.fragment().style().get_table().table_layout == let table_layout = if block_flow.fragment().style().get_table().table_layout ==
table_layout::T::fixed { table_layout::T::fixed {
TableLayout::Fixed TableLayout::Fixed