From b2df766da8fdf63152117499566784a2d6db640a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Naz=C4=B1m=20Can=20Alt=C4=B1nova?= Date: Sat, 18 Nov 2017 17:23:34 +0300 Subject: [PATCH] style: Move -moz-force-broken-image-icon out of mako --- .../style/properties/longhand/ui.mako.rs | 60 ++----------------- components/style/values/computed/mod.rs | 2 + components/style/values/computed/ui.rs | 7 +++ components/style/values/specified/mod.rs | 2 + components/style/values/specified/ui.rs | 54 +++++++++++++++++ 5 files changed, 71 insertions(+), 54 deletions(-) create mode 100644 components/style/values/computed/ui.rs create mode 100644 components/style/values/specified/ui.rs diff --git a/components/style/properties/longhand/ui.mako.rs b/components/style/properties/longhand/ui.mako.rs index c48cf01ba280..f2d79d77f10a 100644 --- a/components/style/properties/longhand/ui.mako.rs +++ b/components/style/properties/longhand/ui.mako.rs @@ -63,57 +63,9 @@ ${helpers.predefined_type("-moz-window-transform-origin", enabled_in="ua", spec="None (Nonstandard internal property)")} -<%helpers:longhand name="-moz-force-broken-image-icon" - products="gecko" - animation_value_type="discrete" - spec="None (Nonstandard Firefox-only property)"> - use std::fmt; - use style_traits::ToCss; - - pub mod computed_value { - #[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue)] - pub struct T(pub bool); - } - - pub use self::computed_value::T as SpecifiedValue; - - impl ToCss for computed_value::T { - fn to_css(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { - dest.write_str(if self.0 { "1" } else { "0" }) - } - } - - #[inline] - pub fn get_initial_value() -> computed_value::T { - computed_value::T(false) - } - - #[inline] - pub fn get_initial_specified_value() -> SpecifiedValue { - computed_value::T(false) - } - - pub fn parse<'i, 't>(_context: &ParserContext, input: &mut Parser<'i, 't>) - -> Result> { - match input.expect_integer()? { - 0 => Ok(computed_value::T(false)), - 1 => Ok(computed_value::T(true)), - _ => Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError)), - } - } - - impl From for SpecifiedValue { - fn from(bits: u8) -> SpecifiedValue { - SpecifiedValue(bits == 1) - } - } - - impl From for u8 { - fn from(v: SpecifiedValue) -> u8 { - match v.0 { - true => 1u8, - false => 0u8, - } - } - } - +${helpers.predefined_type("-moz-force-broken-image-icon", + "MozForceBrokenImageIcon", + "computed::MozForceBrokenImageIcon::false_value()", + animation_value_type="discrete", + products="gecko", + spec="None (Nonstandard Firefox-only property)")} diff --git a/components/style/values/computed/mod.rs b/components/style/values/computed/mod.rs index 2ddd5af7ce91..2e5c1d0f85e3 100644 --- a/components/style/values/computed/mod.rs +++ b/components/style/values/computed/mod.rs @@ -59,6 +59,7 @@ pub use self::table::XSpan; pub use self::text::{InitialLetter, LetterSpacing, LineHeight, TextOverflow, WordSpacing}; pub use self::time::Time; pub use self::transform::{TimingFunction, Transform, TransformOperation, TransformOrigin}; +pub use self::ui::MozForceBrokenImageIcon; #[cfg(feature = "gecko")] pub mod align; @@ -84,6 +85,7 @@ pub mod table; pub mod text; pub mod time; pub mod transform; +pub mod ui; /// A `Context` is all the data a specified value could ever need to compute /// itself and be transformed to a computed value. diff --git a/components/style/values/computed/ui.rs b/components/style/values/computed/ui.rs new file mode 100644 index 000000000000..f3f3cdf4c99d --- /dev/null +++ b/components/style/values/computed/ui.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 values for UI properties + +pub use values::specified::ui::MozForceBrokenImageIcon; diff --git a/components/style/values/specified/mod.rs b/components/style/values/specified/mod.rs index 7bd01722e9de..689b9ff47c4a 100644 --- a/components/style/values/specified/mod.rs +++ b/components/style/values/specified/mod.rs @@ -55,6 +55,7 @@ pub use self::table::XSpan; pub use self::text::{InitialLetter, LetterSpacing, LineHeight, TextDecorationLine, TextOverflow, WordSpacing}; pub use self::time::Time; pub use self::transform::{TimingFunction, Transform, TransformOrigin}; +pub use self::ui::MozForceBrokenImageIcon; pub use super::generics::grid::GridTemplateComponent as GenericGridTemplateComponent; #[cfg(feature = "gecko")] @@ -84,6 +85,7 @@ pub mod table; pub mod text; pub mod time; pub mod transform; +pub mod ui; /// Common handling for the specified value CSS url() values. pub mod url { diff --git a/components/style/values/specified/ui.rs b/components/style/values/specified/ui.rs new file mode 100644 index 000000000000..5d9321a58339 --- /dev/null +++ b/components/style/values/specified/ui.rs @@ -0,0 +1,54 @@ +/* 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 UI properties. + +use cssparser::Parser; +use parser::{Parse, ParserContext}; +use std::fmt; +use style_traits::{ParseError, StyleParseErrorKind, ToCss}; + +/// Specified value of `-moz-force-broken-image-icon` +#[derive(Clone, Copy, Debug, MallocSizeOf, PartialEq, ToComputedValue)] +pub struct MozForceBrokenImageIcon(pub bool); + +impl MozForceBrokenImageIcon { + /// Return initial value of -moz-force-broken-image-icon which is false. + #[inline] + pub fn false_value() -> MozForceBrokenImageIcon { + MozForceBrokenImageIcon(false) + } +} + +impl Parse for MozForceBrokenImageIcon { + fn parse<'i, 't>( + _context: &ParserContext, + input: &mut Parser<'i, 't> + ) -> Result> { + // We intentionally don't support calc values here. + match input.expect_integer()? { + 0 => Ok(MozForceBrokenImageIcon(false)), + 1 => Ok(MozForceBrokenImageIcon(true)), + _ => Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError)), + } + } +} + +impl ToCss for MozForceBrokenImageIcon { + fn to_css(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + dest.write_str(if self.0 { "1" } else { "0" }) + } +} + +impl From for MozForceBrokenImageIcon { + fn from(bits: u8) -> MozForceBrokenImageIcon { + MozForceBrokenImageIcon(bits == 1) + } +} + +impl From for u8 { + fn from(v: MozForceBrokenImageIcon) -> u8 { + if v.0 { 1 } else { 0 } + } +}