mirror of
https://github.com/servo/servo.git
synced 2025-07-22 06:43:40 +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):
|
||||
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):
|
||||
if self.predefined_type and not self.is_vector:
|
||||
ty = "::values::specified::{}".format(self.predefined_type)
|
||||
|
@ -281,6 +286,13 @@ class Longhand(object):
|
|||
}
|
||||
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):
|
||||
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" />
|
||||
|
||||
<% 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;
|
||||
#[cfg(feature = "gecko")] use gecko_bindings::bindings::RawServoAnimationValueMap;
|
||||
|
@ -349,11 +352,7 @@ pub enum AnimationValue {
|
|||
% for prop in data.longhands:
|
||||
% if prop.animatable:
|
||||
/// `${prop.name}`
|
||||
% if prop.is_animatable_with_computed_value:
|
||||
${prop.camel_case}(longhands::${prop.ident}::computed_value::T),
|
||||
% else:
|
||||
${prop.camel_case}(<longhands::${prop.ident}::computed_value::T as ToAnimatedValue>::AnimatedValue),
|
||||
% endif
|
||||
${prop.camel_case}(${prop.animated_type()}),
|
||||
% else:
|
||||
/// `${prop.name}` (not animatable)
|
||||
${prop.camel_case}(Void),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue