scoped_animation_duration_scale_mode.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2013 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_SCOPED_ANIMATION_DURATION_SCALE_MODE_H_
6#define UI_COMPOSITOR_SCOPED_ANIMATION_DURATION_SCALE_MODE_H_
7
8#include "base/basictypes.h"
9#include "ui/compositor/compositor_export.h"
10
11namespace ui {
12
13// Speed up or slow down animations for testing or debugging.
14class COMPOSITOR_EXPORT ScopedAnimationDurationScaleMode {
15 public:
16  enum DurationScaleMode {
17    NORMAL_DURATION,
18    FAST_DURATION,
19    SLOW_DURATION,
20    ZERO_DURATION
21  };
22
23  explicit ScopedAnimationDurationScaleMode(
24      DurationScaleMode scoped_duration_scale_mode)
25      : old_duration_scale_mode_(duration_scale_mode_) {
26    duration_scale_mode_ = scoped_duration_scale_mode;
27  }
28
29  ~ScopedAnimationDurationScaleMode() {
30    duration_scale_mode_ = old_duration_scale_mode_;
31  }
32
33  static DurationScaleMode duration_scale_mode() {
34    return duration_scale_mode_;
35  }
36
37 private:
38  DurationScaleMode old_duration_scale_mode_;
39
40  static DurationScaleMode duration_scale_mode_;
41
42  DISALLOW_COPY_AND_ASSIGN(ScopedAnimationDurationScaleMode);
43};
44
45}  // namespace ui
46
47#endif  // UI_COMPOSITOR_SCOPED_ANIMATION_DURATION_SCALE_MODE_H
48