| Index: ash/wm/custom_frame_view_ash.h
|
| diff --git a/ash/wm/custom_frame_view_ash.h b/ash/wm/custom_frame_view_ash.h
|
| index 9593abbe70cb216c1d009f5c086606021d149bcd..cf8e99ddece4404392d73f813d1355b18c9ac44a 100644
|
| --- a/ash/wm/custom_frame_view_ash.h
|
| +++ b/ash/wm/custom_frame_view_ash.h
|
| @@ -12,6 +12,7 @@
|
| namespace ash {
|
| class FrameBorderHitTestController;
|
| class HeaderPainter;
|
| +class ImmersiveFullscreenController;
|
| }
|
| namespace gfx {
|
| class Font;
|
| @@ -24,7 +25,11 @@ namespace ash {
|
|
|
| class FrameCaptionButtonContainerView;
|
|
|
| -// A NonClientFrameView used for dialogs and other non-browser windows.
|
| +// A NonClientFrameView which supports immersive fullscreen which is used for
|
| +// packaged apps, dialogs and other non-browser windows. When in immersive
|
| +// fullscreen, the client view takes up the entire widget and the window header
|
| +// is an overlay. The window header overlay slides onscreen when the user hovers
|
| +// the mouse at the top of the screen.
|
| // See also views::CustomFrameView and BrowserNonClientFrameViewAsh.
|
| class ASH_EXPORT CustomFrameViewAsh : public views::NonClientFrameView {
|
| public:
|
| @@ -34,6 +39,11 @@ class ASH_EXPORT CustomFrameViewAsh : public views::NonClientFrameView {
|
| explicit CustomFrameViewAsh(views::Widget* frame);
|
| virtual ~CustomFrameViewAsh();
|
|
|
| + // Inits |immersive_fullscreen_controller| so that the controller reveals
|
| + // and hides |header_view_| in immersive fullscreen.
|
| + void InitImmersiveFullscreenControllerForView(
|
| + ImmersiveFullscreenController* immersive_fullscreen_controller);
|
| +
|
| // views::NonClientFrameView overrides:
|
| virtual gfx::Rect GetBoundsForClientView() const OVERRIDE;
|
| virtual gfx::Rect GetWindowBoundsForClientBounds(
|
| @@ -44,27 +54,27 @@ class ASH_EXPORT CustomFrameViewAsh : public views::NonClientFrameView {
|
| virtual void ResetWindowControls() OVERRIDE;
|
| virtual void UpdateWindowIcon() OVERRIDE;
|
| virtual void UpdateWindowTitle() OVERRIDE;
|
| + virtual void ShouldPaintAsActiveChanged() OVERRIDE;
|
|
|
| // views::View overrides:
|
| virtual gfx::Size GetPreferredSize() OVERRIDE;
|
| - virtual void Layout() OVERRIDE;
|
| virtual const char* GetClassName() const OVERRIDE;
|
| - virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
|
| virtual gfx::Size GetMinimumSize() OVERRIDE;
|
| virtual gfx::Size GetMaximumSize() OVERRIDE;
|
| + virtual bool HitTestRect(const gfx::Rect& rect) const OVERRIDE;
|
|
|
| private:
|
| + class OverlayView;
|
| +
|
| // Height from top of window to top of client area.
|
| int NonClientTopBorderHeight() const;
|
|
|
| // Not owned.
|
| views::Widget* frame_;
|
|
|
| - // View which contains the window controls.
|
| - FrameCaptionButtonContainerView* caption_button_container_;
|
| -
|
| - // Helper class for painting the header.
|
| - scoped_ptr<HeaderPainter> header_painter_;
|
| + // View which contains the title and window controls.
|
| + class HeaderView;
|
| + HeaderView* header_view_;
|
|
|
| // Updates the hittest bounds overrides based on the window show type.
|
| scoped_ptr<FrameBorderHitTestController> frame_border_hit_test_controller_;
|
|
|