Chromium Code Reviews| 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 |
|
oshima
2013/11/08 23:25:32
Can you rephrase so that whether or not this is us
|
| +// 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. |
|
oshima
2013/11/08 23:25:32
can you mention ownership?
|
| + 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_; |