desktop_browser_frame_aura.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_BROWSER_FRAME_AURA_H_ 6#define CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_BROWSER_FRAME_AURA_H_ 7 8#include "base/basictypes.h" 9#include "base/memory/scoped_ptr.h" 10#include "chrome/browser/ui/views/frame/native_browser_frame.h" 11#include "ui/views/context_menu_controller.h" 12#include "ui/views/widget/desktop_native_widget_aura.h" 13 14class BrowserDesktopRootWindowHost; 15class BrowserFrame; 16class BrowserView; 17 18namespace ash { 19namespace internal { 20class VisibilityController; 21} 22} 23 24namespace views { 25class MenuRunner; 26} 27 28//////////////////////////////////////////////////////////////////////////////// 29// DesktopBrowserFrameAura 30// 31// DesktopBrowserFrameAura is a DesktopNativeWidgetAura subclass that provides 32// the window frame for the Chrome browser window. 33// 34class DesktopBrowserFrameAura : public views::DesktopNativeWidgetAura, 35 public NativeBrowserFrame { 36 public: 37 DesktopBrowserFrameAura(BrowserFrame* browser_frame, 38 BrowserView* browser_view); 39 40 BrowserView* browser_view() const { return browser_view_; } 41 42 protected: 43 // Overridden from views::DesktopNativeWidgetAura: 44 virtual void InitNativeWidget( 45 const views::Widget::InitParams& params) OVERRIDE; 46 47 // Overridden from NativeBrowserFrame: 48 virtual views::NativeWidget* AsNativeWidget() OVERRIDE; 49 virtual const views::NativeWidget* AsNativeWidget() const OVERRIDE; 50 virtual void InitSystemContextMenu() OVERRIDE; 51 virtual int GetMinimizeButtonOffset() const OVERRIDE; 52 virtual void TabStripDisplayModeChanged() OVERRIDE; 53 54 private: 55 virtual ~DesktopBrowserFrameAura(); 56 57 // The BrowserView is our ClientView. This is a pointer to it. 58 BrowserView* browser_view_; 59 BrowserFrame* browser_frame_; 60 61 // Owned by the RootWindow. 62 BrowserDesktopRootWindowHost* browser_desktop_root_window_host_; 63 64 // System menu. 65 scoped_ptr<views::MenuRunner> menu_runner_; 66 67 scoped_ptr<ash::internal::VisibilityController> visibility_controller_; 68 69 DISALLOW_COPY_AND_ASSIGN(DesktopBrowserFrameAura); 70}; 71 72#endif // CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_BROWSER_FRAME_AURA_H_ 73