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 // Enables or disables the hover state. |
| 36 virtual void SetHovered(bool is_hovered) = 0; |
| 37 |
| 38 // Returns true if the hover state is enabled. |
| 39 virtual bool IsHovered() const = 0; |
| 40 |
35 virtual gfx::Size GetInkDropLargeSize() const = 0; | 41 virtual gfx::Size GetInkDropLargeSize() const = 0; |
36 | 42 |
37 // Sets the different sizes of the ink drop. | 43 // Sets the different sizes of the ink drop. |
38 virtual void SetInkDropSize(const gfx::Size& large_size, | 44 virtual void SetInkDropSize(const gfx::Size& large_size, |
39 int large_corner_radius, | 45 int large_corner_radius, |
40 const gfx::Size& small_size, | 46 const gfx::Size& small_size, |
41 int small_corner_radius) = 0; | 47 int small_corner_radius) = 0; |
42 | 48 |
43 // Sets the |center_point| of the ink drop relative to its parent Layer. | 49 // Sets the |center_point| of the ink drop relative to its parent Layer. |
44 virtual void SetInkDropCenter(const gfx::Point& center_point) = 0; | 50 virtual void SetInkDropCenter(const gfx::Point& center_point) = 0; |
45 | 51 |
46 protected: | 52 protected: |
47 InkDropAnimationController() {} | 53 InkDropAnimationController() {} |
48 | 54 |
49 private: | 55 private: |
50 DISALLOW_COPY_AND_ASSIGN(InkDropAnimationController); | 56 DISALLOW_COPY_AND_ASSIGN(InkDropAnimationController); |
51 }; | 57 }; |
52 | 58 |
53 } // namespace views | 59 } // namespace views |
54 | 60 |
55 #endif // UI_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ | 61 #endif // UI_VIEWS_ANIMATION_INK_DROP_ANIMATION_CONTROLLER_H_ |
OLD | NEW |