• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2012 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.
4 
5 #include "cc/animation/animation_registrar.h"
6 
7 #include "cc/animation/layer_animation_controller.h"
8 
9 namespace cc {
10 
AnimationRegistrar()11 AnimationRegistrar::AnimationRegistrar() : supports_scroll_animations_(false) {
12 }
13 
~AnimationRegistrar()14 AnimationRegistrar::~AnimationRegistrar() {
15   AnimationControllerMap copy = all_animation_controllers_;
16   for (AnimationControllerMap::iterator iter = copy.begin();
17        iter != copy.end();
18        ++iter)
19     (*iter).second->SetAnimationRegistrar(NULL);
20 }
21 
22 scoped_refptr<LayerAnimationController>
GetAnimationControllerForId(int id)23 AnimationRegistrar::GetAnimationControllerForId(int id) {
24   scoped_refptr<LayerAnimationController> to_return;
25   if (!ContainsKey(all_animation_controllers_, id)) {
26     to_return = LayerAnimationController::Create(id);
27     to_return->SetAnimationRegistrar(this);
28     all_animation_controllers_[id] = to_return.get();
29   } else {
30     to_return = all_animation_controllers_[id];
31   }
32   return to_return;
33 }
34 
DidActivateAnimationController(LayerAnimationController * controller)35 void AnimationRegistrar::DidActivateAnimationController(
36     LayerAnimationController* controller) {
37   active_animation_controllers_[controller->id()] = controller;
38 }
39 
DidDeactivateAnimationController(LayerAnimationController * controller)40 void AnimationRegistrar::DidDeactivateAnimationController(
41     LayerAnimationController* controller) {
42   if (ContainsKey(active_animation_controllers_, controller->id()))
43     active_animation_controllers_.erase(controller->id());
44 }
45 
RegisterAnimationController(LayerAnimationController * controller)46 void AnimationRegistrar::RegisterAnimationController(
47     LayerAnimationController* controller) {
48   all_animation_controllers_[controller->id()] = controller;
49 }
50 
UnregisterAnimationController(LayerAnimationController * controller)51 void AnimationRegistrar::UnregisterAnimationController(
52     LayerAnimationController* controller) {
53   if (ContainsKey(all_animation_controllers_, controller->id()))
54     all_animation_controllers_.erase(controller->id());
55   DidDeactivateAnimationController(controller);
56 }
57 
58 }  // namespace cc
59