loading_animation.h revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_AUTOFILL_LOADING_ANIMATION_H_ 6#define CHROME_BROWSER_UI_AUTOFILL_LOADING_ANIMATION_H_ 7 8#include "ui/gfx/animation/linear_animation.h" 9 10namespace autofill { 11 12// An animation for a dancing ellipsis. 13class LoadingAnimation : public gfx::LinearAnimation { 14 public: 15 explicit LoadingAnimation(gfx::AnimationDelegate* delegate); 16 virtual ~LoadingAnimation(); 17 18 // gfx::Animation implementation. 19 virtual void Step(base::TimeTicks time_now) OVERRIDE; 20 21 // Returns the vertical pixel offset for the nth dot. 22 double GetCurrentValueForDot(size_t dot_i); 23 24 // Stops this animation. Use this instead of Stop() to make sure future 25 // runs don't mess up on the first cycle. 26 void Reset(); 27 28 private: 29 // Describes a frame of the animation, a la -webkit-keyframes. 30 struct AnimationFrame { 31 double value; 32 double position; 33 }; 34 35 // True if the current cycle is the first one since Reset() was last called. 36 bool first_cycle_; 37}; 38 39} // namespace autofill 40 41#endif // CHROME_BROWSER_UI_AUTOFILL_LOADING_ANIMATION_H_ 42