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