1 // Copyright 2012 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 CC_ANIMATION_SCROLLBAR_ANIMATION_CONTROLLER_LINEAR_FADE_H_ 6 #define CC_ANIMATION_SCROLLBAR_ANIMATION_CONTROLLER_LINEAR_FADE_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "cc/animation/scrollbar_animation_controller.h" 10 #include "cc/base/cc_export.h" 11 12 namespace cc { 13 class LayerImpl; 14 15 class CC_EXPORT ScrollbarAnimationControllerLinearFade 16 : public ScrollbarAnimationController { 17 public: 18 static scoped_ptr<ScrollbarAnimationControllerLinearFade> Create( 19 LayerImpl* scroll_layer, 20 ScrollbarAnimationControllerClient* client, 21 base::TimeDelta delay_before_starting, 22 base::TimeDelta duration); 23 24 virtual ~ScrollbarAnimationControllerLinearFade(); 25 26 virtual void DidScrollUpdate() OVERRIDE; 27 28 protected: 29 ScrollbarAnimationControllerLinearFade( 30 LayerImpl* scroll_layer, 31 ScrollbarAnimationControllerClient* client, 32 base::TimeDelta delay_before_starting, 33 base::TimeDelta duration); 34 35 virtual void RunAnimationFrame(float progress) OVERRIDE; 36 37 private: 38 float OpacityAtTime(base::TimeTicks now) const; 39 void ApplyOpacityToScrollbars(float opacity); 40 41 LayerImpl* scroll_layer_; 42 43 DISALLOW_COPY_AND_ASSIGN(ScrollbarAnimationControllerLinearFade); 44 }; 45 46 } // namespace cc 47 48 #endif // CC_ANIMATION_SCROLLBAR_ANIMATION_CONTROLLER_LINEAR_FADE_H_ 49