From 78dc5f6aa98ca40d1674ccd7b36a3195faedcfa3 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Wed, 8 Feb 2017 17:25:06 -0800 Subject: [PATCH] stylo: Implement -moz-image-region MozReview-Commit-ID: E6Iir2hWlbG --- components/style/properties/gecko.mako.rs | 24 ++++++++++++++++++- .../style/properties/longhand/list.mako.rs | 8 +++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 72385f19ea6..5d79857be93 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -2034,7 +2034,7 @@ fn static_assert() { <%self:impl_trait style_struct_name="List" - skip_longhands="list-style-image list-style-type quotes" + skip_longhands="list-style-image list-style-type quotes -moz-image-region" skip_additionals="*"> pub fn set_list_style_image(&mut self, image: longhands::list_style_image::computed_value::T) { @@ -2100,6 +2100,28 @@ fn static_assert() { unsafe { self.gecko.mQuotes.set(&other.gecko.mQuotes); } } + #[allow(non_snake_case)] + pub fn set__moz_image_region(&mut self, v: longhands::_moz_image_region::computed_value::T) { + use values::Either; + + match v { + Either::Second(_auto) => { + self.gecko.mImageRegion.x = 0; + self.gecko.mImageRegion.y = 0; + self.gecko.mImageRegion.width = 0; + self.gecko.mImageRegion.height = 0; + } + Either::First(rect) => { + self.gecko.mImageRegion.x = rect.left.0; + self.gecko.mImageRegion.y = rect.top.0; + self.gecko.mImageRegion.height = rect.bottom.unwrap_or(Au(0)).0 - self.gecko.mImageRegion.y; + self.gecko.mImageRegion.width = rect.right.unwrap_or(Au(0)).0 - self.gecko.mImageRegion.x; + } + } + } + + ${impl_simple_copy('_moz_image_region', 'mImageRegion')} + <%self:impl_trait style_struct_name="Effects" diff --git a/components/style/properties/longhand/list.mako.rs b/components/style/properties/longhand/list.mako.rs index f4f84f9e884..91e003d2575 100644 --- a/components/style/properties/longhand/list.mako.rs +++ b/components/style/properties/longhand/list.mako.rs @@ -101,3 +101,11 @@ ${helpers.predefined_type("list-style-image", "UrlOrNone", "Either::Second(None_ } } + +${helpers.predefined_type("-moz-image-region", + "ClipRectOrAuto", + "computed::ClipRectOrAuto::auto()", + animatable=False, + products="gecko", + boxed="True", + spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-image-region)")}