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_ |