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..c2bd6240742cddd23a1654348eaa8178143c46d4 |
--- /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 { |
Robert Sesek
2016/10/24 18:17:32
Class-level comment?
spqchan
2016/10/24 18:55:19
Done.
|
+ public: |
+ FullscreenToolbarAnimationController(FullscreenToolbarController* owner); |
Robert Sesek
2016/10/24 18:17:32
explicit
spqchan
2016/10/24 18:55:19
Done.
|
+ |
+ // Called by |owner_| when the fullscreen toolbar layout is updated. |
+ void ToolbarDidUpdate(); |
+ |
+ // 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. |
Robert Sesek
2016/10/24 18:17:32
Explain what the toolbar fraction is here.
spqchan
2016/10/24 18:55:19
Done.
|
+ CGFloat GetToolbarFractionFromProgress() const; |
+ |
+ // Returns true if |animation_| is running. |
+ BOOL IsAnimationRunning() const; |
Robert Sesek
2016/10/24 18:17:32
Use C++ bool here since the rest of the interface
spqchan
2016/10/24 18:55:19
Done.
|
+ |
+ // 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_ |