Move ToCss impl for Shadow types to values mod.

This commit is contained in:
Xidorn Quan 2017-06-07 13:16:54 +10:00
parent f388c0ab1e
commit 2bd1ff0450
3 changed files with 39 additions and 42 deletions

View file

@ -19,56 +19,14 @@ ${helpers.predefined_type("opacity",
extra_prefixes="webkit" extra_prefixes="webkit"
ignored_when_colors_disabled="True" ignored_when_colors_disabled="True"
spec="https://drafts.csswg.org/css-backgrounds/#box-shadow"> spec="https://drafts.csswg.org/css-backgrounds/#box-shadow">
use std::fmt;
use style_traits::ToCss;
pub type SpecifiedValue = specified::Shadow; pub type SpecifiedValue = specified::Shadow;
impl ToCss for SpecifiedValue {
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
if self.inset {
try!(dest.write_str("inset "));
}
try!(self.offset_x.to_css(dest));
try!(dest.write_str(" "));
try!(self.offset_y.to_css(dest));
try!(dest.write_str(" "));
try!(self.blur_radius.to_css(dest));
try!(dest.write_str(" "));
try!(self.spread_radius.to_css(dest));
if let Some(ref color) = self.color {
try!(dest.write_str(" "));
try!(color.to_css(dest));
}
Ok(())
}
}
pub mod computed_value { pub mod computed_value {
use values::computed::Shadow; use values::computed::Shadow;
pub type T = Shadow; pub type T = Shadow;
} }
impl ToCss for computed_value::T {
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
if self.inset {
try!(dest.write_str("inset "));
}
try!(self.blur_radius.to_css(dest));
try!(dest.write_str(" "));
try!(self.spread_radius.to_css(dest));
try!(dest.write_str(" "));
try!(self.offset_x.to_css(dest));
try!(dest.write_str(" "));
try!(self.offset_y.to_css(dest));
try!(dest.write_str(" "));
try!(self.color.to_css(dest));
Ok(())
}
}
pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<specified::Shadow, ()> { pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<specified::Shadow, ()> {
specified::Shadow::parse(context, input, false) specified::Shadow::parse(context, input, false)
} }

View file

@ -483,6 +483,24 @@ pub struct Shadow {
pub inset: bool, pub inset: bool,
} }
impl ToCss for Shadow {
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
if self.inset {
dest.write_str("inset ")?;
}
self.blur_radius.to_css(dest)?;
dest.write_str(" ")?;
self.spread_radius.to_css(dest)?;
dest.write_str(" ")?;
self.offset_x.to_css(dest)?;
dest.write_str(" ")?;
self.offset_y.to_css(dest)?;
dest.write_str(" ")?;
self.color.to_css(dest)?;
Ok(())
}
}
/// A `<number>` value. /// A `<number>` value.
pub type Number = CSSFloat; pub type Number = CSSFloat;

View file

@ -878,6 +878,27 @@ impl ToComputedValue for Shadow {
} }
} }
impl ToCss for Shadow {
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
if self.inset {
dest.write_str("inset ")?;
}
self.offset_x.to_css(dest)?;
dest.write_str(" ")?;
self.offset_y.to_css(dest)?;
dest.write_str(" ")?;
self.blur_radius.to_css(dest)?;
dest.write_str(" ")?;
self.spread_radius.to_css(dest)?;
if let Some(ref color) = self.color {
dest.write_str(" ")?;
color.to_css(dest)?;
}
Ok(())
}
}
impl Shadow { impl Shadow {
// disable_spread_and_inset is for filter: drop-shadow(...) // disable_spread_and_inset is for filter: drop-shadow(...)
#[allow(missing_docs)] #[allow(missing_docs)]