diff options
Diffstat (limited to 'components')
-rw-r--r-- | components/layout/construct.rs | 2 | ||||
-rw-r--r-- | components/layout/flex.rs | 4 | ||||
-rw-r--r-- | components/layout/fragment.rs | 4 | ||||
-rw-r--r-- | components/layout/model.rs | 7 | ||||
-rw-r--r-- | components/style/logical_geometry.rs | 17 |
5 files changed, 22 insertions, 12 deletions
diff --git a/components/layout/construct.rs b/components/layout/construct.rs index 8841b1ab3e9..d9fa67cd756 100644 --- a/components/layout/construct.rs +++ b/components/layout/construct.rs @@ -34,7 +34,6 @@ use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow}; use inline::{InlineFragmentNodeInfo, LAST_FRAGMENT_OF_ELEMENT}; use linked_list::prepend_from; use list_item::{ListItemFlow, ListStyleTypeContent}; -use model::Direction; use multicol::{MulticolColumnFlow, MulticolFlow}; use parallel; use script_layout_interface::{LayoutElementType, LayoutNodeType, is_image_data}; @@ -49,6 +48,7 @@ use style::computed_values::{caption_side, display, empty_cells, float, list_sty use style::computed_values::content::ContentItem; use style::computed_values::position; use style::context::SharedStyleContext; +use style::logical_geometry::Direction; use style::properties::{self, ServoComputedValues}; use style::selector_impl::{PseudoElement, RestyleDamage}; use style::selector_matching::Stylist; diff --git a/components/layout/flex.rs b/components/layout/flex.rs index b2ee3555857..d84373a7c21 100644 --- a/components/layout/flex.rs +++ b/components/layout/flex.rs @@ -19,7 +19,7 @@ use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use gfx::display_list::StackingContext; use gfx_traits::ScrollRootId; use layout_debug; -use model::{Direction, IntrinsicISizes, MaybeAuto, MinMaxConstraint}; +use model::{IntrinsicISizes, MaybeAuto, MinMaxConstraint}; use model::{specified, specified_or_none}; use std::cmp::{max, min}; use std::ops::Range; @@ -27,7 +27,7 @@ use std::sync::Arc; use style::computed_values::{align_content, align_self, flex_direction, flex_wrap, justify_content}; use style::computed_values::border_collapse; use style::context::{SharedStyleContext, StyleContext}; -use style::logical_geometry::LogicalSize; +use style::logical_geometry::{Direction, LogicalSize}; use style::properties::ServoComputedValues; use style::servo::restyle_damage::{REFLOW, REFLOW_OUT_OF_FLOW}; use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto}; diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 2c193d09e41..a0f09dd5dd1 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -23,7 +23,7 @@ use inline::{InlineMetrics, LAST_FRAGMENT_OF_ELEMENT, LineMetrics}; use ipc_channel::ipc::IpcSender; #[cfg(debug_assertions)] use layout_debug; -use model::{self, Direction, IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto}; +use model::{self, IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto}; use msg::constellation_msg::PipelineId; use net_traits::image::base::{Image, ImageMetadata}; use net_traits::image_cache_thread::{ImageOrMetadataAvailable, UsePlaceholder}; @@ -44,7 +44,7 @@ use style::computed_values::{transform_style, vertical_align, white_space, word_ use style::computed_values::content::ContentItem; use style::context::SharedStyleContext; use style::dom::TRestyleDamage; -use style::logical_geometry::{LogicalMargin, LogicalRect, LogicalSize, WritingMode}; +use style::logical_geometry::{Direction, LogicalMargin, LogicalRect, LogicalSize, WritingMode}; use style::properties::ServoComputedValues; use style::selector_impl::RestyleDamage; use style::servo::restyle_damage::RECONSTRUCT_FLOW; diff --git a/components/layout/model.rs b/components/layout/model.rs index d57bb2628fa..a0693e0d8f8 100644 --- a/components/layout/model.rs +++ b/components/layout/model.rs @@ -504,13 +504,6 @@ impl ToGfxMatrix for ComputedMatrix { } } -// Used to specify the logical direction. -#[derive(Debug, Clone, Copy, PartialEq)] -pub enum Direction { - Inline, - Block -} - // https://drafts.csswg.org/css2/visudet.html#min-max-widths // https://drafts.csswg.org/css2/visudet.html#min-max-heights /// A min or max constraint diff --git a/components/style/logical_geometry.rs b/components/style/logical_geometry.rs index 94dcd3881db..242a061b0da 100644 --- a/components/style/logical_geometry.rs +++ b/components/style/logical_geometry.rs @@ -213,6 +213,13 @@ impl Debug for DebugWritingMode { } +// Used to specify the logical direction. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Direction { + Inline, + Block +} + /// A 2D size in flow-relative dimensions #[derive(PartialEq, Eq, Clone, Copy)] #[cfg_attr(feature = "servo", derive(Serialize))] @@ -764,6 +771,16 @@ impl<T: Copy + Add<T, Output=T>> LogicalMargin<T> { } #[inline] + pub fn start_end(&self, direction: Direction) -> T { + match direction { + Direction::Inline => + self.inline_start + self.inline_end, + Direction::Block => + self.block_start + self.block_end + } + } + + #[inline] pub fn top_bottom(&self, mode: WritingMode) -> T { self.debug_writing_mode.check(mode); if mode.is_vertical() { |