diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2020-06-09 22:54:48 +0200 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2020-06-10 08:43:51 +0200 |
commit | dd0d6a2a6ffa52b45721448dc76ed44bde93b589 (patch) | |
tree | b5bc4c579d7af0c995f4fefb636a91b476902775 | |
parent | dcd25a06da623e1620a82f5debe08c03397e3568 (diff) | |
download | servo-dd0d6a2a6ffa52b45721448dc76ed44bde93b589.tar.gz servo-dd0d6a2a6ffa52b45721448dc76ed44bde93b589.zip |
Split `layout_2020/flexbox.rs` into modules
-rw-r--r-- | components/layout_2020/flexbox/construct.rs (renamed from components/layout_2020/flexbox.rs) | 41 | ||||
-rw-r--r-- | components/layout_2020/flexbox/layout.rs | 33 | ||||
-rw-r--r-- | components/layout_2020/flexbox/mod.rs | 21 |
3 files changed, 57 insertions, 38 deletions
diff --git a/components/layout_2020/flexbox.rs b/components/layout_2020/flexbox/construct.rs index 32ea3340ff7..e23858efe7f 100644 --- a/components/layout_2020/flexbox.rs +++ b/components/layout_2020/flexbox/construct.rs @@ -2,36 +2,21 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use super::{FlexContainer, FlexLevelBox}; use crate::cell::ArcRefCell; use crate::context::LayoutContext; use crate::dom_traversal::{ BoxSlot, Contents, NodeAndStyleInfo, NodeExt, NonReplacedContents, TraversalHandler, }; use crate::element_data::LayoutBox; -use crate::formatting_contexts::{IndependentFormattingContext, IndependentLayout}; +use crate::formatting_contexts::IndependentFormattingContext; use crate::fragments::Tag; -use crate::positioned::{AbsolutelyPositionedBox, PositioningContext}; +use crate::positioned::AbsolutelyPositionedBox; use crate::sizing::{BoxContentSizes, ContentSizes, ContentSizesRequest}; use crate::style_ext::DisplayGeneratingBox; -use crate::ContainingBlock; use rayon::iter::{IntoParallelIterator, ParallelIterator}; use std::borrow::Cow; -use style::values::computed::Length; use style::values::specified::text::TextDecorationLine; -use style::Zero; - -// FIXME: `min-width: auto` is not zero: https://drafts.csswg.org/css-flexbox/#min-size-auto - -#[derive(Debug, Serialize)] -pub(crate) struct FlexContainer { - children: Vec<ArcRefCell<FlexLevelBox>>, -} - -#[derive(Debug, Serialize)] -pub(crate) enum FlexLevelBox { - FlexItem(IndependentFormattingContext), - OutOfFlowAbsolutelyPositionedBox(ArcRefCell<AbsolutelyPositionedBox>), -} impl FlexContainer { pub fn construct<'dom>( @@ -230,23 +215,3 @@ where FlexContainer { children } } } - -impl FlexContainer { - pub(crate) fn layout( - &self, - layout_context: &LayoutContext, - positioning_context: &mut PositioningContext, - containing_block: &ContainingBlock, - tree_rank: usize, - ) -> IndependentLayout { - // FIXME - let _ = layout_context; - let _ = positioning_context; - let _ = containing_block; - let _ = tree_rank; - IndependentLayout { - fragments: Vec::new(), - content_block_size: Length::zero(), - } - } -} diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs new file mode 100644 index 00000000000..1da062b7764 --- /dev/null +++ b/components/layout_2020/flexbox/layout.rs @@ -0,0 +1,33 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +use super::FlexContainer; +use crate::context::LayoutContext; +use crate::formatting_contexts::IndependentLayout; +use crate::positioned::PositioningContext; +use crate::ContainingBlock; +use style::values::computed::Length; +use style::Zero; + +// FIXME: `min-width: auto` is not zero: https://drafts.csswg.org/css-flexbox/#min-size-auto + +impl FlexContainer { + pub(crate) fn layout( + &self, + layout_context: &LayoutContext, + positioning_context: &mut PositioningContext, + containing_block: &ContainingBlock, + tree_rank: usize, + ) -> IndependentLayout { + // FIXME + let _ = layout_context; + let _ = positioning_context; + let _ = containing_block; + let _ = tree_rank; + IndependentLayout { + fragments: Vec::new(), + content_block_size: Length::zero(), + } + } +} diff --git a/components/layout_2020/flexbox/mod.rs b/components/layout_2020/flexbox/mod.rs new file mode 100644 index 00000000000..c7aed0bd0e9 --- /dev/null +++ b/components/layout_2020/flexbox/mod.rs @@ -0,0 +1,21 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +use crate::cell::ArcRefCell; +use crate::formatting_contexts::IndependentFormattingContext; +use crate::positioned::AbsolutelyPositionedBox; + +mod construct; +mod layout; + +#[derive(Debug, Serialize)] +pub(crate) struct FlexContainer { + children: Vec<ArcRefCell<FlexLevelBox>>, +} + +#[derive(Debug, Serialize)] +pub(crate) enum FlexLevelBox { + FlexItem(IndependentFormattingContext), + OutOfFlowAbsolutelyPositionedBox(ArcRefCell<AbsolutelyPositionedBox>), +} |