Add font-weight descriptor to @font-face

This commit is contained in:
Simon Sapin 2017-02-02 19:52:57 +01:00
parent 8767b0d7cc
commit fe8f5fad16
2 changed files with 18 additions and 1 deletions

View file

@ -8,8 +8,8 @@
#![deny(missing_docs)]
#[cfg(feature = "gecko")] use computed_values::{font_style, font_weight};
use computed_values::font_family::FamilyName;
#[cfg(feature = "gecko")] use computed_values::font_style;
use cssparser::{AtRuleParser, DeclarationListParser, DeclarationParser, Parser};
use parser::{ParserContext, log_css_error, Parse};
use std::fmt;
@ -295,6 +295,9 @@ font_face_descriptors! {
optional descriptors = [
/// The style of this font face
"font-style" style: font_style::T = font_style::T::normal,
/// The weight of this font face
"font-weight" weight: font_weight::T = font_weight::T::Weight400 /* normal */,
]
}

View file

@ -273,6 +273,20 @@ ${helpers.single_keyword("font-variant-caps",
}
})
}
/// Used in @font-face, where relative keywords are not allowed.
impl Parse for computed_value::T {
fn parse(context: &ParserContext, input: &mut Parser) -> Result<Self, ()> {
match parse(context, input)? {
% for weight in range(100, 901, 100):
SpecifiedValue::Weight${weight} => Ok(computed_value::T::Weight${weight}),
% endfor
SpecifiedValue::Bolder |
SpecifiedValue::Lighter => Err(())
}
}
}
pub mod computed_value {
use std::fmt;
#[derive(PartialEq, Eq, Copy, Clone, Hash, Debug)]