blob: a42c7afd8a2cb66f8a855e4b619d317d6535ba5b [file] [log] [blame]
// Copyright 2015 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 SERVICES_KEYBOARD_NATIVE_MOTION_DECAY_ANIMATION_H_
#define SERVICES_KEYBOARD_NATIVE_MOTION_DECAY_ANIMATION_H_
#include "base/macros.h"
#include "base/time/time.h"
#include "services/keyboard_native/animation.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "ui/gfx/geometry/point_f.h"
namespace keyboard {
class MotionDecayAnimation : public Animation {
public:
// Creates a motion decay animation starting at |start_ticks| lasting
// |duration| for
// a line from |start| to |end|. |duration| must be non-zero.
MotionDecayAnimation(const base::TimeTicks& start_ticks,
const base::TimeDelta& duration,
const gfx::PointF& start,
const gfx::PointF& end);
~MotionDecayAnimation() override;
// Animation implementation.
void Draw(SkCanvas* canvas, const base::TimeTicks& current_ticks) override;
bool IsDone(const base::TimeTicks& current_ticks) override;
private:
const base::TimeTicks start_ticks_;
const base::TimeDelta duration_;
const gfx::PointF start_;
const gfx::PointF end_;
DISALLOW_COPY_AND_ASSIGN(MotionDecayAnimation);
};
} // namespace keyboard
#endif // SERVICES_KEYBOARD_NATIVE_MOTION_DECAY_ANIMATION_H_