// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_COMPOSITOR_SCOPED_ANIMATION_DURATION_SCALE_MODE_H_ #define UI_COMPOSITOR_SCOPED_ANIMATION_DURATION_SCALE_MODE_H_ #include "base/macros.h" #include "ui/compositor/compositor_export.h" namespace ui { // Speed up or slow down animations for testing or debugging. class COMPOSITOR_EXPORT ScopedAnimationDurationScaleMode { public: enum DurationScaleMode { NORMAL_DURATION, FAST_DURATION, SLOW_DURATION, // A very short but guaranteed non-zero duration for individual tests that // need to assert things about animations after creating them. NON_ZERO_DURATION, // Animations complete immediately after being created. Used by most tests. ZERO_DURATION }; explicit ScopedAnimationDurationScaleMode( DurationScaleMode scoped_duration_scale_mode) : old_duration_scale_mode_(duration_scale_mode_) { duration_scale_mode_ = scoped_duration_scale_mode; } ~ScopedAnimationDurationScaleMode() { duration_scale_mode_ = old_duration_scale_mode_; } static DurationScaleMode duration_scale_mode() { return duration_scale_mode_; } private: DurationScaleMode old_duration_scale_mode_; static DurationScaleMode duration_scale_mode_; DISALLOW_COPY_AND_ASSIGN(ScopedAnimationDurationScaleMode); }; } // namespace ui #endif // UI_COMPOSITOR_SCOPED_ANIMATION_DURATION_SCALE_MODE_H