Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Support offset- logical properties
  • Loading branch information
Manishearth committed Nov 29, 2016
1 parent 2289ad5 commit 1bd6e5f
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 5 deletions.
8 changes: 8 additions & 0 deletions components/script/dom/webidls/CSSStyleDeclaration.webidl
Expand Up @@ -321,6 +321,14 @@ partial interface CSSStyleDeclaration {
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString right;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString left;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString bottom;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-block-start;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetBlockStart;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-block-end;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetBlockEnd;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-inline-start;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetInlineStart;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-inline-end;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetInlineEnd;

[SetterThrows, TreatNullAs=EmptyString] attribute DOMString height;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString minHeight;
Expand Down
8 changes: 5 additions & 3 deletions components/style/properties/helpers.mako.rs
Expand Up @@ -563,13 +563,15 @@
side = maybe_side[0]
elif len(maybe_size) == 1:
size = maybe_size[0]
def phys_ident(side, phy_side):
return to_rust_ident(name.replace(side, phy_side).replace("offset-", ""))
%>
% if side is not None:
use logical_geometry::PhysicalSide;
match wm.${to_rust_ident(side)}_physical_side() {
% for phy_side in PHYSICAL_SIDES:
PhysicalSide::${phy_side.title()} => {
${caller.inner(physical_ident=to_rust_ident(name.replace(side, phy_side)))}
${caller.inner(physical_ident=phys_ident(side, phy_side))}
}
% endfor
}
Expand All @@ -581,9 +583,9 @@
physical_size = ("width", "height")
%>
if wm.is_vertical() {
${caller.inner(physical_ident=to_rust_ident(name.replace(size, physical_size[1])))}
${caller.inner(physical_ident=phys_ident(size, physical_size[1]))}
} else {
${caller.inner(physical_ident=to_rust_ident(name.replace(size, physical_size[0])))}
${caller.inner(physical_ident=phys_ident(size, physical_size[0]))}
}
% else:
<% raise Exception("Don't know what to do with logical property %s" % name) %>
Expand Down
11 changes: 9 additions & 2 deletions components/style/properties/longhand/position.mako.rs
Expand Up @@ -3,15 +3,22 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

<%namespace name="helpers" file="/helpers.mako.rs" />
<% from data import ALL_SIZES %>
<% from data import ALL_SIZES, PHYSICAL_SIDES, LOGICAL_SIDES %>

<% data.new_style_struct("Position", inherited=False) %>

% for side in ["top", "right", "bottom", "left"]:
// "top" / "left" / "bottom" / "right"
% for side in PHYSICAL_SIDES:
${helpers.predefined_type(side, "LengthOrPercentageOrAuto",
"computed::LengthOrPercentageOrAuto::Auto",
animatable=True)}
% endfor
// offset-* logical properties, map to "top" / "left" / "bottom" / "right"
% for side in LOGICAL_SIDES:
${helpers.predefined_type("offset-" + side, "LengthOrPercentageOrAuto",
"computed::LengthOrPercentageOrAuto::Auto",
animatable=True, logical=True)}
% endfor

<%helpers:longhand name="z-index" animatable="True">
use values::NoViewportPercentage;
Expand Down

0 comments on commit 1bd6e5f

Please sign in to comment.