Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: chrome/browser/ui/views/frame/browser_frame.cc

Issue 796433003: MacViews: Don't draw custom frame on Mac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@keybinding3
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/frame/browser_frame.h" 5 #include "chrome/browser/ui/views/frame/browser_frame.h"
6 6
7 #include "base/debug/leak_annotations.h" 7 #include "base/debug/leak_annotations.h"
8 #include "base/i18n/rtl.h" 8 #include "base/i18n/rtl.h"
9 #include "chrome/browser/app_mode/app_mode_utils.h" 9 #include "chrome/browser/app_mode/app_mode_utils.h"
10 #include "chrome/browser/themes/theme_service.h" 10 #include "chrome/browser/themes/theme_service.h"
11 #include "chrome/browser/themes/theme_service_factory.h" 11 #include "chrome/browser/themes/theme_service_factory.h"
12 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/browser/ui/browser_list.h" 13 #include "chrome/browser/ui/browser_list.h"
14 #include "chrome/browser/ui/browser_window_state.h" 14 #include "chrome/browser/ui/browser_window_state.h"
15 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h" 15 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h"
16 #include "chrome/browser/ui/views/frame/browser_root_view.h" 16 #include "chrome/browser/ui/views/frame/browser_root_view.h"
17 #include "chrome/browser/ui/views/frame/browser_view.h" 17 #include "chrome/browser/ui/views/frame/browser_view.h"
18 #include "chrome/browser/ui/views/frame/immersive_mode_controller.h" 18 #include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
19 #include "chrome/browser/ui/views/frame/native_browser_frame.h" 19 #include "chrome/browser/ui/views/frame/native_browser_frame.h"
20 #include "chrome/browser/ui/views/frame/native_browser_frame_factory.h" 20 #include "chrome/browser/ui/views/frame/native_browser_frame_factory.h"
21 #include "chrome/browser/ui/views/frame/system_menu_model_builder.h" 21 #include "chrome/browser/ui/views/frame/system_menu_model_builder.h"
22 #include "chrome/browser/ui/views/frame/top_container_view.h" 22 #include "chrome/browser/ui/views/frame/top_container_view.h"
23 #include "chrome/common/pref_names.h"
24 #include "ui/base/hit_test.h" 23 #include "ui/base/hit_test.h"
25 #include "ui/base/theme_provider.h" 24 #include "ui/base/theme_provider.h"
26 #include "ui/events/event_handler.h" 25 #include "ui/events/event_handler.h"
27 #include "ui/gfx/font_list.h" 26 #include "ui/gfx/font_list.h"
28 #include "ui/gfx/screen.h" 27 #include "ui/gfx/screen.h"
29 #include "ui/views/controls/menu/menu_runner.h" 28 #include "ui/views/controls/menu/menu_runner.h"
30 #include "ui/views/widget/native_widget.h" 29 #include "ui/views/widget/native_widget.h"
31 30
32 #if defined(OS_CHROMEOS) 31 #if defined(OS_CHROMEOS)
33 #include "ash/session/session_state_delegate.h" 32 #include "ash/session/session_state_delegate.h"
(...skipping 24 matching lines...) Expand all
58 } 57 }
59 58
60 // static 59 // static
61 const gfx::FontList& BrowserFrame::GetTitleFontList() { 60 const gfx::FontList& BrowserFrame::GetTitleFontList() {
62 static const gfx::FontList* title_font_list = new gfx::FontList(); 61 static const gfx::FontList* title_font_list = new gfx::FontList();
63 ANNOTATE_LEAKING_OBJECT_PTR(title_font_list); 62 ANNOTATE_LEAKING_OBJECT_PTR(title_font_list);
64 return *title_font_list; 63 return *title_font_list;
65 } 64 }
66 65
67 void BrowserFrame::InitBrowserFrame() { 66 void BrowserFrame::InitBrowserFrame() {
68 use_custom_frame_pref_.Init(
69 prefs::kUseCustomChromeFrame,
70 browser_view_->browser()->profile()->GetPrefs(),
71 base::Bind(&BrowserFrame::OnUseCustomChromeFrameChanged,
72 base::Unretained(this)));
73
74 native_browser_frame_ = 67 native_browser_frame_ =
75 NativeBrowserFrameFactory::CreateNativeBrowserFrame(this, browser_view_); 68 NativeBrowserFrameFactory::CreateNativeBrowserFrame(this, browser_view_);
76 views::Widget::InitParams params = native_browser_frame_->GetWidgetParams(); 69 views::Widget::InitParams params = native_browser_frame_->GetWidgetParams();
77 params.delegate = browser_view_; 70 params.delegate = browser_view_;
78 if (browser_view_->browser()->is_type_tabbed()) { 71 if (browser_view_->browser()->is_type_tabbed()) {
79 // Typed panel/popup can only return a size once the widget has been 72 // Typed panel/popup can only return a size once the widget has been
80 // created. 73 // created.
81 chrome::GetSavedWindowBoundsAndShowState(browser_view_->browser(), 74 chrome::GetSavedWindowBoundsAndShowState(browser_view_->browser(),
82 &params.bounds, 75 &params.bounds,
83 &params.show_state); 76 &params.show_state);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 120
128 views::View* BrowserFrame::GetLocationIconView() const { 121 views::View* BrowserFrame::GetLocationIconView() const {
129 return browser_frame_view_->GetLocationIconView(); 122 return browser_frame_view_->GetLocationIconView();
130 } 123 }
131 124
132 views::View* BrowserFrame::GetFrameView() const { 125 views::View* BrowserFrame::GetFrameView() const {
133 return browser_frame_view_; 126 return browser_frame_view_;
134 } 127 }
135 128
136 bool BrowserFrame::UseCustomFrame() const { 129 bool BrowserFrame::UseCustomFrame() const {
137 return use_custom_frame_pref_.GetValue() && 130 return native_browser_frame_->UseCustomFrame();
138 browser_view_->IsBrowserTypeNormal();
139 } 131 }
140 132
141 bool BrowserFrame::ShouldSaveWindowPlacement() const { 133 bool BrowserFrame::ShouldSaveWindowPlacement() const {
142 return native_browser_frame_->ShouldSaveWindowPlacement(); 134 return native_browser_frame_->ShouldSaveWindowPlacement();
143 } 135 }
144 136
145 void BrowserFrame::GetWindowPlacement(gfx::Rect* bounds, 137 void BrowserFrame::GetWindowPlacement(gfx::Rect* bounds,
146 ui::WindowShowState* show_state) const { 138 ui::WindowShowState* show_state) const {
147 return native_browser_frame_->GetWindowPlacement(bounds, show_state); 139 return native_browser_frame_->GetWindowPlacement(bounds, show_state);
148 } 140 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 return browser_frame_view_->avatar_button(); 241 return browser_frame_view_->avatar_button();
250 } 242 }
251 243
252 NewAvatarButton* BrowserFrame::GetNewAvatarMenuButton() { 244 NewAvatarButton* BrowserFrame::GetNewAvatarMenuButton() {
253 return browser_frame_view_->new_avatar_button(); 245 return browser_frame_view_->new_avatar_button();
254 } 246 }
255 247
256 bool BrowserFrame::ShouldLeaveOffsetNearTopBorder() { 248 bool BrowserFrame::ShouldLeaveOffsetNearTopBorder() {
257 return !IsMaximized(); 249 return !IsMaximized();
258 } 250 }
259
260 void BrowserFrame::OnUseCustomChromeFrameChanged() {
261 // Tell the window manager to add or remove system borders.
262 set_frame_type(UseCustomFrame() ? Widget::FRAME_TYPE_FORCE_CUSTOM
263 : Widget::FRAME_TYPE_FORCE_NATIVE);
264 FrameTypeChanged();
265 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/browser_frame.h ('k') | chrome/browser/ui/views/frame/browser_frame_ash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698