зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #17508 - Use generics for SimpleShadow (from servo:derive-all-the-things); r=emilio
Source-Repo: https://github.com/servo/servo Source-Revision: 946c9aede12b19bab11f7f25db68f18c19c5b4a2 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : 8c3f77c83b662b7722a51c04e1f3412d5f0a4409
This commit is contained in:
Родитель
6a1857dae7
Коммит
811da8a5b6
|
@ -16,6 +16,7 @@ use values::computed::effects::SimpleShadow as ComputedSimpleShadow;
|
|||
use values::computed::length::Length;
|
||||
use values::generics::effects::Filter as GenericFilter;
|
||||
use values::generics::effects::FilterList as GenericFilterList;
|
||||
use values::generics::effects::SimpleShadow as GenericSimpleShadow;
|
||||
|
||||
/// An animated value for the `filter` property.
|
||||
pub type FilterList = GenericFilterList<Filter>;
|
||||
|
@ -29,21 +30,7 @@ pub type Filter = GenericFilter<Angle, Number, Length, SimpleShadow>;
|
|||
pub type Filter = GenericFilter<Angle, Number, Length, Impossible>;
|
||||
|
||||
/// An animated value for the `drop-shadow()` filter.
|
||||
///
|
||||
/// Contrary to the canonical order from the spec, the color is serialised
|
||||
/// first, like in Gecko and Webkit.
|
||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
pub struct SimpleShadow {
|
||||
/// Color.
|
||||
pub color: IntermediateColor,
|
||||
/// Horizontal radius.
|
||||
pub horizontal: Length,
|
||||
/// Vertical radius.
|
||||
pub vertical: Length,
|
||||
/// Blur radius.
|
||||
pub blur: Length,
|
||||
}
|
||||
pub type SimpleShadow = GenericSimpleShadow<IntermediateColor, Length, Length>;
|
||||
|
||||
#[cfg(feature = "gecko")]
|
||||
impl From<ComputedFilterList> for FilterList {
|
||||
|
|
|
@ -11,6 +11,7 @@ use values::computed::color::Color;
|
|||
use values::computed::length::Length;
|
||||
use values::generics::effects::Filter as GenericFilter;
|
||||
use values::generics::effects::FilterList as GenericFilterList;
|
||||
use values::generics::effects::SimpleShadow as GenericSimpleShadow;
|
||||
|
||||
/// A computed value for the `filter` property.
|
||||
pub type FilterList = GenericFilterList<Filter>;
|
||||
|
@ -24,21 +25,7 @@ pub type Filter = GenericFilter<Angle, Number, Length, SimpleShadow>;
|
|||
pub type Filter = GenericFilter<Angle, Number, Length, Impossible>;
|
||||
|
||||
/// A computed value for the `drop-shadow()` filter.
|
||||
///
|
||||
/// Contrary to the canonical order from the spec, the color is serialised
|
||||
/// first, like in Gecko and Webkit.
|
||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||
#[derive(Clone, Debug, PartialEq, ToCss)]
|
||||
pub struct SimpleShadow {
|
||||
/// Color.
|
||||
pub color: Color,
|
||||
/// Horizontal radius.
|
||||
pub horizontal: Length,
|
||||
/// Vertical radius.
|
||||
pub vertical: Length,
|
||||
/// Blur radius.
|
||||
pub blur: Length,
|
||||
}
|
||||
pub type SimpleShadow = GenericSimpleShadow<Color, Length, Length>;
|
||||
|
||||
impl FilterList {
|
||||
/// Returns the resulting opacity of this filter pipeline.
|
||||
|
|
|
@ -55,6 +55,23 @@ pub enum Filter<Angle, Factor, Length, DropShadow> {
|
|||
Url(SpecifiedUrl),
|
||||
}
|
||||
|
||||
/// A generic value for the `drop-shadow()` filter and the `text-shadow` property.
|
||||
///
|
||||
/// Contrary to the canonical order from the spec, the color is serialised
|
||||
/// first, like in Gecko and Webkit.
|
||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||
#[derive(Clone, Debug, HasViewportPercentage, PartialEq, ToCss)]
|
||||
pub struct SimpleShadow<Color, SizeLength, ShapeLength> {
|
||||
/// Color.
|
||||
pub color: Color,
|
||||
/// Horizontal radius.
|
||||
pub horizontal: SizeLength,
|
||||
/// Vertical radius.
|
||||
pub vertical: SizeLength,
|
||||
/// Blur radius.
|
||||
pub blur: ShapeLength,
|
||||
}
|
||||
|
||||
impl<F> FilterList<F> {
|
||||
/// Returns `none`.
|
||||
#[inline]
|
||||
|
|
|
@ -13,6 +13,7 @@ use values::computed::{Context, Number as ComputedNumber, ToComputedValue};
|
|||
use values::computed::effects::SimpleShadow as ComputedSimpleShadow;
|
||||
use values::generics::effects::Filter as GenericFilter;
|
||||
use values::generics::effects::FilterList as GenericFilterList;
|
||||
use values::generics::effects::SimpleShadow as GenericSimpleShadow;
|
||||
use values::specified::{Angle, Percentage};
|
||||
use values::specified::color::Color;
|
||||
use values::specified::length::Length;
|
||||
|
@ -43,21 +44,7 @@ pub enum Factor {
|
|||
}
|
||||
|
||||
/// A specified value for the `drop-shadow()` filter.
|
||||
///
|
||||
/// Contrary to the canonical order from the spec, the color is serialised
|
||||
/// first, like in Gecko's computed values and in all Webkit's values.
|
||||
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
||||
#[derive(Clone, Debug, HasViewportPercentage, PartialEq, ToCss)]
|
||||
pub struct SimpleShadow {
|
||||
/// Color.
|
||||
pub color: Option<Color>,
|
||||
/// Horizontal radius.
|
||||
pub horizontal: Length,
|
||||
/// Vertical radius.
|
||||
pub vertical: Length,
|
||||
/// Blur radius.
|
||||
pub blur: Option<Length>,
|
||||
}
|
||||
pub type SimpleShadow = GenericSimpleShadow<Option<Color>, Length, Option<Length>>;
|
||||
|
||||
impl Parse for FilterList {
|
||||
#[inline]
|
||||
|
|
Загрузка…
Ссылка в новой задаче