aboutsummaryrefslogtreecommitdiffstats
path: root/components/style
diff options
context:
space:
mode:
Diffstat (limited to 'components/style')
-rw-r--r--components/style/Cargo.toml2
-rw-r--r--components/style/logical_geometry.rs22
-rw-r--r--components/style/media_queries.rs8
-rw-r--r--components/style/properties/longhand/box.mako.rs82
-rw-r--r--components/style/viewport.rs10
5 files changed, 59 insertions, 65 deletions
diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml
index 46f62850e60..db0e441f13d 100644
--- a/components/style/Cargo.toml
+++ b/components/style/Cargo.toml
@@ -25,7 +25,7 @@ bitflags = "0.7"
cssparser = "0.5.5"
deque = "0.3.1"
encoding = "0.2"
-euclid = "0.7.1"
+euclid = "0.8.2"
fnv = "1.0"
gecko_bindings = {path = "../../ports/geckolib/gecko_bindings", optional = true}
gecko_string_cache = {path = "../../ports/geckolib/string_cache", optional = true}
diff --git a/components/style/logical_geometry.rs b/components/style/logical_geometry.rs
index 2b41b512910..71a7dda8bc7 100644
--- a/components/style/logical_geometry.rs
+++ b/components/style/logical_geometry.rs
@@ -301,9 +301,9 @@ impl<T: Copy> LogicalSize<T> {
pub fn to_physical(&self, mode: WritingMode) -> Size2D<T> {
self.debug_writing_mode.check(mode);
if mode.is_vertical() {
- Size2D { width: self.block, height: self.inline }
+ Size2D::new(self.block, self.inline)
} else {
- Size2D { width: self.inline, height: self.block }
+ Size2D::new(self.inline, self.block)
}
}
@@ -450,15 +450,13 @@ impl<T: Copy + Sub<T, Output=T>> LogicalPoint<T> {
pub fn to_physical(&self, mode: WritingMode, container_size: Size2D<T>) -> Point2D<T> {
self.debug_writing_mode.check(mode);
if mode.is_vertical() {
- Point2D {
- x: if mode.is_vertical_lr() { self.b } else { container_size.width - self.b },
- y: if mode.is_inline_tb() { self.i } else { container_size.height - self.i }
- }
+ Point2D::new(
+ if mode.is_vertical_lr() { self.b } else { container_size.width - self.b },
+ if mode.is_inline_tb() { self.i } else { container_size.height - self.i })
} else {
- Point2D {
- x: if mode.is_bidi_ltr() { self.i } else { container_size.width - self.i },
- y: self.b
- }
+ Point2D::new(
+ if mode.is_bidi_ltr() { self.i } else { container_size.width - self.i },
+ self.b)
}
}
@@ -953,8 +951,8 @@ impl<T: Copy + Add<T, Output=T> + Sub<T, Output=T>> LogicalRect<T> {
}
}
Rect {
- origin: Point2D { x: x, y: y },
- size: Size2D { width: width, height: height },
+ origin: Point2D::new(x, y),
+ size: Size2D::new(width, height),
}
}
diff --git a/components/style/media_queries.rs b/components/style/media_queries.rs
index 59c1a24e355..a5a4206a4a1 100644
--- a/components/style/media_queries.rs
+++ b/components/style/media_queries.rs
@@ -118,11 +118,11 @@ pub enum MediaType {
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
pub struct Device {
pub media_type: MediaType,
- pub viewport_size: TypedSize2D<ViewportPx, f32>,
+ pub viewport_size: TypedSize2D<f32, ViewportPx>,
}
impl Device {
- pub fn new(media_type: MediaType, viewport_size: TypedSize2D<ViewportPx, f32>) -> Device {
+ pub fn new(media_type: MediaType, viewport_size: TypedSize2D<f32, ViewportPx>) -> Device {
Device {
media_type: media_type,
viewport_size: viewport_size,
@@ -131,8 +131,8 @@ impl Device {
#[inline]
pub fn au_viewport_size(&self) -> Size2D<Au> {
- Size2D::new(Au::from_f32_px(self.viewport_size.width.get()),
- Au::from_f32_px(self.viewport_size.height.get()))
+ Size2D::new(Au::from_f32_px(self.viewport_size.width),
+ Au::from_f32_px(self.viewport_size.height))
}
}
diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs
index c9639ae0a84..492edf3d97b 100644
--- a/components/style/properties/longhand/box.mako.rs
+++ b/components/style/properties/longhand/box.mako.rs
@@ -369,47 +369,43 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto",
animatable="False">
use self::computed_value::{StartEnd, TransitionTimingFunction};
- use euclid::point::Point2D;
+ use euclid::point::{Point2D, TypedPoint2D};
+ use std::marker::PhantomData;
pub use self::computed_value::SingleComputedValue as SingleSpecifiedValue;
pub use self::computed_value::T as SpecifiedValue;
- static EASE: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D {
- x: 0.25,
- y: 0.1,
- }, Point2D {
- x: 0.25,
- y: 1.0,
- });
- static LINEAR: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D {
- x: 0.0,
- y: 0.0,
- }, Point2D {
- x: 1.0,
- y: 1.0,
- });
- static EASE_IN: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D {
- x: 0.42,
- y: 0.0,
- }, Point2D {
- x: 1.0,
- y: 1.0,
- });
- static EASE_OUT: TransitionTimingFunction = TransitionTimingFunction::CubicBezier(Point2D {
- x: 0.0,
- y: 0.0,
- }, Point2D {
- x: 0.58,
- y: 1.0,
- });
- static EASE_IN_OUT: TransitionTimingFunction =
- TransitionTimingFunction::CubicBezier(Point2D {
- x: 0.42,
- y: 0.0,
- }, Point2D {
- x: 0.58,
- y: 1.0,
- });
+ // FIXME: This could use static variables and const functions when they are available.
+ #[inline(always)]
+ fn ease() -> TransitionTimingFunction {
+ TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.25, 0.1),
+ TypedPoint2D::new(0.25, 1.0))
+ }
+
+ #[inline(always)]
+ fn linear() -> TransitionTimingFunction {
+ TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.0, 0.0),
+ TypedPoint2D::new(1.0, 1.0))
+ }
+
+ #[inline(always)]
+ fn ease_in() -> TransitionTimingFunction {
+ TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.42, 0.0),
+ TypedPoint2D::new(1.0, 1.0))
+ }
+
+ #[inline(always)]
+ fn ease_out() -> TransitionTimingFunction {
+ TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.0, 0.0),
+ TypedPoint2D::new(0.58, 1.0))
+ }
+
+ #[inline(always)]
+ fn ease_in_out() -> TransitionTimingFunction {
+ TransitionTimingFunction::CubicBezier(TypedPoint2D::new(0.42, 0.0),
+ TypedPoint2D::new(0.58, 1.0))
+ }
+
static STEP_START: TransitionTimingFunction =
TransitionTimingFunction::Steps(1, StartEnd::Start);
static STEP_END: TransitionTimingFunction =
@@ -509,7 +505,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto",
#[inline]
pub fn get_initial_single_value() -> TransitionTimingFunction {
- EASE
+ ease()
}
pub fn parse_one(input: &mut Parser) -> Result<SingleSpecifiedValue,()> {
@@ -551,11 +547,11 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto",
}
match_ignore_ascii_case! {
try!(input.expect_ident()),
- "ease" => Ok(EASE),
- "linear" => Ok(LINEAR),
- "ease-in" => Ok(EASE_IN),
- "ease-out" => Ok(EASE_OUT),
- "ease-in-out" => Ok(EASE_IN_OUT),
+ "ease" => Ok(ease()),
+ "linear" => Ok(linear()),
+ "ease-in" => Ok(ease_in()),
+ "ease-out" => Ok(ease_out()),
+ "ease-in-out" => Ok(ease_in_out()),
"step-start" => Ok(STEP_START),
"step-end" => Ok(STEP_END),
_ => Err(())
diff --git a/components/style/viewport.rs b/components/style/viewport.rs
index ebed8cc2600..253c5440a2a 100644
--- a/components/style/viewport.rs
+++ b/components/style/viewport.rs
@@ -555,13 +555,13 @@ impl<'a, I> ViewportDescriptorDeclarationCascade for I
}
pub trait MaybeNew {
- fn maybe_new(initial_viewport: TypedSize2D<ViewportPx, f32>,
+ fn maybe_new(initial_viewport: TypedSize2D<f32, ViewportPx>,
rule: &ViewportRule)
-> Option<ViewportConstraints>;
}
impl MaybeNew for ViewportConstraints {
- fn maybe_new(initial_viewport: TypedSize2D<ViewportPx, f32>,
+ fn maybe_new(initial_viewport: TypedSize2D<f32, ViewportPx>,
rule: &ViewportRule)
-> Option<ViewportConstraints>
{
@@ -639,8 +639,8 @@ impl MaybeNew for ViewportConstraints {
//
// Note: DEVICE-ADAPT § 5. states that relative length values are
// resolved against initial values
- let initial_viewport = Size2D::new(Au::from_f32_px(initial_viewport.width.get()),
- Au::from_f32_px(initial_viewport.height.get()));
+ let initial_viewport = Size2D::new(Au::from_f32_px(initial_viewport.width),
+ Au::from_f32_px(initial_viewport.height));
let context = Context {
@@ -749,7 +749,7 @@ impl MaybeNew for ViewportConstraints {
});
Some(ViewportConstraints {
- size: Size2D::typed(width.to_f32_px(), height.to_f32_px()),
+ size: TypedSize2D::new(width.to_f32_px(), height.to_f32_px()),
// TODO: compute a zoom factor for 'auto' as suggested by DEVICE-ADAPT § 10.
initial_zoom: ScaleFactor::new(initial_zoom.unwrap_or(1.)),