OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef UI_GFX_ANIMATION_THROB_ANIMATION_H_ | 5 #ifndef UI_GFX_ANIMATION_THROB_ANIMATION_H_ |
6 #define UI_GFX_ANIMATION_THROB_ANIMATION_H_ | 6 #define UI_GFX_ANIMATION_THROB_ANIMATION_H_ |
7 | 7 |
8 #include "ui/gfx/animation/slide_animation.h" | 8 #include "ui/gfx/animation/slide_animation.h" |
9 | 9 |
10 namespace gfx { | 10 namespace gfx { |
11 | 11 |
12 // A subclass of SlideAnimation that can continually slide. All of the Animation | 12 // A subclass of SlideAnimation that can continually slide. All of the Animation |
13 // methods behave like that of SlideAnimation: transition to the next state. | 13 // methods behave like that of SlideAnimation: transition to the next state. |
14 // The StartThrobbing method causes the ThrobAnimation to cycle between hidden | 14 // The StartThrobbing method causes the ThrobAnimation to cycle between hidden |
15 // and shown for a set number of cycles. | 15 // and shown for a set number of cycles. |
16 // | 16 // |
17 // A ThrobAnimation has two durations: the duration used when behavior like | 17 // A ThrobAnimation has two durations: the duration used when behavior like |
18 // a SlideAnimation, and the duration used when throbbing. | 18 // a SlideAnimation, and the duration used when throbbing. |
19 class GFX_EXPORT ThrobAnimation : public SlideAnimation { | 19 class GFX_EXPORT ThrobAnimation : public SlideAnimation { |
20 public: | 20 public: |
21 explicit ThrobAnimation(AnimationDelegate* target); | 21 explicit ThrobAnimation(AnimationDelegate* target); |
22 virtual ~ThrobAnimation() {} | 22 ~ThrobAnimation() override {} |
23 | 23 |
24 // Starts throbbing. cycles_til_stop gives the number of cycles to do before | 24 // Starts throbbing. cycles_til_stop gives the number of cycles to do before |
25 // stopping. A negative value means "throb indefinitely". | 25 // stopping. A negative value means "throb indefinitely". |
26 void StartThrobbing(int cycles_til_stop); | 26 void StartThrobbing(int cycles_til_stop); |
27 | 27 |
28 // Sets the duration of the slide animation when throbbing. | 28 // Sets the duration of the slide animation when throbbing. |
29 void SetThrobDuration(int duration) { throb_duration_ = duration; } | 29 void SetThrobDuration(int duration) { throb_duration_ = duration; } |
30 | 30 |
31 // Overridden to reset to the slide duration. | 31 // Overridden to reset to the slide duration. |
32 virtual void Reset() override; | 32 void Reset() override; |
33 virtual void Reset(double value) override; | 33 void Reset(double value) override; |
34 virtual void Show() override; | 34 void Show() override; |
35 virtual void Hide() override; | 35 void Hide() override; |
36 | 36 |
37 // Overridden to maintain the slide duration. | 37 // Overridden to maintain the slide duration. |
38 virtual void SetSlideDuration(int duration) override; | 38 void SetSlideDuration(int duration) override; |
39 | 39 |
40 // The number of cycles remaining until the animation stops. | 40 // The number of cycles remaining until the animation stops. |
41 void set_cycles_remaining(int value) { cycles_remaining_ = value; } | 41 void set_cycles_remaining(int value) { cycles_remaining_ = value; } |
42 int cycles_remaining() const { return cycles_remaining_; } | 42 int cycles_remaining() const { return cycles_remaining_; } |
43 | 43 |
44 protected: | 44 protected: |
45 // Overriden to continually throb (assuming we're throbbing). | 45 // Overriden to continually throb (assuming we're throbbing). |
46 virtual void Step(base::TimeTicks time_now) override; | 46 void Step(base::TimeTicks time_now) override; |
47 | 47 |
48 private: | 48 private: |
49 // Resets state such that we behave like SlideAnimation. | 49 // Resets state such that we behave like SlideAnimation. |
50 void ResetForSlide(); | 50 void ResetForSlide(); |
51 | 51 |
52 // Duration of the slide animation. | 52 // Duration of the slide animation. |
53 int slide_duration_; | 53 int slide_duration_; |
54 | 54 |
55 // Duration of the slide animation when throbbing. | 55 // Duration of the slide animation when throbbing. |
56 int throb_duration_; | 56 int throb_duration_; |
57 | 57 |
58 // If throbbing, this is the number of cycles left. | 58 // If throbbing, this is the number of cycles left. |
59 int cycles_remaining_; | 59 int cycles_remaining_; |
60 | 60 |
61 // Are we throbbing? | 61 // Are we throbbing? |
62 bool throbbing_; | 62 bool throbbing_; |
63 | 63 |
64 DISALLOW_COPY_AND_ASSIGN(ThrobAnimation); | 64 DISALLOW_COPY_AND_ASSIGN(ThrobAnimation); |
65 }; | 65 }; |
66 | 66 |
67 } // namespace gfx | 67 } // namespace gfx |
68 | 68 |
69 #endif // UI_GFX_ANIMATION_THROB_ANIMATION_H_ | 69 #endif // UI_GFX_ANIMATION_THROB_ANIMATION_H_ |
OLD | NEW |