mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Split layout_2020/flexbox.rs
into modules
This commit is contained in:
parent
dcd25a06da
commit
dd0d6a2a6f
3 changed files with 57 additions and 38 deletions
|
@ -2,36 +2,21 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* 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/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use super::{FlexContainer, FlexLevelBox};
|
||||||
use crate::cell::ArcRefCell;
|
use crate::cell::ArcRefCell;
|
||||||
use crate::context::LayoutContext;
|
use crate::context::LayoutContext;
|
||||||
use crate::dom_traversal::{
|
use crate::dom_traversal::{
|
||||||
BoxSlot, Contents, NodeAndStyleInfo, NodeExt, NonReplacedContents, TraversalHandler,
|
BoxSlot, Contents, NodeAndStyleInfo, NodeExt, NonReplacedContents, TraversalHandler,
|
||||||
};
|
};
|
||||||
use crate::element_data::LayoutBox;
|
use crate::element_data::LayoutBox;
|
||||||
use crate::formatting_contexts::{IndependentFormattingContext, IndependentLayout};
|
use crate::formatting_contexts::IndependentFormattingContext;
|
||||||
use crate::fragments::Tag;
|
use crate::fragments::Tag;
|
||||||
use crate::positioned::{AbsolutelyPositionedBox, PositioningContext};
|
use crate::positioned::AbsolutelyPositionedBox;
|
||||||
use crate::sizing::{BoxContentSizes, ContentSizes, ContentSizesRequest};
|
use crate::sizing::{BoxContentSizes, ContentSizes, ContentSizesRequest};
|
||||||
use crate::style_ext::DisplayGeneratingBox;
|
use crate::style_ext::DisplayGeneratingBox;
|
||||||
use crate::ContainingBlock;
|
|
||||||
use rayon::iter::{IntoParallelIterator, ParallelIterator};
|
use rayon::iter::{IntoParallelIterator, ParallelIterator};
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use style::values::computed::Length;
|
|
||||||
use style::values::specified::text::TextDecorationLine;
|
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 {
|
impl FlexContainer {
|
||||||
pub fn construct<'dom>(
|
pub fn construct<'dom>(
|
||||||
|
@ -230,23 +215,3 @@ where
|
||||||
FlexContainer { children }
|
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(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
33
components/layout_2020/flexbox/layout.rs
Normal file
33
components/layout_2020/flexbox/layout.rs
Normal file
|
@ -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(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
21
components/layout_2020/flexbox/mod.rs
Normal file
21
components/layout_2020/flexbox/mod.rs
Normal file
|
@ -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>),
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue