- add sources.
[platform/framework/web/crosswalk.git] / src / ui / compositor / scoped_animation_duration_scale_mode.h
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
11 namespace ui {
12
13 // Speed up or slow down animations for testing or debugging.
14 class 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