Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3690)

Unified Diff: chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_controller.h

Issue 2430403003: [Mac] Refactor the fullscreen toolbar animation (Closed)
Patch Set: Fix for erikchen Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698