Add support for 'font-stretch'

This commit is contained in:
Ravi Shankar 2016-10-03 21:23:50 +05:30
parent 6f8bf29eaf
commit 361f372142

View file

@ -447,7 +447,7 @@ impl Debug for ${style_struct.gecko_struct_name} {
# These are currently being shuffled to a different style struct on the gecko side. # These are currently being shuffled to a different style struct on the gecko side.
force_stub += ["backface-visibility", "transform-box", "transform-style"] force_stub += ["backface-visibility", "transform-box", "transform-style"]
# These live in an nsFont member in Gecko. Should be straightforward to do manually. # These live in an nsFont member in Gecko. Should be straightforward to do manually.
force_stub += ["font-kerning", "font-stretch", "font-variant"] force_stub += ["font-kerning", "font-variant"]
# These have unusual representations in gecko. # These have unusual representations in gecko.
force_stub += ["list-style-type", "text-overflow"] force_stub += ["list-style-type", "text-overflow"]
# In a nsTArray, have to be done manually, but probably not too much work # In a nsTArray, have to be done manually, but probably not too much work
@ -739,7 +739,7 @@ fn static_assert() {
</%self:impl_trait> </%self:impl_trait>
<%self:impl_trait style_struct_name="Font" <%self:impl_trait style_struct_name="Font"
skip_longhands="font-family font-style font-size font-weight" skip_longhands="font-family font-stretch font-style font-size font-weight"
skip_additionals="*"> skip_additionals="*">
pub fn set_font_family(&mut self, v: longhands::font_family::computed_value::T) { pub fn set_font_family(&mut self, v: longhands::font_family::computed_value::T) {
@ -790,6 +790,24 @@ fn static_assert() {
Au(self.gecko.mSize) Au(self.gecko.mSize)
} }
pub fn set_font_stretch(&mut self, v: longhands::font_stretch::computed_value::T) {
use computed_values::font_stretch::T;
self.gecko.mFont.stretch = match v {
T::normal => structs::NS_FONT_STRETCH_NORMAL as i16,
T::ultra_condensed => structs::NS_FONT_STRETCH_ULTRA_CONDENSED as i16,
T::extra_condensed => structs::NS_FONT_STRETCH_EXTRA_CONDENSED as i16,
T::condensed => structs::NS_FONT_STRETCH_CONDENSED as i16,
T::semi_condensed => structs::NS_FONT_STRETCH_SEMI_CONDENSED as i16,
T::semi_expanded => structs::NS_FONT_STRETCH_SEMI_EXPANDED as i16,
T::expanded => structs::NS_FONT_STRETCH_EXPANDED as i16,
T::extra_expanded => structs::NS_FONT_STRETCH_EXTRA_EXPANDED as i16,
T::ultra_expanded => structs::NS_FONT_STRETCH_ULTRA_EXPANDED as i16,
};
}
${impl_simple_copy('font_stretch', 'mFont.stretch')}
pub fn set_font_weight(&mut self, v: longhands::font_weight::computed_value::T) { pub fn set_font_weight(&mut self, v: longhands::font_weight::computed_value::T) {
self.gecko.mFont.weight = v as u16; self.gecko.mFont.weight = v as u16;
} }