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_; |