Skip to content

Commit

Permalink
Make column-count/column-gap/column-width animatable.
Browse files Browse the repository at this point in the history
  • Loading branch information
mantaroh committed Apr 17, 2017
1 parent 485a4de commit 48ab03e
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
12 changes: 12 additions & 0 deletions components/style/properties/gecko.mako.rs
Expand Up @@ -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,
Expand Down Expand Up @@ -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>
Expand Down
Expand Up @@ -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};
Expand Down Expand Up @@ -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,
{
Expand Down
10 changes: 4 additions & 6 deletions components/style/properties/longhand/column.mako.rs
Expand Up @@ -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)",
Expand All @@ -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",
Expand Down

0 comments on commit 48ab03e

Please sign in to comment.