Skip to content

Commit

Permalink
style: Move -moz-force-broken-image-icon out of mako
Browse files Browse the repository at this point in the history
  • Loading branch information
canova committed Nov 19, 2017
1 parent b2b51d3 commit b2df766
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 54 deletions.
60 changes: 6 additions & 54 deletions components/style/properties/longhand/ui.mako.rs
Expand Up @@ -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<W>(&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<SpecifiedValue, ParseError<'i>> {
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<u8> for SpecifiedValue {
fn from(bits: u8) -> SpecifiedValue {
SpecifiedValue(bits == 1)
}
}

impl From<SpecifiedValue> for u8 {
fn from(v: SpecifiedValue) -> u8 {
match v.0 {
true => 1u8,
false => 0u8,
}
}
}
</%helpers:longhand>
${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)")}
2 changes: 2 additions & 0 deletions components/style/values/computed/mod.rs
Expand Up @@ -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;
Expand All @@ -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.
Expand Down
7 changes: 7 additions & 0 deletions 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;
2 changes: 2 additions & 0 deletions components/style/values/specified/mod.rs
Expand Up @@ -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")]
Expand Down Expand Up @@ -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 {
Expand Down
54 changes: 54 additions & 0 deletions 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<MozForceBrokenImageIcon, ParseError<'i>> {
// 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<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
dest.write_str(if self.0 { "1" } else { "0" })
}
}

impl From<u8> for MozForceBrokenImageIcon {
fn from(bits: u8) -> MozForceBrokenImageIcon {
MozForceBrokenImageIcon(bits == 1)
}
}

impl From<MozForceBrokenImageIcon> for u8 {
fn from(v: MozForceBrokenImageIcon) -> u8 {
if v.0 { 1 } else { 0 }
}
}

0 comments on commit b2df766

Please sign in to comment.