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 #include "chrome/browser/ui/views/frame/browser_desktop_root_window_host_x11.h" 6 7 //////////////////////////////////////////////////////////////////////////////// 8 // BrowserDesktopRootWindowHostX11, public: 9 10 BrowserDesktopRootWindowHostX11::BrowserDesktopRootWindowHostX11( 11 views::internal::NativeWidgetDelegate* native_widget_delegate, 12 views::DesktopNativeWidgetAura* desktop_native_widget_aura, 13 const gfx::Rect& initial_bounds, 14 BrowserView* browser_view) 15 : DesktopRootWindowHostX11(native_widget_delegate, 16 desktop_native_widget_aura, 17 initial_bounds), 18 browser_view_(browser_view) { 19 } 20 21 BrowserDesktopRootWindowHostX11::~BrowserDesktopRootWindowHostX11() { 22 } 23 24 //////////////////////////////////////////////////////////////////////////////// 25 // BrowserDesktopRootWindowHostX11, 26 // BrowserDesktopRootWindowHost implementation: 27 28 views::DesktopRootWindowHost* 29 BrowserDesktopRootWindowHostX11::AsDesktopRootWindowHost() { 30 return this; 31 } 32 33 int BrowserDesktopRootWindowHostX11::GetMinimizeButtonOffset() const { 34 return 0; 35 } 36 37 bool BrowserDesktopRootWindowHostX11::UsesNativeSystemMenu() const { 38 return false; 39 } 40 41 //////////////////////////////////////////////////////////////////////////////// 42 // BrowserDesktopRootWindowHostX11, 43 // views::DesktopRootWindowHostX11 implementation: 44 45 aura::RootWindow* BrowserDesktopRootWindowHostX11::Init( 46 aura::Window* content_window, 47 const views::Widget::InitParams& params) { 48 aura::RootWindow* root_window = views::DesktopRootWindowHostX11::Init( 49 content_window, params); 50 51 // We have now created our backing X11 window. We now need to (possibly) 52 // alert Unity that there's a menu bar attached to it. 53 global_menu_bar_x11_.reset(new GlobalMenuBarX11(browser_view_, this)); 54 55 return root_window; 56 } 57 58 void BrowserDesktopRootWindowHostX11::CloseNow() { 59 global_menu_bar_x11_.reset(); 60 DesktopRootWindowHostX11::CloseNow(); 61 } 62 63 //////////////////////////////////////////////////////////////////////////////// 64 // BrowserDesktopRootWindowHost, public: 65 66 // static 67 BrowserDesktopRootWindowHost* 68 BrowserDesktopRootWindowHost::CreateBrowserDesktopRootWindowHost( 69 views::internal::NativeWidgetDelegate* native_widget_delegate, 70 views::DesktopNativeWidgetAura* desktop_native_widget_aura, 71 const gfx::Rect& initial_bounds, 72 BrowserView* browser_view, 73 BrowserFrame* browser_frame) { 74 return new BrowserDesktopRootWindowHostX11(native_widget_delegate, 75 desktop_native_widget_aura, 76 initial_bounds, 77 browser_view); 78 } 79