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

Side by Side Diff: chrome/browser/chromeos/frame/browser_view.cc

Issue 8438064: Separate StatusAreaView from StatusAreaViewChromeos (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/chromeos/frame/browser_view.h" 5 #include "chrome/browser/chromeos/frame/browser_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/command_line.h" 12 #include "base/command_line.h"
13 #include "chrome/app/chrome_command_ids.h" 13 #include "chrome/app/chrome_command_ids.h"
14 #include "chrome/browser/chromeos/frame/layout_mode_button.h" 14 #include "chrome/browser/chromeos/frame/layout_mode_button.h"
15 #include "chrome/browser/chromeos/frame/panel_browser_view.h" 15 #include "chrome/browser/chromeos/frame/panel_browser_view.h"
16 #include "chrome/browser/chromeos/status/input_method_menu_button.h" 16 #include "chrome/browser/chromeos/status/input_method_menu_button.h"
17 #include "chrome/browser/chromeos/status/network_menu_button.h" 17 #include "chrome/browser/chromeos/status/network_menu_button.h"
18 #include "chrome/browser/chromeos/status/status_area_button.h" 18 #include "chrome/browser/chromeos/status/status_area_button.h"
19 #include "chrome/browser/chromeos/status/status_area_view.h" 19 #include "chrome/browser/chromeos/status/status_area_view_chromeos.h"
20 #include "chrome/browser/chromeos/system/runtime_environment.h" 20 #include "chrome/browser/chromeos/system/runtime_environment.h"
21 #include "chrome/browser/chromeos/view_ids.h" 21 #include "chrome/browser/chromeos/view_ids.h"
22 #include "chrome/browser/themes/theme_service.h" 22 #include "chrome/browser/themes/theme_service.h"
23 #include "chrome/browser/themes/theme_service_factory.h" 23 #include "chrome/browser/themes/theme_service_factory.h"
24 #include "chrome/browser/ui/gtk/gtk_util.h" 24 #include "chrome/browser/ui/gtk/gtk_util.h"
25 #include "chrome/browser/ui/views/frame/browser_view.h" 25 #include "chrome/browser/ui/views/frame/browser_view.h"
26 #include "chrome/browser/ui/views/frame/browser_view_layout.h" 26 #include "chrome/browser/ui/views/frame/browser_view_layout.h"
27 #include "chrome/browser/ui/views/tabs/tab.h" 27 #include "chrome/browser/ui/views/tabs/tab.h"
28 #include "chrome/browser/ui/views/tabs/tab_strip.h" 28 #include "chrome/browser/ui/views/tabs/tab_strip.h"
29 #include "chrome/browser/ui/views/theme_background.h" 29 #include "chrome/browser/ui/views/theme_background.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 status_area_ = NULL; 135 status_area_ = NULL;
136 layout_mode_button_ = NULL; 136 layout_mode_button_ = NULL;
137 ::BrowserViewLayout::Installed(host); 137 ::BrowserViewLayout::Installed(host);
138 } 138 }
139 139
140 void ViewAdded(views::View* host, 140 void ViewAdded(views::View* host,
141 views::View* view) { 141 views::View* view) {
142 ::BrowserViewLayout::ViewAdded(host, view); 142 ::BrowserViewLayout::ViewAdded(host, view);
143 switch (view->id()) { 143 switch (view->id()) {
144 case VIEW_ID_STATUS_AREA: 144 case VIEW_ID_STATUS_AREA:
145 status_area_ = static_cast<chromeos::StatusAreaView*>(view); 145 status_area_ = static_cast<chromeos::StatusAreaViewChromeos*>(view);
146 break; 146 break;
147 case VIEW_ID_LAYOUT_MODE_BUTTON: 147 case VIEW_ID_LAYOUT_MODE_BUTTON:
148 layout_mode_button_ = static_cast<chromeos::LayoutModeButton*>(view); 148 layout_mode_button_ = static_cast<chromeos::LayoutModeButton*>(view);
149 break; 149 break;
150 } 150 }
151 } 151 }
152 152
153 // In the normal and the compact navigation bar mode, ChromeOS 153 // In the normal and the compact navigation bar mode, ChromeOS
154 // lays out compact navigation buttons and status views in the title 154 // lays out compact navigation buttons and status views in the title
155 // area. See Layout 155 // area. See Layout
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 if (status_area_bounds_for_property_ != current_bounds) { 273 if (status_area_bounds_for_property_ != current_bounds) {
274 status_area_bounds_for_property_ = current_bounds; 274 status_area_bounds_for_property_ = current_bounds;
275 #if defined(TOOLKIT_USES_GTK) 275 #if defined(TOOLKIT_USES_GTK)
276 WmIpc::instance()->SetStatusBoundsProperty( 276 WmIpc::instance()->SetStatusBoundsProperty(
277 GTK_WIDGET(chromeos_browser_view()->frame()->GetNativeWindow()), 277 GTK_WIDGET(chromeos_browser_view()->frame()->GetNativeWindow()),
278 status_area_bounds_for_property_); 278 status_area_bounds_for_property_);
279 #endif 279 #endif
280 } 280 }
281 } 281 }
282 282
283 chromeos::StatusAreaView* status_area_; 283 chromeos::StatusAreaViewChromeos* status_area_;
284 chromeos::LayoutModeButton* layout_mode_button_; 284 chromeos::LayoutModeButton* layout_mode_button_;
285 285
286 // Most-recently-set bounds for the _CHROME_STATUS_BOUNDS property. 286 // Most-recently-set bounds for the _CHROME_STATUS_BOUNDS property.
287 // Empty if |status_area_| isn't visible. Tracked here so we don't update the 287 // Empty if |status_area_| isn't visible. Tracked here so we don't update the
288 // property needlessly on no-op relayouts. 288 // property needlessly on no-op relayouts.
289 gfx::Rect status_area_bounds_for_property_; 289 gfx::Rect status_area_bounds_for_property_;
290 290
291 DISALLOW_COPY_AND_ASSIGN(BrowserViewLayout); 291 DISALLOW_COPY_AND_ASSIGN(BrowserViewLayout);
292 }; 292 };
293 293
(...skipping 23 matching lines...) Expand all
317 if (toolbar()) 317 if (toolbar())
318 toolbar()->RemoveMenuListener(this); 318 toolbar()->RemoveMenuListener(this);
319 MessageLoopForUI::current()->RemoveObserver(this); 319 MessageLoopForUI::current()->RemoveObserver(this);
320 BrowserList::RemoveObserver(this); 320 BrowserList::RemoveObserver(this);
321 } 321 }
322 322
323 // BrowserView, ::BrowserView overrides: 323 // BrowserView, ::BrowserView overrides:
324 324
325 void BrowserView::Init() { 325 void BrowserView::Init() {
326 ::BrowserView::Init(); 326 ::BrowserView::Init();
327 status_area_ = new StatusAreaView(this); 327 status_area_ = new StatusAreaViewChromeos();
328 status_area_->Init(this, StatusAreaViewChromeos::BROWSER_MODE);
328 status_area_->set_id(VIEW_ID_STATUS_AREA); 329 status_area_->set_id(VIEW_ID_STATUS_AREA);
329 AddChildView(status_area_); 330 AddChildView(status_area_);
330 status_area_->Init();
331 331
332 layout_mode_button_ = new LayoutModeButton(); 332 layout_mode_button_ = new LayoutModeButton();
333 layout_mode_button_->set_id(VIEW_ID_LAYOUT_MODE_BUTTON); 333 layout_mode_button_->set_id(VIEW_ID_LAYOUT_MODE_BUTTON);
334 AddChildView(layout_mode_button_); 334 AddChildView(layout_mode_button_);
335 layout_mode_button_->Init(); 335 layout_mode_button_->Init();
336 336
337 frame()->non_client_view()->set_context_menu_controller(this); 337 frame()->non_client_view()->set_context_menu_controller(this);
338 338
339 // Listen to wrench menu opens. 339 // Listen to wrench menu opens.
340 if (toolbar()) 340 if (toolbar())
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 Layout(); 489 Layout();
490 } 490 }
491 491
492 void BrowserView::OnBrowserRemoved(const Browser* browser) { 492 void BrowserView::OnBrowserRemoved(const Browser* browser) {
493 const bool was_showing = should_show_layout_mode_button_; 493 const bool was_showing = should_show_layout_mode_button_;
494 UpdateLayoutModeButtonVisibility(); 494 UpdateLayoutModeButtonVisibility();
495 if (should_show_layout_mode_button_ != was_showing) 495 if (should_show_layout_mode_button_ != was_showing)
496 Layout(); 496 Layout();
497 } 497 }
498 498
499 // BrowserView, StatusAreaHost implementation. 499 // StatusAreaButton::Delegate overrides.
500 500
501 Profile* BrowserView::GetProfile() const { 501 bool BrowserView::ShouldExecuteStatusAreaCommand(
502 return browser()->profile(); 502 const views::View* button_view, int command_id) const {
503 }
504
505 gfx::NativeWindow BrowserView::GetNativeWindow() const {
506 return GetWidget()->GetNativeWindow();
507 }
508
509 bool BrowserView::ShouldOpenButtonOptions(
510 const views::View* button_view) const {
511 return true; 503 return true;
512 } 504 }
513 505
514 void BrowserView::ExecuteBrowserCommand(int id) const { 506 void BrowserView::ExecuteStatusAreaCommand(
515 browser()->ExecuteCommand(id); 507 const views::View* button_view, int command_id) {
516 } 508 switch (command_id) {
517 509 case StatusAreaViewChromeos::SHOW_NETWORK_OPTIONS:
518 void BrowserView::OpenButtonOptions(const views::View* button_view) { 510 browser()->OpenInternetOptionsDialog();
519 if (button_view == status_area_->network_view()) { 511 break;
520 browser()->OpenInternetOptionsDialog(); 512 case StatusAreaViewChromeos::SHOW_LANGUAGE_OPTIONS:
521 } else if (button_view == status_area_->input_method_view()) { 513 browser()->OpenLanguageOptionsDialog();
522 browser()->OpenLanguageOptionsDialog(); 514 break;
523 } else { 515 case StatusAreaViewChromeos::SHOW_SYSTEM_OPTIONS:
524 browser()->OpenSystemOptionsDialog(); 516 browser()->OpenLanguageOptionsDialog();
517 break;
518 default:
519 NOTREACHED();
525 } 520 }
526 } 521 }
527 522
528 StatusAreaHost::ScreenMode BrowserView::GetScreenMode() const { 523 gfx::Font BrowserView::GetStatusAreaFont(const gfx::Font& font) const {
529 return kBrowserMode; 524 return font.DeriveFont(0, gfx::Font::BOLD);
530 } 525 }
531 526
532 StatusAreaHost::TextStyle BrowserView::GetTextStyle() const { 527 StatusAreaButton::TextStyle BrowserView::GetStatusAreaTextStyle() const {
533 ThemeService* theme_service = 528 ThemeService* theme_service =
534 ThemeServiceFactory::GetForProfile(GetProfile()); 529 ThemeServiceFactory::GetForProfile(browser()->profile());
535 530
536 if (!theme_service->UsingDefaultTheme()) 531 if (!theme_service->UsingDefaultTheme())
537 return StatusAreaHost::kWhiteHaloed; 532 return StatusAreaButton::WHITE_HALOED;
538 533
539 return IsOffTheRecord() ? 534 return IsOffTheRecord() ?
540 StatusAreaHost::kWhitePlain : StatusAreaHost::kGrayEmbossed; 535 StatusAreaButton::WHITE_PLAIN : StatusAreaButton::GRAY_EMBOSSED;
541 } 536 }
542 537
543 void BrowserView::ButtonVisibilityChanged(views::View* button_view) { 538 void BrowserView::ButtonVisibilityChanged(views::View* button_view) {
544 status_area_->ButtonVisibilityChanged(button_view); 539 status_area_->UpdateButtonVisibility();
545 } 540 }
546 541
547 // BrowserView, MessageLoopForUI::Observer implementation. 542 // BrowserView, MessageLoopForUI::Observer implementation.
543
548 #if defined(TOUCH_UI) || defined(USE_AURA) 544 #if defined(TOUCH_UI) || defined(USE_AURA)
549 base::EventStatus BrowserView::WillProcessEvent( 545 base::EventStatus BrowserView::WillProcessEvent(
550 const base::NativeEvent& event) OVERRIDE { 546 const base::NativeEvent& event) OVERRIDE {
551 return base::EVENT_CONTINUE; 547 return base::EVENT_CONTINUE;
552 } 548 }
553 549
554 void BrowserView::DidProcessEvent(const base::NativeEvent& event) OVERRIDE { 550 void BrowserView::DidProcessEvent(const base::NativeEvent& event) OVERRIDE {
555 // TODO(oshima): On Aura, WM should notify chrome someshow. 551 // TODO(oshima): On Aura, WM should notify chrome someshow.
556 } 552 }
557 #else 553 #else
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { 629 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) {
634 // Create a browser view for chromeos. 630 // Create a browser view for chromeos.
635 BrowserView* view; 631 BrowserView* view;
636 if (browser->is_type_popup() || browser->is_type_panel()) 632 if (browser->is_type_popup() || browser->is_type_panel())
637 view = new chromeos::PanelBrowserView(browser); 633 view = new chromeos::PanelBrowserView(browser);
638 else 634 else
639 view = new chromeos::BrowserView(browser); 635 view = new chromeos::BrowserView(browser);
640 (new BrowserFrame(view))->InitBrowserFrame(); 636 (new BrowserFrame(view))->InitBrowserFrame();
641 return view; 637 return view;
642 } 638 }
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/frame/browser_view.h ('k') | chrome/browser/chromeos/login/background_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698