1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 import "ui/mojo/geometry/geometry.mojom";
9 enum AnimationTweenType {
16 enum AnimationProperty {
23 struct AnimationValue {
28 // Identifies how a particular property should be animated between a start and
30 struct AnimationElement {
31 AnimationProperty property;
33 // Duration is in microseconds.
36 AnimationTweenType tween_type;
38 // If not specified the start value is taken from either the current value
39 // (for the first element) or the target_value of the previous element.
40 AnimationValue? start_value;
42 // target_value may be null when property is NONE.
43 AnimationValue? target_value;
46 // An AnimationSequence consists of a number of AnimationElements to animate.
47 // Each element is animated serially.
48 struct AnimationSequence {
49 // Number of times to run the sequence. Value of 0 means run until
50 // explicitly stopped.
53 array<AnimationElement> elements;
56 // AnimationGroup identifies a view and a set of AnimationSequences to apply
57 // to the view. Each sequence is run in parallel.
58 struct AnimationGroup {
60 array<AnimationSequence> sequences;