15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_PANELS_PANEL_BOUNDS_ANIMATION_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_PANELS_PANEL_BOUNDS_ANIMATION_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/gfx/animation/linear_animation.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)namespace gfx { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AnimationDelegate; 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Panel; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class PanelBoundsAnimation : public gfx::LinearAnimation { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PanelBoundsAnimation(gfx::AnimationDelegate* target, 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Panel* panel, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& initial_bounds, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& final_bounds); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~PanelBoundsAnimation(); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual double GetCurrentValue() const OVERRIDE; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Static because it is reused on Mac to override NSAnimation's calculation. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static double ComputeAnimationValue(double progress, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool for_big_minimize, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double animation_stop_to_show_titlebar); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void AnimateToState(double state) OVERRIDE {} 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Panel* panel_; // Weak, owns us. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool for_big_minimize_; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double animation_stop_to_show_titlebar_; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PanelBoundsAnimation); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_UI_PANELS_PANEL_BOUNDS_ANIMATION_H_ 41