diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-10 08:15:37 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-10 08:15:37 +0530 |
commit | cd6813ea3930d0d98cace8bf730286e1802fd280 (patch) | |
tree | 4a91cad401e162e19262cee3b3f9919c94ae50db /components/script/dom/macros.rs | |
parent | 0d21158eb3bc8cb64a1953ab77b57e813bd429ed (diff) | |
parent | 71aa2392f8632fd66d76a5460d5043e5cdd6b996 (diff) | |
download | servo-cd6813ea3930d0d98cace8bf730286e1802fd280.tar.gz servo-cd6813ea3930d0d98cace8bf730286e1802fd280.zip |
Auto merge of #8434 - frewsxcv:dimension-attrvalue, r=eefriedman
Add Dimension member to AttrValue
Fixes #8417
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8434)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/macros.rs')
-rw-r--r-- | components/script/dom/macros.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index f02ffab5b07..a029593b0e1 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -231,6 +231,21 @@ macro_rules! make_legacy_color_setter( ); ); +#[macro_export] +macro_rules! make_dimension_setter( + ( $attr:ident, $htmlname:expr ) => ( + fn $attr(&self, value: DOMString) { + use dom::bindings::inheritance::Castable; + use dom::element::Element; + use string_cache::Atom; + let element = self.upcast::<Element>(); + let value = AttrValue::from_dimension(value); + // FIXME(pcwalton): Do this at compile time, not at runtime. + element.set_attribute(&Atom::from_slice($htmlname), value) + } + ); +); + /// For use on non-jsmanaged types /// Use #[derive(JSTraceable)] on JS managed types macro_rules! no_jsmanaged_fields( |