| Index: ui/views/animation/ink_drop_animation_controller_impl.h
|
| diff --git a/ui/views/animation/ink_drop_animation_controller_impl.h b/ui/views/animation/ink_drop_animation_controller_impl.h
|
| index 5ca25633ba16cb6687e34b07ac96af79fdb7ad75..14e14fb3f768d7874963b9f334fba3e1b25519ab 100644
|
| --- a/ui/views/animation/ink_drop_animation_controller_impl.h
|
| +++ b/ui/views/animation/ink_drop_animation_controller_impl.h
|
| @@ -12,9 +12,15 @@
|
| #include "ui/views/animation/ink_drop_animation_observer.h"
|
| #include "ui/views/views_export.h"
|
|
|
| +namespace base {
|
| +class OneShotTimer;
|
| +} // namespace base
|
| +
|
| namespace views {
|
| class InkDropAnimation;
|
| +class InkDropConsumer;
|
| class InkDropHost;
|
| +class InkDropHover;
|
|
|
| // A functional implementation of an InkDropAnimationController.
|
| class VIEWS_EXPORT InkDropAnimationControllerImpl
|
| @@ -23,12 +29,16 @@ class VIEWS_EXPORT InkDropAnimationControllerImpl
|
| public:
|
| // Constructs an ink drop controller that will attach the ink drop to the
|
| // given |ink_drop_host|.
|
| - explicit InkDropAnimationControllerImpl(InkDropHost* ink_drop_host);
|
| + InkDropAnimationControllerImpl(InkDropHost* ink_drop_host,
|
| + InkDropConsumer* ink_drop_consumer);
|
| ~InkDropAnimationControllerImpl() override;
|
|
|
| // InkDropAnimationController:
|
| InkDropState GetInkDropState() const override;
|
| void AnimateToState(InkDropState ink_drop_state) override;
|
| + bool WillAutoAnimateToHidden() const override;
|
| + void SetHovered(bool is_hovered) override;
|
| + bool IsHovered() const override;
|
| gfx::Size GetInkDropLargeSize() const override;
|
| void SetInkDropSize(const gfx::Size& large_size,
|
| int large_corner_radius,
|
| @@ -45,14 +55,40 @@ class VIEWS_EXPORT InkDropAnimationControllerImpl
|
| // Destroys the current |ink_drop_animation_|.
|
| void DestroyInkDropAnimation();
|
|
|
| + // Creates a new InkDropHover and sets it to |hover_|. If |hover_| wasn't null
|
| + // then it will be destroyed using DestroyInkDropHover().
|
| + void CreateInkDropHover();
|
| +
|
| + // Destroys the current |hover_|.
|
| + void DestroyInkDropHover();
|
| +
|
| // views::InkDropAnimationObserver:
|
| void InkDropAnimationStarted(InkDropState ink_drop_state) override;
|
| void InkDropAnimationEnded(InkDropState ink_drop_state,
|
| InkDropAnimationEndedReason reason) override;
|
|
|
| + // Enables or disables the hover state based on |is_hovered| and if an
|
| + // animation is triggered it will be scheduled to have the given
|
| + // |animation_duration|.
|
| + void SetHoveredInternal(bool is_hovered, base::TimeDelta animation_duration);
|
| +
|
| + // Starts the |hover_after_animation_timer_| timer. This will stop the current
|
| + // |hover_after_animation_timer_| instance if it exists.
|
| + void StartHoverAfterAnimationTimer();
|
| +
|
| + // Stops and destroys the current |hover_after_animation_timer_| instance.
|
| + void StopHoverAfterAnimationTimer();
|
| +
|
| + // Callback for when the |hover_after_animation_timer_| fires.
|
| + void HoverAfterAnimationTimerFired();
|
| +
|
| // The host of the ink drop.
|
| InkDropHost* ink_drop_host_;
|
|
|
| + // The consuming surface of the ink drop. Used to poll for information such as
|
| + // whether the hover should be shown or not.
|
| + InkDropConsumer* ink_drop_consumer_;
|
| +
|
| // Cached size for the ink drop's large size animations.
|
| gfx::Size ink_drop_large_size_;
|
|
|
| @@ -68,10 +104,25 @@ class VIEWS_EXPORT InkDropAnimationControllerImpl
|
| // Cached center point for the ink drop.
|
| gfx::Point ink_drop_center_;
|
|
|
| + // The root Layer that parents the InkDropAnimation layers and the
|
| + // InkDropHover layers. The |root_layer_| is the one that is added and removed
|
| + // from the InkDropHost.
|
| + scoped_ptr<ui::Layer> root_layer_;
|
| +
|
| + // The current InkDropHover. Lazily created using CreateInkDropHover();
|
| + scoped_ptr<InkDropHover> hover_;
|
| +
|
| // The current InkDropAnimation. Created on demand using
|
| // CreateInkDropAnimation().
|
| scoped_ptr<InkDropAnimation> ink_drop_animation_;
|
|
|
| + // Tracks whether the InkDropAnimation can be destroyed when a
|
| + // InkDropState::HIDDEN animation completes.
|
| + bool can_destroy_after_hidden_animation_;
|
| +
|
| + // The timer used to delay the hover fade in after an ink drop animation.
|
| + scoped_ptr<base::OneShotTimer> hover_after_animation_timer_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(InkDropAnimationControllerImpl);
|
| };
|
|
|
|
|