style: Implement -webkit-line-clamp.

Differential Revision: https://phabricator.services.mozilla.com/D20115
This commit is contained in:
Cameron McCormack 2019-05-09 02:32:30 +00:00 committed by Emilio Cobos Álvarez
parent 81e706469d
commit ca756a8550
5 changed files with 42 additions and 2 deletions

View file

@ -337,6 +337,7 @@ class Longhand(object):
"OverflowWrap",
"OverscrollBehavior",
"Percentage",
"PositiveIntegerOrNone",
"Resize",
"SVGOpacity",
"SVGPaintOrder",

View file

@ -2515,7 +2515,7 @@ fn static_assert() {
rotate scroll-snap-points-x scroll-snap-points-y
scroll-snap-coordinate -moz-binding will-change
offset-path shape-outside
translate scale""" %>
translate scale -webkit-line-clamp""" %>
<%self:impl_trait style_struct_name="Box" skip_longhands="${skip_box_longhands}">
#[inline]
pub fn generate_combined_transform(&mut self) {
@ -2924,6 +2924,27 @@ fn static_assert() {
self.copy_offset_path_from(other);
}
#[allow(non_snake_case)]
pub fn set__webkit_line_clamp(&mut self, v: longhands::_webkit_line_clamp::computed_value::T) {
self.gecko.mLineClamp = match v {
Either::First(n) => n.0 as u32,
Either::Second(None_) => 0,
};
}
${impl_simple_copy('_webkit_line_clamp', 'mLineClamp')}
#[allow(non_snake_case)]
pub fn clone__webkit_line_clamp(&self) -> longhands::_webkit_line_clamp::computed_value::T {
match self.gecko.mLineClamp {
0 => Either::Second(None_),
n => {
debug_assert!(n <= std::i32::MAX as u32);
Either::First((n as i32).into())
}
}
}
</%self:impl_trait>
<%def name="simple_image_array_property(name, shorthand, field_name)">

View file

@ -670,3 +670,15 @@ ${helpers.predefined_type(
animation_value_type="discrete",
spec="https://compat.spec.whatwg.org/#touch-action",
)}
// Note that we only implement -webkit-line-clamp as a single, longhand
// property for now, but the spec defines line-clamp as a shorthand for separate
// max-lines, block-ellipsis, and continue properties.
${helpers.predefined_type(
"-webkit-line-clamp",
"PositiveIntegerOrNone",
"Either::Second(None_)",
gecko_pref="layout.css.webkit-line-clamp.enabled",
animation_value_type="Integer",
spec="https://drafts.csswg.org/css-overflow-3/#line-clamp",
)}