Index: chrome/browser/ui/views/immersive_mode_controller.h |
diff --git a/chrome/browser/ui/views/immersive_mode_controller.h b/chrome/browser/ui/views/immersive_mode_controller.h |
deleted file mode 100644 |
index 53a211856b5c3d64bdb0c58934be7bb236ca9108..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/views/immersive_mode_controller.h |
+++ /dev/null |
@@ -1,160 +0,0 @@ |
-// Copyright 2012 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_VIEWS_IMMERSIVE_MODE_CONTROLLER_H_ |
-#define CHROME_BROWSER_UI_VIEWS_IMMERSIVE_MODE_CONTROLLER_H_ |
- |
-#include "base/basictypes.h" |
-#include "base/compiler_specific.h" |
-#include "base/timer.h" |
-#include "ui/base/events/event_handler.h" |
-#include "ui/gfx/native_widget_types.h" |
- |
-class BrowserView; |
-class RevealView; |
- |
-namespace views { |
-class MouseWatcher; |
-class View; |
-} |
- |
-// Controller for an "immersive mode" similar to MacOS presentation mode where |
-// the top-of-window views are hidden until the mouse hits the top of the |
-// screen. The tab strip is optionally painted with miniature "tab indicator" |
-// rectangles. |
-class ImmersiveModeController : public ui::EventHandler { |
- public: |
- ImmersiveModeController(); |
- virtual ~ImmersiveModeController(); |
- |
- // Must initialize after browser view has a Widget and native window. |
- void Init(BrowserView* browser_view); |
- |
- // Returns true if immersive mode should be used for fullscreen based on |
- // command line flags. |
- static bool UseImmersiveFullscreen(); |
- |
- // Enables or disables immersive mode. |
- void SetEnabled(bool enabled); |
- bool enabled() const { return enabled_; } |
- |
- // See member comment below. |
- bool hide_tab_indicators() const { return hide_tab_indicators_; } |
- |
- // True when the top views are hidden due to immersive mode. |
- bool ShouldHideTopViews() const { |
- return enabled_ && reveal_state_ == CLOSED; |
- } |
- |
- // True when the top views are fully or partially visible. |
- bool IsRevealed() const { return enabled_ && reveal_state_ != CLOSED; } |
- |
- // If the controller is temporarily revealing the top views ensures that |
- // the reveal view's layer is on top and hence visible over web contents. |
- void MaybeStackViewAtTop(); |
- |
- // Shows the reveal view if immersive mode is enabled. Used when focus is |
- // placed in the location bar, tools menu, etc. |
- void MaybeStartReveal(); |
- |
- // Immediately hides the reveal view, without animating. |
- void CancelReveal(); |
- |
- // If |reveal| performs a reveal and holds the view open until called again |
- // with |reveal| false. Immersive mode must be enabled. |
- void RevealAndLock(bool reveal); |
- |
- // Called when the reveal view's children lose focus, may end the reveal. |
- void OnRevealViewLostFocus(); |
- |
- // ui::EventHandler overrides: |
- virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE; |
- |
- // Testing interface. |
- void SetHideTabIndicatorsForTest(bool hide); |
- void StartRevealForTest(); |
- void OnRevealViewLostMouseForTest(); |
- |
- private: |
- enum Animate { |
- ANIMATE_NO, |
- ANIMATE_SLOW, |
- ANIMATE_FAST, |
- }; |
- enum RevealState { |
- CLOSED, // Top container only showing tabstrip, y = 0. |
- SLIDING_OPEN, // All views showing, y animating from -height to 0. |
- REVEALED, // All views showing, y = 0. |
- SLIDING_CLOSED, // All views showing, y animating from 0 to -height. |
- }; |
- |
- // Enables or disables observers for mouse move and window restore. |
- void EnableWindowObservers(bool enable); |
- |
- // Temporarily reveals the top-of-window views while in immersive mode, |
- // hiding them when the cursor exits the area of the top views. If |animate| |
- // is not ANIMATE_NO, slides in the view, otherwise shows it immediately. |
- void StartReveal(Animate animate); |
- |
- // Updates layout for |browser_view_| including window caption controls and |
- // tab strip style |immersive_style|. |
- void LayoutBrowserView(bool immersive_style); |
- |
- // Slides open the reveal view at the top of the screen. |
- void AnimateSlideOpen(); |
- void OnSlideOpenAnimationCompleted(); |
- |
- // Called when the mouse exits the reveal view area, may end the reveal. |
- void OnRevealViewLostMouse(); |
- |
- // Hides the top-of-window views. Optionally animates. |
- void EndReveal(Animate animate); |
- |
- // Slide out the reveal view. |
- void AnimateSlideClosed(int duration_ms); |
- void OnSlideClosedAnimationCompleted(); |
- |
- // Browser view holding the views to be shown and hidden. Not owned. |
- BrowserView* browser_view_; |
- |
- // True when in immersive mode. |
- bool enabled_; |
- |
- // State machine for the revealed/closed animations. |
- RevealState reveal_state_; |
- |
- // If true, reveal will not be canceled when the mouse moves outside the |
- // top view. |
- bool reveal_locked_; |
- |
- // True if the miniature "tab indicators" should be hidden in the main browser |
- // view when immersive mode is enabled. |
- bool hide_tab_indicators_; |
- |
- // Timer to track cursor being held at the top. |
- base::OneShotTimer<ImmersiveModeController> top_timer_; |
- |
- // Mouse is hovering over the revealed view. |
- bool reveal_hovered_; |
- |
- // Native window for the browser, needed to clean up observers. |
- gfx::NativeWindow native_window_; |
- |
-#if defined(USE_AURA) |
- // Observer to disable immersive mode when window leaves the maximized state. |
- class WindowObserver; |
- scoped_ptr<WindowObserver> window_observer_; |
-#endif |
- |
- // Animation observers. They must be separate because animations can be |
- // aborted and have their observers triggered at any time and the state |
- // machine needs to know which animation completed. |
- class AnimationObserver; |
- scoped_ptr<AnimationObserver> slide_open_observer_; |
- scoped_ptr<AnimationObserver> slide_closed_observer_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ImmersiveModeController); |
-}; |
- |
-#endif // CHROME_BROWSER_UI_VIEWS_IMMERSIVE_MODE_CONTROLLER_H_ |