12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CC_ANIMATION_ANIMATION_EVENTS_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CC_ANIMATION_ANIMATION_EVENTS_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <vector>
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/animation/animation.h"
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "cc/base/cc_export.h"
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "cc/output/filter_operations.h"
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/transform.h"
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct CC_EXPORT AnimationEvent {
18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  enum Type { Started, Finished, Aborted, PropertyUpdate };
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  AnimationEvent(Type type,
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                 int layer_id,
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                 int group_id,
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                 Animation::TargetProperty target_property,
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                 base::TimeTicks monotonic_time);
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Type type;
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int layer_id;
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  int group_id;
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Animation::TargetProperty target_property;
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::TimeTicks monotonic_time;
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  bool is_impl_only;
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  float opacity;
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  gfx::Transform transform;
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  FilterOperations filters;
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef std::vector<AnimationEvent> AnimationEventsVector;
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace cc
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CC_ANIMATION_ANIMATION_EVENTS_H_
42