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/desktop_browser_frame_aura.h"
      6 
      7 #include "chrome/app/chrome_command_ids.h"
      8 #include "chrome/browser/ui/views/frame/browser_desktop_root_window_host.h"
      9 #include "chrome/browser/ui/views/frame/browser_view.h"
     10 #include "chrome/browser/ui/views/frame/desktop_user_action_handler_aura.h"
     11 #include "grit/chromium_strings.h"
     12 #include "grit/generated_resources.h"
     13 #include "ui/aura/client/aura_constants.h"
     14 #include "ui/aura/root_window.h"
     15 #include "ui/aura/window.h"
     16 #include "ui/aura/window_observer.h"
     17 #include "ui/base/hit_test.h"
     18 #include "ui/base/l10n/l10n_util.h"
     19 #include "ui/base/models/simple_menu_model.h"
     20 #include "ui/gfx/font.h"
     21 #include "ui/views/corewm/visibility_controller.h"
     22 #include "ui/views/view.h"
     23 
     24 using aura::Window;
     25 
     26 ///////////////////////////////////////////////////////////////////////////////
     27 // DesktopBrowserFrameAura, public:
     28 
     29 DesktopBrowserFrameAura::DesktopBrowserFrameAura(
     30     BrowserFrame* browser_frame,
     31     BrowserView* browser_view)
     32     : views::DesktopNativeWidgetAura(browser_frame),
     33       browser_view_(browser_view),
     34       browser_frame_(browser_frame),
     35       browser_desktop_root_window_host_(NULL) {
     36   GetNativeWindow()->SetName("BrowserFrameAura");
     37 }
     38 
     39 ///////////////////////////////////////////////////////////////////////////////
     40 // DesktopBrowserFrameAura, views::DesktopNativeWidgetAura overrides:
     41 
     42 void DesktopBrowserFrameAura::InitNativeWidget(
     43     const views::Widget::InitParams& params) {
     44   browser_desktop_root_window_host_ =
     45       BrowserDesktopRootWindowHost::CreateBrowserDesktopRootWindowHost(
     46           browser_frame_,
     47           this,
     48           params.bounds,
     49           browser_view_,
     50           browser_frame_);
     51   views::Widget::InitParams modified_params = params;
     52   modified_params.desktop_root_window_host =
     53       browser_desktop_root_window_host_->AsDesktopRootWindowHost();
     54   DesktopNativeWidgetAura::InitNativeWidget(modified_params);
     55 
     56   user_action_client_.reset(
     57       new DesktopUserActionHandlerAura(browser_view_->browser()));
     58   aura::client::SetUserActionClient(GetNativeView()->GetRootWindow(),
     59                                     user_action_client_.get());
     60 
     61   visibility_controller_.reset(new views::corewm::VisibilityController);
     62   aura::client::SetVisibilityClient(GetNativeView()->GetRootWindow(),
     63                                     visibility_controller_.get());
     64   views::corewm::SetChildWindowVisibilityChangesAnimated(
     65       GetNativeView()->GetRootWindow());
     66 }
     67 
     68 void DesktopBrowserFrameAura::OnWindowDestroying() {
     69   aura::client::SetVisibilityClient(GetNativeView()->GetRootWindow(), NULL);
     70   DesktopNativeWidgetAura::OnWindowDestroying();
     71 }
     72 
     73 ////////////////////////////////////////////////////////////////////////////////
     74 // DesktopBrowserFrameAura, NativeBrowserFrame implementation:
     75 
     76 views::NativeWidget* DesktopBrowserFrameAura::AsNativeWidget() {
     77   return this;
     78 }
     79 
     80 const views::NativeWidget* DesktopBrowserFrameAura::AsNativeWidget() const {
     81   return this;
     82 }
     83 
     84 bool DesktopBrowserFrameAura::UsesNativeSystemMenu() const {
     85   return browser_desktop_root_window_host_->UsesNativeSystemMenu();
     86 }
     87 
     88 int DesktopBrowserFrameAura::GetMinimizeButtonOffset() const {
     89   return browser_desktop_root_window_host_->GetMinimizeButtonOffset();
     90 }
     91 
     92 void DesktopBrowserFrameAura::TabStripDisplayModeChanged() {
     93 }
     94 
     95 ///////////////////////////////////////////////////////////////////////////////
     96 // DesktopBrowserFrameAura, private:
     97 
     98 DesktopBrowserFrameAura::~DesktopBrowserFrameAura() {
     99 }
    100