Skip to content

Commit

Permalink
Move ToCss impl for Shadow types to values mod.
Browse files Browse the repository at this point in the history
  • Loading branch information
upsuper committed Jun 7, 2017
1 parent f388c0a commit 2bd1ff0
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 42 deletions.
42 changes: 0 additions & 42 deletions components/style/properties/longhand/effects.mako.rs
Expand Up @@ -19,56 +19,14 @@ ${helpers.predefined_type("opacity",
extra_prefixes="webkit"
ignored_when_colors_disabled="True"
spec="https://drafts.csswg.org/css-backgrounds/#box-shadow">
use std::fmt;
use style_traits::ToCss;

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 {
use values::computed::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, ()> {
specified::Shadow::parse(context, input, false)
}
Expand Down
18 changes: 18 additions & 0 deletions components/style/values/computed/mod.rs
Expand Up @@ -483,6 +483,24 @@ pub struct Shadow {
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.
pub type Number = CSSFloat;

Expand Down
21 changes: 21 additions & 0 deletions components/style/values/specified/mod.rs
Expand Up @@ -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 {
// disable_spread_and_inset is for filter: drop-shadow(...)
#[allow(missing_docs)]
Expand Down

0 comments on commit 2bd1ff0

Please sign in to comment.