diff --git a/components/style/properties/longhand/table.mako.rs b/components/style/properties/longhand/table.mako.rs index 67c4e25accb3..6758033dc92f 100644 --- a/components/style/properties/longhand/table.mako.rs +++ b/components/style/properties/longhand/table.mako.rs @@ -10,35 +10,10 @@ ${helpers.single_keyword("table-layout", "auto fixed", gecko_ffi_name="mLayoutStrategy", animation_value_type="discrete", spec="https://drafts.csswg.org/css-tables/#propdef-table-layout")} -<%helpers:longhand name="-x-span" products="gecko" - spec="Internal-only (for `` pres attr)" - animation_value_type="none" - internal="True"> - pub type SpecifiedValue = computed_value::T; - pub mod computed_value { - use std::fmt; - use style_traits::ToCss; - - #[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue)] - pub struct T(pub i32); - - impl ToCss for T { - fn to_css(&self, _: &mut W) -> fmt::Result where W: fmt::Write { - Ok(()) - } - } - } - - #[inline] - pub fn get_initial_value() -> computed_value::T { - computed_value::T(1) - } - - // never parse it, only set via presentation attribute - fn parse<'i, 't>( - _: &ParserContext, - input: &mut Parser<'i, 't>, - ) -> Result> { - Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError)) - } - +${helpers.predefined_type("-x-span", + "XSpan", + "computed::XSpan(1)", + products="gecko", + spec="Internal-only (for `` pres attr)", + animation_value_type="none", + internal=True)} diff --git a/components/style/values/computed/mod.rs b/components/style/values/computed/mod.rs index e99bab154c4d..4a74cabf72c0 100644 --- a/components/style/values/computed/mod.rs +++ b/components/style/values/computed/mod.rs @@ -53,6 +53,7 @@ pub use self::length::{CSSPixelLength, NonNegativeLength, NonNegativeLengthOrPer pub use self::percentage::Percentage; pub use self::position::Position; pub use self::svg::{SVGLength, SVGOpacity, SVGPaint, SVGPaintKind, SVGStrokeDashArray, SVGWidth}; +pub use self::table::XSpan; pub use self::text::{InitialLetter, LetterSpacing, LineHeight, WordSpacing}; pub use self::time::Time; pub use self::transform::{TimingFunction, TransformOrigin}; @@ -77,6 +78,7 @@ pub mod percentage; pub mod position; pub mod rect; pub mod svg; +pub mod table; pub mod text; pub mod time; pub mod transform; diff --git a/components/style/values/computed/table.rs b/components/style/values/computed/table.rs new file mode 100644 index 000000000000..da44de8aae5c --- /dev/null +++ b/components/style/values/computed/table.rs @@ -0,0 +1,7 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//! Computed types for table properties. + +pub use values::specified::table::XSpan; diff --git a/components/style/values/specified/mod.rs b/components/style/values/specified/mod.rs index fef43cbf747d..2f01f66029e4 100644 --- a/components/style/values/specified/mod.rs +++ b/components/style/values/specified/mod.rs @@ -49,6 +49,7 @@ pub use self::rect::LengthOrNumberRect; pub use self::percentage::Percentage; pub use self::position::{Position, PositionComponent}; pub use self::svg::{SVGLength, SVGOpacity, SVGPaint, SVGPaintKind, SVGStrokeDashArray, SVGWidth}; +pub use self::table::XSpan; pub use self::text::{InitialLetter, LetterSpacing, LineHeight, WordSpacing}; pub use self::time::Time; pub use self::transform::{TimingFunction, TransformOrigin}; @@ -76,6 +77,7 @@ pub mod percentage; pub mod position; pub mod rect; pub mod svg; +pub mod table; pub mod text; pub mod time; pub mod transform; diff --git a/components/style/values/specified/table.rs b/components/style/values/specified/table.rs new file mode 100644 index 000000000000..a86fe0167fd5 --- /dev/null +++ b/components/style/values/specified/table.rs @@ -0,0 +1,27 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//! Specified types for table properties. + +use cssparser::Parser; +use parser::{Parse, ParserContext}; +use std::fmt; +use style_traits::{ToCss, StyleParseErrorKind, ParseError}; + +#[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue)] +/// span. for `` pres attr +pub struct XSpan(pub i32); + +impl Parse for XSpan { + // never parse it, only set via presentation attribute + fn parse<'i, 't>(_: &ParserContext, input: &mut Parser<'i, 't>) -> Result> { + Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError)) + } +} + +impl ToCss for XSpan { + fn to_css(&self, _: &mut W) -> fmt::Result where W: fmt::Write { + Ok(()) + } +}