1 // Copyright (c) 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 #ifndef UI_COMPOSITOR_TEST_TEST_LAYER_ANIMATION_OBSERVER_H_ 6 #define UI_COMPOSITOR_TEST_TEST_LAYER_ANIMATION_OBSERVER_H_ 7 8 #include "base/compiler_specific.h" 9 #include "ui/compositor/layer_animation_observer.h" 10 11 namespace ui { 12 13 class LayerAnimationSequence; 14 15 // Listens to animation ended notifications. Remembers the last sequence that 16 // it was notified about. 17 class TestLayerAnimationObserver : public LayerAnimationObserver { 18 public: 19 TestLayerAnimationObserver(); 20 virtual ~TestLayerAnimationObserver(); 21 22 virtual void OnLayerAnimationEnded( 23 LayerAnimationSequence* sequence) OVERRIDE; 24 25 virtual void OnLayerAnimationAborted( 26 LayerAnimationSequence* sequence) OVERRIDE; 27 28 virtual void OnLayerAnimationScheduled( 29 LayerAnimationSequence* sequence) OVERRIDE; 30 31 virtual bool RequiresNotificationWhenAnimatorDestroyed() const OVERRIDE; 32 33 const LayerAnimationSequence* last_ended_sequence() const { 34 return last_ended_sequence_; 35 } 36 37 const LayerAnimationSequence* last_scheduled_sequence() const { 38 return last_scheduled_sequence_; 39 } 40 41 const LayerAnimationSequence* last_aborted_sequence() const { 42 return last_aborted_sequence_; 43 } 44 45 void set_requires_notification_when_animator_destroyed(bool value) { 46 requires_notification_when_animator_destroyed_ = value; 47 } 48 49 private: 50 const LayerAnimationSequence* last_ended_sequence_; 51 const LayerAnimationSequence* last_scheduled_sequence_; 52 const LayerAnimationSequence* last_aborted_sequence_; 53 bool requires_notification_when_animator_destroyed_; 54 55 // Copy and assign are allowed. 56 }; 57 58 } // namespace ui 59 60 #endif // UI_COMPOSITOR_TEST_TEST_LAYER_ANIMATION_OBSERVER_H_ 61