Chromium Code Reviews| Index: chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h |
| diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6c0ca080a67c715ee3811746e67039431d4fd41d |
| --- /dev/null |
| +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h |
| @@ -0,0 +1,62 @@ |
| +// Copyright 2016 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 CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_ANIMATION_CONTROLLER_H_ |
| +#define CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_ANIMATION_CONTROLLER_H_ |
| + |
| +#import <Cocoa/Cocoa.h> |
| + |
| +#include "base/timer/timer.h" |
| +#include "ui/gfx/animation/animation_delegate.h" |
| +#include "ui/gfx/animation/slide_animation.h" |
| + |
| +@class FullscreenToolbarController; |
| + |
| +class FullscreenToolbarAnimationController : public gfx::AnimationDelegate { |
| + public: |
| + FullscreenToolbarAnimationController(FullscreenToolbarController* owner); |
| + |
| + // Called by |owner_| to when the fullscreen toolbar layout is updated. |
|
erikchen
2016/10/21 19:36:59
s/to//
Also I'd recommend the name ToolbarDidUpda
spqchan
2016/10/21 20:34:18
Done.
|
| + void UpdateToolbar(); |
| + |
| + // Stops the animation and cancels |hide_toolbar_timer_|. |
| + void StopAnimationAndTimer(); |
| + |
| + // Animates the toolbar in and out to show changes with the tabstrip. |
| + void AnimateToolbarForTabstripChanges(); |
| + |
| + // Animates the toolbar in if it's not fully shown. |
| + void AnimateToolbarIn(); |
| + |
| + // Animates the toolbar out if it's not focused. |
| + void AnimateToolbarOutIfPossible(); |
| + |
| + // Returns the toolbar fraction calculated from the animation progress. |
| + CGFloat GetToolbarFractionFromProgress() const; |
| + |
| + // Returns true if |animation_| is running. |
| + BOOL IsAnimationRunning() const; |
| + |
| + // gfx::AnimationDelegate: |
| + void AnimationProgressed(const gfx::Animation* animation) override; |
| + void AnimationEnded(const gfx::Animation* animation) override; |
| + |
| + private: |
| + // Our owner. |
| + FullscreenToolbarController* owner_; // weak |
| + |
| + // The animation of the decoration. |
| + gfx::SlideAnimation animation_; |
| + |
| + // Timer that will start the scrollbar's hiding animation when it reaches 0. |
| + base::Timer hide_toolbar_timer_; |
| + |
| + // The value that the animation should start from. |
| + CGFloat animation_start_value_; |
| + |
| + // True when the toolbar is dropped to show tabstrip changes. |
| + BOOL should_hide_toolbar_after_delay_; |
| +}; |
| + |
| +#endif // CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_ANIMATION_CONTROLLER_H_ |