desktop_browser_frame_aura.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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_aura/desktop_native_widget_aura.h" 13 14class BrowserDesktopRootWindowHost; 15class BrowserFrame; 16class BrowserView; 17 18namespace views { 19namespace corewm { 20class VisibilityController; 21} 22} 23 24//////////////////////////////////////////////////////////////////////////////// 25// DesktopBrowserFrameAura 26// 27// DesktopBrowserFrameAura is a DesktopNativeWidgetAura subclass that provides 28// the window frame for the Chrome browser window. 29// 30class DesktopBrowserFrameAura : public views::DesktopNativeWidgetAura, 31 public NativeBrowserFrame { 32 public: 33 DesktopBrowserFrameAura(BrowserFrame* browser_frame, 34 BrowserView* browser_view); 35 36 BrowserView* browser_view() const { return browser_view_; } 37 38 protected: 39 // Overridden from views::DesktopNativeWidgetAura: 40 virtual void InitNativeWidget( 41 const views::Widget::InitParams& params) OVERRIDE; 42 virtual void OnWindowDestroying() OVERRIDE; 43 44 // Overridden from NativeBrowserFrame: 45 virtual views::NativeWidget* AsNativeWidget() OVERRIDE; 46 virtual const views::NativeWidget* AsNativeWidget() const OVERRIDE; 47 virtual bool UsesNativeSystemMenu() const OVERRIDE; 48 virtual int GetMinimizeButtonOffset() const OVERRIDE; 49 virtual void TabStripDisplayModeChanged() OVERRIDE; 50 51 private: 52 virtual ~DesktopBrowserFrameAura(); 53 54 // The BrowserView is our ClientView. This is a pointer to it. 55 BrowserView* browser_view_; 56 BrowserFrame* browser_frame_; 57 58 // Owned by the RootWindow. 59 BrowserDesktopRootWindowHost* browser_desktop_root_window_host_; 60 61 scoped_ptr<views::corewm::VisibilityController> visibility_controller_; 62 63 DISALLOW_COPY_AND_ASSIGN(DesktopBrowserFrameAura); 64}; 65 66#endif // CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_BROWSER_FRAME_AURA_H_ 67