| Index: ash/shared/immersive_fullscreen_controller.h
|
| diff --git a/ash/wm/immersive_fullscreen_controller.h b/ash/shared/immersive_fullscreen_controller.h
|
| similarity index 83%
|
| rename from ash/wm/immersive_fullscreen_controller.h
|
| rename to ash/shared/immersive_fullscreen_controller.h
|
| index 91364f93700d3afd25f38746d48d242aa66be3cc..f0918a0b8f4e47cc16302fd30d8918bad2f5a753 100644
|
| --- a/ash/wm/immersive_fullscreen_controller.h
|
| +++ b/ash/shared/immersive_fullscreen_controller.h
|
| @@ -2,15 +2,14 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef ASH_WM_IMMERSIVE_FULLSCREEN_CONTROLLER_H_
|
| -#define ASH_WM_IMMERSIVE_FULLSCREEN_CONTROLLER_H_
|
| +#ifndef ASH_SHARED_IMMERSIVE_FULLSCREEN_CONTROLLER_H_
|
| +#define ASH_SHARED_IMMERSIVE_FULLSCREEN_CONTROLLER_H_
|
|
|
| #include <memory>
|
| #include <vector>
|
|
|
| #include "ash/ash_export.h"
|
| -#include "ash/common/wm/immersive/wm_immersive_fullscreen_controller.h"
|
| -#include "ash/common/wm/immersive_revealed_lock.h"
|
| +#include "ash/shared/immersive_revealed_lock.h"
|
| #include "base/macros.h"
|
| #include "base/timer/timer.h"
|
| #include "ui/gfx/animation/animation_delegate.h"
|
| @@ -37,29 +36,56 @@ class Widget;
|
| namespace ash {
|
|
|
| class ImmersiveFocusWatcher;
|
| +class ImmersiveFullscreenControllerDelegate;
|
| class ImmersiveFullscreenControllerTestApi;
|
| class ImmersiveGestureHandler;
|
| class WmWindow;
|
|
|
| class ASH_EXPORT ImmersiveFullscreenController
|
| - : public WmImmersiveFullscreenController,
|
| - public gfx::AnimationDelegate,
|
| + : public gfx::AnimationDelegate,
|
| public views::PointerWatcher,
|
| public views::WidgetObserver,
|
| public ImmersiveRevealedLock::Delegate {
|
| public:
|
| + // The enum is used for an enumerated histogram. New items should be only
|
| + // added to the end.
|
| + enum WindowType {
|
| + WINDOW_TYPE_OTHER,
|
| + WINDOW_TYPE_BROWSER,
|
| + WINDOW_TYPE_HOSTED_APP,
|
| + WINDOW_TYPE_PACKAGED_APP,
|
| + WINDOW_TYPE_COUNT
|
| + };
|
| +
|
| + // How many pixels are reserved for touch-events towards the top of an
|
| + // immersive-fullscreen window.
|
| + static const int kImmersiveFullscreenTopEdgeInset;
|
| +
|
| static const int kMouseRevealBoundsHeight;
|
|
|
| ImmersiveFullscreenController();
|
| ~ImmersiveFullscreenController() override;
|
|
|
| - // WmImmersiveFullscreenController overrides:
|
| - void Init(WmImmersiveFullscreenControllerDelegate* delegate,
|
| + // Initializes the controller. Must be called prior to enabling immersive
|
| + // fullscreen via SetEnabled(). |top_container| is used to keep the
|
| + // top-of-window views revealed when a child of |top_container| has focus.
|
| + // |top_container| does not affect which mouse and touch events keep the
|
| + // top-of-window views revealed. |widget| is the widget to make fullscreen.
|
| + void Init(ImmersiveFullscreenControllerDelegate* delegate,
|
| views::Widget* widget,
|
| - views::View* top_container) override;
|
| - void SetEnabled(WindowType window_type, bool enable) override;
|
| - bool IsEnabled() const override;
|
| - bool IsRevealed() const override;
|
| + views::View* top_container);
|
| +
|
| + // Enables or disables immersive fullscreen.
|
| + // |window_type| is the type of window which is put in immersive fullscreen.
|
| + // It is only used for histogramming.
|
| + void SetEnabled(WindowType window_type, bool enable);
|
| +
|
| + // Returns true if in immersive fullscreen.
|
| + bool IsEnabled() const;
|
| +
|
| + // Returns true if in immersive fullscreen and the top-of-window views are
|
| + // fully or partially visible.
|
| + bool IsRevealed() const;
|
|
|
| // Returns a lock which will keep the top-of-window views revealed for its
|
| // lifetime. Several locks can be obtained. When all of the locks are
|
| @@ -194,7 +220,7 @@ class ASH_EXPORT ImmersiveFullscreenController
|
| gfx::Rect GetDisplayBoundsInScreen() const;
|
|
|
| // Not owned.
|
| - WmImmersiveFullscreenControllerDelegate* delegate_;
|
| + ImmersiveFullscreenControllerDelegate* delegate_;
|
| views::View* top_container_;
|
| views::Widget* widget_;
|
| // The WmWindow for |widget_|.
|
| @@ -244,4 +270,4 @@ class ASH_EXPORT ImmersiveFullscreenController
|
|
|
| } // namespace ash
|
|
|
| -#endif // ASH_WM_IMMERSIVE_FULLSCREEN_CONTROLLER_H_
|
| +#endif // ASH_SHARED_IMMERSIVE_FULLSCREEN_CONTROLLER_H_
|
|
|