mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Make column-count/column-gap/column-width animatable.
This commit is contained in:
parent
485a4de729
commit
48ab03ec91
3 changed files with 24 additions and 7 deletions
|
@ -679,6 +679,7 @@ impl Debug for ${style_struct.gecko_struct_name} {
|
|||
"LengthOrPercentageOrAuto": impl_style_coord,
|
||||
"LengthOrPercentageOrNone": impl_style_coord,
|
||||
"LengthOrNone": impl_style_coord,
|
||||
"LengthOrNormal": impl_style_coord,
|
||||
"MaxLength": impl_style_coord,
|
||||
"MinLength": impl_style_coord,
|
||||
"Number": impl_simple,
|
||||
|
@ -3610,6 +3611,17 @@ clip-path
|
|||
|
||||
${impl_simple_copy('column_count', 'mColumnCount')}
|
||||
|
||||
pub fn clone_column_count(&self) -> longhands::column_count::computed_value::T {
|
||||
use gecko_bindings::structs::NS_STYLE_COLUMN_COUNT_AUTO;
|
||||
if self.gecko.mColumnCount != NS_STYLE_COLUMN_COUNT_AUTO {
|
||||
debug_assert!((self.gecko.mColumnCount as i32) >= 0 &&
|
||||
(self.gecko.mColumnCount as i32) < i32::max_value());
|
||||
Either::First(self.gecko.mColumnCount as i32)
|
||||
} else {
|
||||
Either::Second(Auto)
|
||||
}
|
||||
}
|
||||
|
||||
<% impl_app_units("column_rule_width", "mColumnRuleWidth", need_clone=True,
|
||||
round_to_pixels=True) %>
|
||||
</%self:impl_trait>
|
||||
|
|
|
@ -29,7 +29,7 @@ use std::fmt;
|
|||
use style_traits::ToCss;
|
||||
use super::ComputedValues;
|
||||
use values::CSSFloat;
|
||||
use values::{Auto, Either};
|
||||
use values::{Auto, Either, Normal};
|
||||
use values::computed::{Angle, LengthOrPercentageOrAuto, LengthOrPercentageOrNone};
|
||||
use values::computed::{BorderRadiusSize, ClipRect, LengthOrNone};
|
||||
use values::computed::{CalcLengthOrPercentage, Context, LengthOrPercentage};
|
||||
|
@ -515,6 +515,13 @@ impl Interpolate for Auto {
|
|||
}
|
||||
}
|
||||
|
||||
impl Interpolate for Normal {
|
||||
#[inline]
|
||||
fn interpolate(&self, _other: &Self, _progress: f64) -> Result<Self, ()> {
|
||||
Ok(Normal)
|
||||
}
|
||||
}
|
||||
|
||||
impl <T> Interpolate for Option<T>
|
||||
where T: Interpolate,
|
||||
{
|
||||
|
|
|
@ -6,20 +6,19 @@
|
|||
|
||||
<% data.new_style_struct("Column", inherited=False) %>
|
||||
|
||||
// FIXME: This prop should be animatable.
|
||||
${helpers.predefined_type("column-width",
|
||||
"length::LengthOrAuto",
|
||||
"Either::Second(Auto)",
|
||||
initial_specified_value="Either::Second(Auto)",
|
||||
parse_method="parse_non_negative_length",
|
||||
extra_prefixes="moz",
|
||||
animation_type="none",
|
||||
animation_type="normal",
|
||||
experimental=True,
|
||||
spec="https://drafts.csswg.org/css-multicol/#propdef-column-width")}
|
||||
|
||||
|
||||
// FIXME: This prop should be animatable.
|
||||
${helpers.predefined_type("column-count", "IntegerOrAuto",
|
||||
${helpers.predefined_type("column-count",
|
||||
"IntegerOrAuto",
|
||||
"Either::Second(Auto)",
|
||||
parse_method="parse_positive",
|
||||
initial_specified_value="Either::Second(Auto)",
|
||||
|
@ -28,14 +27,13 @@ ${helpers.predefined_type("column-count", "IntegerOrAuto",
|
|||
extra_prefixes="moz",
|
||||
spec="https://drafts.csswg.org/css-multicol/#propdef-column-count")}
|
||||
|
||||
// FIXME: This prop should be animatable.
|
||||
${helpers.predefined_type("column-gap",
|
||||
"length::LengthOrNormal",
|
||||
"Either::Second(Normal)",
|
||||
parse_method='parse_non_negative_length',
|
||||
extra_prefixes="moz",
|
||||
experimental=True,
|
||||
animation_type="none",
|
||||
animation_type="normal",
|
||||
spec="https://drafts.csswg.org/css-multicol/#propdef-column-gap")}
|
||||
|
||||
${helpers.single_keyword("column-fill", "balance auto", extra_prefixes="moz",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue