mirror of
https://github.com/servo/servo.git
synced 2025-07-22 14:53:49 +01:00
Determine animated types from specified types
This commit is contained in:
parent
a90e660eac
commit
aa7cc261f8
2 changed files with 17 additions and 6 deletions
|
@ -229,6 +229,11 @@ class Longhand(object):
|
||||||
def enabled_in_content(self):
|
def enabled_in_content(self):
|
||||||
return self.enabled_in == "content"
|
return self.enabled_in == "content"
|
||||||
|
|
||||||
|
def base_type(self):
|
||||||
|
if self.predefined_type and not self.is_vector:
|
||||||
|
return "::values::specified::{}".format(self.predefined_type)
|
||||||
|
return "longhands::{}::SpecifiedValue".format(self.ident)
|
||||||
|
|
||||||
def specified_type(self):
|
def specified_type(self):
|
||||||
if self.predefined_type and not self.is_vector:
|
if self.predefined_type and not self.is_vector:
|
||||||
ty = "::values::specified::{}".format(self.predefined_type)
|
ty = "::values::specified::{}".format(self.predefined_type)
|
||||||
|
@ -281,6 +286,13 @@ class Longhand(object):
|
||||||
}
|
}
|
||||||
return bool(self.keyword)
|
return bool(self.keyword)
|
||||||
|
|
||||||
|
def animated_type(self):
|
||||||
|
assert self.animatable
|
||||||
|
computed = "<{} as ToComputedValue>::ComputedValue".format(self.base_type())
|
||||||
|
if self.is_animatable_with_computed_value:
|
||||||
|
return computed
|
||||||
|
return "<{} as ToAnimatedValue>::AnimatedValue".format(computed)
|
||||||
|
|
||||||
|
|
||||||
class Shorthand(object):
|
class Shorthand(object):
|
||||||
def __init__(self, name, sub_properties, spec=None, servo_pref=None, gecko_pref=None,
|
def __init__(self, name, sub_properties, spec=None, servo_pref=None, gecko_pref=None,
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
|
|
||||||
<%namespace name="helpers" file="/helpers.mako.rs" />
|
<%namespace name="helpers" file="/helpers.mako.rs" />
|
||||||
|
|
||||||
<% from data import to_idl_name, SYSTEM_FONT_LONGHANDS %>
|
<%
|
||||||
|
from data import to_idl_name, SYSTEM_FONT_LONGHANDS
|
||||||
|
from itertools import groupby
|
||||||
|
%>
|
||||||
|
|
||||||
use cssparser::Parser;
|
use cssparser::Parser;
|
||||||
#[cfg(feature = "gecko")] use gecko_bindings::bindings::RawServoAnimationValueMap;
|
#[cfg(feature = "gecko")] use gecko_bindings::bindings::RawServoAnimationValueMap;
|
||||||
|
@ -349,11 +352,7 @@ pub enum AnimationValue {
|
||||||
% for prop in data.longhands:
|
% for prop in data.longhands:
|
||||||
% if prop.animatable:
|
% if prop.animatable:
|
||||||
/// `${prop.name}`
|
/// `${prop.name}`
|
||||||
% if prop.is_animatable_with_computed_value:
|
${prop.camel_case}(${prop.animated_type()}),
|
||||||
${prop.camel_case}(longhands::${prop.ident}::computed_value::T),
|
|
||||||
% else:
|
|
||||||
${prop.camel_case}(<longhands::${prop.ident}::computed_value::T as ToAnimatedValue>::AnimatedValue),
|
|
||||||
% endif
|
|
||||||
% else:
|
% else:
|
||||||
/// `${prop.name}` (not animatable)
|
/// `${prop.name}` (not animatable)
|
||||||
${prop.camel_case}(Void),
|
${prop.camel_case}(Void),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue