Home | History | Annotate | Download | only in frame
      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