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

Unified Diff: chrome/browser/ui/cocoa/fullscreen_toolbar_controller.h

Issue 2430403003: [Mac] Refactor the fullscreen toolbar animation (Closed)
Patch Set: Fix for rsesek 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_toolbar_controller.h
diff --git a/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.h b/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.h
index c34cdaf7314ec9632914af18058c7900ed5739ed..74a1674df595b2e572e17ac876ac0a824fff1461 100644
--- a/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.h
+++ b/chrome/browser/ui/cocoa/fullscreen_toolbar_controller.h
@@ -13,8 +13,8 @@
@class BrowserWindowController;
@class CrTrackingArea;
-@class DropdownAnimation;
@class FullscreenMenubarTracker;
+class FullscreenToolbarAnimationController;
enum class FullscreenSlidingStyle {
OMNIBOX_TABS_PRESENT, // Tab strip and omnibox both visible.
@@ -31,7 +31,7 @@ enum class FullscreenSlidingStyle {
//
// TODO (spqchan): Write tests for this class. See crbug.com/640064.
-@interface FullscreenToolbarController : NSObject<NSAnimationDelegate> {
+@interface FullscreenToolbarController : NSObject {
@private
// Our parent controller.
BrowserWindowController* browserController_; // weak
@@ -55,13 +55,8 @@ enum class FullscreenSlidingStyle {
// object is only set when the browser is in fullscreen mode.
base::scoped_nsobject<FullscreenMenubarTracker> menubarTracker_;
- // Pointer to the currently running animation. Is nil if no animation is
- // running.
- base::scoped_nsobject<DropdownAnimation> currentAnimation_;
-
- // Timer for scheduled hiding of the toolbar when it had been revealed for
- // tabstrip changes.
- base::scoped_nsobject<NSTimer> hideTimer_;
+ // Manages the toolbar animations for the OMNIBOX_TABS_HIDDEN style.
+ std::unique_ptr<FullscreenToolbarAnimationController> animationController_;
// Tracks the currently requested system fullscreen mode, used to show or
// hide the menubar. This should be |kFullScreenModeNormal| when the window
@@ -76,20 +71,6 @@ enum class FullscreenSlidingStyle {
// Whether the omnibox is hidden in fullscreen.
FullscreenSlidingStyle slidingStyle_;
-
- // True when the toolbar is dropped to show tabstrip changes.
- BOOL isRevealingToolbarForTabStripChanges_;
-
- // True when the toolbar should be animated back out via a DropdownAnimation.
- // This is set and unset in hideTimer: and mouseExited:. It's set to YES
- // before it calls animateToolbarVisibility: and then set to NO after the
- // animation has started.
- BOOL shouldAnimateToolbarOut_;
-
- // True when the toolbar is animating in/out for changes in the toolbar
- // visibility locks.
- BOOL isLockingBarVisibility_;
- BOOL isReleasingBarVisibility_;
}
@property(nonatomic, assign) FullscreenSlidingStyle slidingStyle;
@@ -108,14 +89,6 @@ enum class FullscreenSlidingStyle {
- (void)setupFullscreenToolbarForContentView:(NSView*)contentView;
- (void)exitFullscreenMode;
-// Shows/hides the toolbar with animation to reflect changes for the toolbar
-// visibility locks. lockBarVisibilityWithAnimation: should only be called when
-// the lock state goes from unlocked to locked. Likewise,
-// releaseBarVisibilityWithAnimation: should only be called whenthe lock state
-// goes from locked to unlocked.
-- (void)lockBarVisibilityWithAnimation:(BOOL)animate;
-- (void)releaseBarVisibilityWithAnimation:(BOOL)animate;
-
// Informs the controller that the overlay should be shown/hidden, possibly
// with animation.
- (void)ensureOverlayShownWithAnimation:(BOOL)animate;
@@ -138,6 +111,9 @@ enum class FullscreenSlidingStyle {
// return a float that ranges from (0, 1).
- (CGFloat)toolbarFraction;
+// Returns YES if the fullscreen toolbar must be shown.
+- (BOOL)mustShowFullscreenToolbar;
+
// Returns YES if the mouse is on the window's screen. This is used to check
// if the menubar events belong to window's screen since the menubar would
// only be revealed if the mouse is there.

Powered by Google App Engine
This is Rietveld 408576698