Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_ANIMATION_CONTROLL ER_H_ | |
| 6 #define CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_ANIMATION_CONTROLL ER_H_ | |
| 7 | |
| 8 #import <Cocoa/Cocoa.h> | |
| 9 | |
| 10 #include "base/timer/timer.h" | |
| 11 #include "ui/gfx/animation/animation_delegate.h" | |
| 12 #include "ui/gfx/animation/slide_animation.h" | |
| 13 | |
| 14 namespace { | |
|
erikchen
2016/10/21 17:22:03
don't use anonymous namespaces in header files. Us
spqchan
2016/10/21 18:26:55
Removed
| |
| 15 class FullscreenToolbarLayoutTest; | |
| 16 } | |
| 17 | |
| 18 @class FullscreenToolbarController; | |
| 19 | |
| 20 class FullscreenToolbarAnimationController : public gfx::AnimationDelegate { | |
| 21 public: | |
| 22 FullscreenToolbarAnimationController(FullscreenToolbarController* owner); | |
| 23 | |
| 24 // Called by |owner_| to update the current toolbar fraction. | |
| 25 void UpdateToolbarFraction(CGFloat fraction); | |
| 26 | |
| 27 // Stops the animation and cancels |hide_toolbar_timer_|. | |
| 28 void StopAnimationAndTimer(); | |
| 29 | |
| 30 // Animates the toolbar in and out to show changes with the tabstrip. | |
| 31 void AnimateToolbarForTabstripChanges(); | |
| 32 | |
| 33 // Animates the toolbar in if it's not fully shown. | |
| 34 void AnimateToolbarIn(); | |
| 35 | |
| 36 // Animates the toolbar out if it's not focused. | |
| 37 void AnimateToolbarOutIfPossible(); | |
| 38 | |
| 39 // Returns the toolbar fraction calculated from the animation progress. | |
| 40 CGFloat GetToolbarFraction() const; | |
| 41 | |
| 42 // Returns true if |animation_| is running. | |
| 43 BOOL IsAnimationRunning() const; | |
| 44 | |
| 45 // gfx::AnimationDelegate: | |
| 46 void AnimationProgressed(const gfx::Animation* animation) override; | |
| 47 void AnimationEnded(const gfx::Animation* animation) override; | |
| 48 | |
| 49 private: | |
| 50 friend class ::FullscreenToolbarLayoutTest; | |
| 51 | |
| 52 // Our owner. | |
| 53 FullscreenToolbarController* owner_; // weak | |
| 54 | |
| 55 // The animation of the decoration. | |
| 56 gfx::SlideAnimation animation_; | |
| 57 | |
| 58 // Timer that will start the scrollbar's hiding animation when it reaches 0. | |
| 59 base::Timer hide_toolbar_timer_; | |
| 60 | |
| 61 // The current fraction of the toolbar being displayed. Used as the starting | |
| 62 // point of the animation. | |
| 63 CGFloat toolbar_fraction_; | |
| 64 | |
| 65 // True when the toolbar is dropped to show tabstrip changes. | |
| 66 BOOL should_hide_toolbar_after_delay_; | |
| 67 | |
| 68 // Used to disable find bar animations when testing. | |
| 69 BOOL disable_animations_during_testing_; | |
|
erikchen
2016/10/21 17:22:03
I notice this isn't used yet. Given that this CL i
spqchan
2016/10/21 18:26:55
Removed this since it looks like the tests need to
erikchen
2016/10/21 19:36:59
yeah, but that wording is a little bit awkward. Ma
spqchan
2016/10/21 20:34:18
Ah, gotcha. Parameters won't be necessary for this
| |
| 70 }; | |
| 71 | |
| 72 #endif // CHROME_BROWSER_UI_COCOA_FULLSCREEN_FULLSCREEN_TOOLBAR_ANIMATION_CONTR OLLER_H_ | |
| OLD | NEW |