1// Copyright (c) 2011 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_GFX_ANIMATION_TEST_ANIMATION_DELEGATE_H_
6#define UI_GFX_ANIMATION_TEST_ANIMATION_DELEGATE_H_
7
8#include "base/message_loop/message_loop.h"
9#include "ui/gfx/animation/animation_delegate.h"
10
11namespace gfx {
12
13// Trivial AnimationDelegate implementation. AnimationEnded/Canceled quit the
14// message loop.
15class TestAnimationDelegate : public AnimationDelegate {
16 public:
17  TestAnimationDelegate() : canceled_(false), finished_(false) {
18  }
19
20  virtual void AnimationEnded(const Animation* animation) {
21    finished_ = true;
22    base::MessageLoop::current()->Quit();
23  }
24
25  virtual void AnimationCanceled(const Animation* animation) {
26    finished_ = true;
27    canceled_ = true;
28    base::MessageLoop::current()->Quit();
29  }
30
31  bool finished() const {
32    return finished_;
33  }
34
35  bool canceled() const {
36    return canceled_;
37  }
38
39 private:
40  bool canceled_;
41  bool finished_;
42
43  DISALLOW_COPY_AND_ASSIGN(TestAnimationDelegate);
44};
45
46}  // namespace gfx
47
48#endif  // UI_GFX_ANIMATION_TEST_ANIMATION_DELEGATE_H_
49