2020: paint borders

This commit is contained in:
Simon Sapin 2019-10-24 15:04:14 +02:00
parent 59f68525c4
commit 5eb1472a33
5 changed files with 95 additions and 47 deletions

View file

@ -880,7 +880,8 @@
{
// Define all of the expected variables that correspond to the shorthand
% for sub_property in shorthand.sub_properties:
let mut ${sub_property.ident} = None;
let mut ${sub_property.ident} =
None::< &'a longhands::${sub_property.ident}::SpecifiedValue>;
% endfor
// Attempt to assign the incoming declarations to the expected variables

View file

@ -107,7 +107,8 @@ ${helpers.single_keyword(
${helpers.predefined_type(
"border-image-source",
"ImageLayer",
engines="gecko servo-2013",
engines="gecko servo-2013 servo-2020",
servo_2020_pref="layout.2020.unimplemented",
initial_value="computed::ImageLayer::none()",
initial_specified_value="specified::ImageLayer::none()",
spec="https://drafts.csswg.org/css-backgrounds/#the-background-image",
@ -120,7 +121,8 @@ ${helpers.predefined_type(
${helpers.predefined_type(
"border-image-outset",
"NonNegativeLengthOrNumberRect",
engines="gecko servo-2013",
engines="gecko servo-2013 servo-2020",
servo_2020_pref="layout.2020.unimplemented",
initial_value="generics::rect::Rect::all(computed::NonNegativeLengthOrNumber::zero())",
initial_specified_value="generics::rect::Rect::all(specified::NonNegativeLengthOrNumber::zero())",
spec="https://drafts.csswg.org/css-backgrounds/#border-image-outset",
@ -132,7 +134,8 @@ ${helpers.predefined_type(
"border-image-repeat",
"BorderImageRepeat",
"computed::BorderImageRepeat::stretch()",
engines="gecko servo-2013",
engines="gecko servo-2013 servo-2020",
servo_2020_pref="layout.2020.unimplemented",
initial_specified_value="specified::BorderImageRepeat::stretch()",
animation_value_type="discrete",
spec="https://drafts.csswg.org/css-backgrounds/#the-border-image-repeat",
@ -141,7 +144,8 @@ ${helpers.predefined_type(
${helpers.predefined_type(
"border-image-width",
"BorderImageWidth",
engines="gecko servo-2013",
engines="gecko servo-2013 servo-2020",
servo_2020_pref="layout.2020.unimplemented",
initial_value="computed::BorderImageWidth::all(computed::BorderImageSideWidth::one())",
initial_specified_value="specified::BorderImageWidth::all(specified::BorderImageSideWidth::one())",
spec="https://drafts.csswg.org/css-backgrounds/#border-image-width",
@ -152,7 +156,8 @@ ${helpers.predefined_type(
${helpers.predefined_type(
"border-image-slice",
"BorderImageSlice",
engines="gecko servo-2013",
engines="gecko servo-2013 servo-2020",
servo_2020_pref="layout.2020.unimplemented",
initial_value="computed::BorderImageSlice::hundred_percent()",
initial_specified_value="specified::BorderImageSlice::hundred_percent()",
spec="https://drafts.csswg.org/css-backgrounds/#border-image-slice",

View file

@ -111,7 +111,6 @@ pub fn parse_border<'i, 't>(
<%helpers:shorthand
name="border-${side}"
engines="gecko servo-2013 servo-2020"
servo_2020_pref="layout.2020.unimplemented"
sub_properties="${' '.join(
'border-%s-%s' % (side, prop)
for prop in ['color', 'style', 'width']
@ -146,7 +145,7 @@ pub fn parse_border<'i, 't>(
% endfor
<%helpers:shorthand name="border"
engines="gecko servo-2013"
engines="gecko servo-2013 servo-2020"
sub_properties="${' '.join('border-%s-%s' % (side, prop)
for side in PHYSICAL_SIDES
for prop in ['color', 'style', 'width'])}
@ -384,7 +383,7 @@ pub fn parse_border<'i, 't>(
spec = "https://drafts.csswg.org/css-logical/#propdef-border-%s-%s" % (axis, prop)
%>
<%helpers:shorthand
engines="gecko servo-2013"
engines="gecko servo-2013 servo-2020"
name="border-${axis}-${prop}"
sub_properties="${' '.join(
'border-%s-%s-%s' % (axis, side, prop)
@ -430,7 +429,7 @@ pub fn parse_border<'i, 't>(
%>
<%helpers:shorthand
name="border-${axis}"
engines="gecko servo-2013"
engines="gecko servo-2013 servo-2020"
sub_properties="${' '.join(
'border-%s-%s-width' % (axis, side)
for side in ['start', 'end']

View file

@ -47,20 +47,13 @@ use style_traits::{CssWriter, ParseError, ToCss};
pub enum BorderStyle {
Hidden,
None,
#[cfg(any(feature = "gecko", feature = "servo-layout-2013"))]
Inset,
#[cfg(any(feature = "gecko", feature = "servo-layout-2013"))]
Groove,
#[cfg(any(feature = "gecko", feature = "servo-layout-2013"))]
Outset,
#[cfg(any(feature = "gecko", feature = "servo-layout-2013"))]
Ridge,
#[cfg(any(feature = "gecko", feature = "servo-layout-2013"))]
Dotted,
#[cfg(any(feature = "gecko", feature = "servo-layout-2013"))]
Dashed,
Solid,
#[cfg(any(feature = "gecko", feature = "servo-layout-2013"))]
Double,
}