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