OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ | 5 #ifndef UI_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ |
6 #define UI_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ | 6 #define UI_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "ui/compositor/layer_tree_owner.h" | 10 #include "ui/compositor/layer_tree_owner.h" |
11 #include "ui/events/event_handler.h" | 11 #include "ui/events/event_handler.h" |
12 #include "ui/gfx/geometry/rect.h" | 12 #include "ui/gfx/geometry/rect.h" |
13 #include "ui/gfx/geometry/size.h" | 13 #include "ui/gfx/geometry/size.h" |
14 #include "ui/views/animation/ink_drop_state.h" | 14 #include "ui/views/animation/ink_drop_state.h" |
15 #include "ui/views/views_export.h" | 15 #include "ui/views/views_export.h" |
16 | 16 |
17 namespace ui { | 17 namespace ui { |
18 class Layer; | 18 class Layer; |
19 } | 19 } |
20 | 20 |
21 namespace views { | 21 namespace views { |
22 | 22 |
23 // Pure virtual base class that manages an ink drop animation's lifetime and | 23 // Pure virtual base class that manages the lifetime and state of an ink drop |
24 // state. | 24 // animation as well as visual hover state feedback. |
25 class VIEWS_EXPORT InkDropAnimationController { | 25 class VIEWS_EXPORT InkDropAnimationController { |
26 public: | 26 public: |
27 virtual ~InkDropAnimationController() {} | 27 virtual ~InkDropAnimationController() {} |
28 | 28 |
29 // Gets the current state of the ink drop. | 29 // Gets the current state of the ink drop. |
30 virtual InkDropState GetInkDropState() const = 0; | 30 virtual InkDropState GetInkDropState() const = 0; |
31 | 31 |
32 // Animates from the current InkDropState to |ink_drop_state|. | 32 // Animates from the current InkDropState to |ink_drop_state|. |
33 virtual void AnimateToState(InkDropState ink_drop_state) = 0; | 33 virtual void AnimateToState(InkDropState ink_drop_state) = 0; |
34 | 34 |
| 35 // Returns true if the ink drop animation will automatically transition to the |
| 36 // HIDDEN state when the current state animation completes. |
| 37 virtual bool WillAutoAnimateToHidden() const = 0; |
| 38 |
| 39 // Enables or disables the hover state. |
| 40 virtual void SetHovered(bool is_hovered) = 0; |
| 41 |
| 42 // Returns true if the hover state is enabled. |
| 43 virtual bool IsHovered() const = 0; |
| 44 |
35 virtual gfx::Size GetInkDropLargeSize() const = 0; | 45 virtual gfx::Size GetInkDropLargeSize() const = 0; |
36 | 46 |
37 // Sets the different sizes of the ink drop. | 47 // Sets the different sizes of the ink drop. |
38 virtual void SetInkDropSize(const gfx::Size& large_size, | 48 virtual void SetInkDropSize(const gfx::Size& large_size, |
39 int large_corner_radius, | 49 int large_corner_radius, |
40 const gfx::Size& small_size, | 50 const gfx::Size& small_size, |
41 int small_corner_radius) = 0; | 51 int small_corner_radius) = 0; |
42 | 52 |
43 // Sets the |center_point| of the ink drop relative to its parent Layer. | 53 // Sets the |center_point| of the ink drop relative to its parent Layer. |
44 virtual void SetInkDropCenter(const gfx::Point& center_point) = 0; | 54 virtual void SetInkDropCenter(const gfx::Point& center_point) = 0; |
45 | 55 |
46 protected: | 56 protected: |
47 InkDropAnimationController() {} | 57 InkDropAnimationController() {} |
48 | 58 |
49 private: | 59 private: |
50 DISALLOW_COPY_AND_ASSIGN(InkDropAnimationController); | 60 DISALLOW_COPY_AND_ASSIGN(InkDropAnimationController); |
51 }; | 61 }; |
52 | 62 |
53 } // namespace views | 63 } // namespace views |
54 | 64 |
55 #endif // UI_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ | 65 #endif // UI_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ |
OLD | NEW |