// Copyright 2012 The Chromium Authors // 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_FRAME_IMMERSIVE_MODE_CONTROLLER_H_ #define CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_H_ #include <memory> #include "base/observer_list.h" class BrowserView; namespace gfx { class Rect; class Size; } namespace views { class Widget; } // A lock which will keep the top-of-window views revealed for its // lifetime. // See ImmersiveModeController::GetRevealedLock for details. class ImmersiveRevealedLock { … }; // 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. // Currently, immersive mode is only available for Chrome OS and macOS. class ImmersiveModeController { … }; class BrowserView; namespace chrome { // Implemented in immersive_mode_controller_factory.cc. std::unique_ptr<ImmersiveModeController> CreateImmersiveModeController( const BrowserView* browser_view); } // namespace chrome #endif // CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_H_