blob: 5eb51cfa6f4447d6847f13e895c60b9934366da9 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_VIEWS_ANIMATION_INK_DROP_OBSERVER_H_
#define UI_VIEWS_ANIMATION_INK_DROP_OBSERVER_H_
#include <string>
#include "base/macros.h"
#include "ui/views/animation/ink_drop_state.h"
#include "ui/views/views_export.h"
namespace views {
// Observer to attach to an InkDrop.
class VIEWS_EXPORT InkDropObserver {
public:
// Called when the animation of the current InkDrop has started. This
// includes the ripple or highlight animation. Note: this is not guaranteed to
// be notified, as the notification is dependent on the subclass
// implementation.
virtual void InkDropAnimationStarted() = 0;
// Called when the animation to the provided ink drop state has ended (both if
// the animation ended successfully, and if the animation was aborted).
// Includes ripple animation only.
// NOTE: this is not guaranteed to be notified, as the notification is
// dependent on the subclass implementation.
// |ink_drop_state| - The state to which the ink drop ripple was animating.
virtual void InkDropRippleAnimationEnded(InkDropState ink_drop_state) = 0;
protected:
InkDropObserver() = default;
virtual ~InkDropObserver() = default;
private:
DISALLOW_COPY_AND_ASSIGN(InkDropObserver);
};
} // namespace views
#endif // UI_VIEWS_ANIMATION_INK_DROP_OBSERVER_H_