From 3cd48d5b1a2a3c081b972dff299ff614f3f0883d Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 5 Jun 2017 16:50:16 -0700 Subject: [PATCH] stylo: Animate fill and stroke --- components/style/properties/gecko.mako.rs | 29 +++++++++++++++++++ .../properties/longhand/inherited_svg.mako.rs | 4 +-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 3328e682f1c..2186967279a 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -461,6 +461,35 @@ fn color_to_nscolor_zero_currentcolor(color: Color) -> structs::nscolor { ); } } + + #[allow(non_snake_case)] + pub fn clone_${ident}(&self) -> longhands::${ident}::computed_value::T { + use values::generics::{SVGPaint, SVGPaintKind}; + use self::structs::nsStyleSVGPaintType; + use self::structs::nsStyleSVGFallbackType; + let ref paint = ${get_gecko_property(gecko_ffi_name)}; + let fallback = if let nsStyleSVGFallbackType::eStyleSVGFallbackType_Color = paint.mFallbackType { + Some(Color::RGBA(convert_nscolor_to_rgba(paint.mFallbackColor))) + } else { + None + }; + let kind = match paint.mType { + nsStyleSVGPaintType::eStyleSVGPaintType_None => SVGPaintKind::None, + nsStyleSVGPaintType::eStyleSVGPaintType_ContextFill => SVGPaintKind::ContextFill, + nsStyleSVGPaintType::eStyleSVGPaintType_ContextStroke => SVGPaintKind::ContextStroke, + nsStyleSVGPaintType::eStyleSVGPaintType_Server => { + // FIXME (bug 1353966) this should animate + SVGPaintKind::None + } + nsStyleSVGPaintType::eStyleSVGPaintType_Color => { + unsafe { SVGPaintKind::Color(Color::RGBA(convert_nscolor_to_rgba(*paint.mPaint.mColor.as_ref()))) } + } + }; + SVGPaint { + kind: kind, + fallback: fallback, + } + } <%def name="impl_app_units(ident, gecko_ffi_name, need_clone, inherit_from=None, round_to_pixels=False)"> diff --git a/components/style/properties/longhand/inherited_svg.mako.rs b/components/style/properties/longhand/inherited_svg.mako.rs index 2dfa696c2dc..4c57a13f43c 100644 --- a/components/style/properties/longhand/inherited_svg.mako.rs +++ b/components/style/properties/longhand/inherited_svg.mako.rs @@ -35,7 +35,7 @@ ${helpers.predefined_type( "fill", "SVGPaint", "::values::computed::SVGPaint::black()", products="gecko", - animation_value_type="none", + animation_value_type="IntermediateSVGPaint", boxed=True, spec="https://www.w3.org/TR/SVG2/painting.html#SpecifyingFillPaint")} @@ -59,7 +59,7 @@ ${helpers.predefined_type( "stroke", "SVGPaint", "Default::default()", products="gecko", - animation_value_type="none", + animation_value_type="IntermediateSVGPaint", boxed=True, spec="https://www.w3.org/TR/SVG2/painting.html#SpecifyingStrokePaint")}