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.
4
5#ifndef UI_COMPOSITOR_CLOSURE_ANIMATION_OBSERVER_H_
6#define UI_COMPOSITOR_CLOSURE_ANIMATION_OBSERVER_H_
7
8#include "base/callback.h"
9#include "base/macros.h"
10#include "ui/compositor/compositor_export.h"
11#include "ui/compositor/layer_animation_observer.h"
12
13namespace ui {
14
15// Runs a callback at the end of the animation. This observe also destroys
16// itself afterwards.
17class COMPOSITOR_EXPORT ClosureAnimationObserver
18    : public ImplicitAnimationObserver {
19 public:
20  explicit ClosureAnimationObserver(const base::Closure& closure);
21
22 private:
23  virtual ~ClosureAnimationObserver();
24
25  // ImplicitAnimationObserver:
26  virtual void OnImplicitAnimationsCompleted() OVERRIDE;
27
28  const base::Closure closure_;
29
30  DISALLOW_COPY_AND_ASSIGN(ClosureAnimationObserver);
31};
32
33}  // namespace ui
34
35#endif  // UI_COMPOSITOR_CLOSURE_ANIMATION_OBSERVER_H_
36