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

Side by Side Diff: chrome/browser/ui/views/toolbar/toolbar_view.cc

Issue 247193002: Remove touch layout (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/toolbar/toolbar_view.h" 5 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/i18n/number_formatting.h" 9 #include "base/i18n/number_formatting.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 #include "content/public/browser/notification_service.h" 53 #include "content/public/browser/notification_service.h"
54 #include "content/public/browser/render_view_host.h" 54 #include "content/public/browser/render_view_host.h"
55 #include "content/public/browser/user_metrics.h" 55 #include "content/public/browser/user_metrics.h"
56 #include "content/public/browser/web_contents.h" 56 #include "content/public/browser/web_contents.h"
57 #include "content/public/browser/web_contents_view.h" 57 #include "content/public/browser/web_contents_view.h"
58 #include "grit/chromium_strings.h" 58 #include "grit/chromium_strings.h"
59 #include "grit/generated_resources.h" 59 #include "grit/generated_resources.h"
60 #include "grit/theme_resources.h" 60 #include "grit/theme_resources.h"
61 #include "ui/accessibility/ax_view_state.h" 61 #include "ui/accessibility/ax_view_state.h"
62 #include "ui/base/l10n/l10n_util.h" 62 #include "ui/base/l10n/l10n_util.h"
63 #include "ui/base/layout.h"
64 #include "ui/base/theme_provider.h" 63 #include "ui/base/theme_provider.h"
65 #include "ui/base/window_open_disposition.h" 64 #include "ui/base/window_open_disposition.h"
66 #include "ui/gfx/canvas.h" 65 #include "ui/gfx/canvas.h"
67 #include "ui/gfx/image/canvas_image_source.h" 66 #include "ui/gfx/image/canvas_image_source.h"
68 #include "ui/views/controls/menu/menu_listener.h" 67 #include "ui/views/controls/menu/menu_listener.h"
69 #include "ui/views/focus/view_storage.h" 68 #include "ui/views/focus/view_storage.h"
70 #include "ui/views/widget/tooltip_manager.h" 69 #include "ui/views/widget/tooltip_manager.h"
71 #include "ui/views/widget/widget.h" 70 #include "ui/views/widget/widget.h"
72 #include "ui/views/window/non_client_view.h" 71 #include "ui/views/window/non_client_view.h"
73 72
(...skipping 28 matching lines...) Expand all
102 // our spacing to make it match. 101 // our spacing to make it match.
103 const int kLeftEdgeSpacing = 3; 102 const int kLeftEdgeSpacing = 3;
104 const int kRightEdgeSpacing = 2; 103 const int kRightEdgeSpacing = 2;
105 104
106 // Ash doesn't use a rounded content area and its top edge has an extra shadow. 105 // Ash doesn't use a rounded content area and its top edge has an extra shadow.
107 const int kContentShadowHeightAsh = 2; 106 const int kContentShadowHeightAsh = 2;
108 107
109 // Non-ash uses a rounded content area with no shadow in the assets. 108 // Non-ash uses a rounded content area with no shadow in the assets.
110 const int kContentShadowHeight = 0; 109 const int kContentShadowHeight = 0;
111 110
112 int GetButtonSpacing() {
113 return (ui::GetDisplayLayout() == ui::LAYOUT_TOUCH) ?
114 ToolbarView::kStandardSpacing : 0;
115 }
116
117 bool IsStreamlinedHostedAppsEnabled() { 111 bool IsStreamlinedHostedAppsEnabled() {
118 return CommandLine::ForCurrentProcess()->HasSwitch( 112 return CommandLine::ForCurrentProcess()->HasSwitch(
119 switches::kEnableStreamlinedHostedApps); 113 switches::kEnableStreamlinedHostedApps);
120 } 114 }
121 115
122 #if !defined(OS_CHROMEOS) 116 #if !defined(OS_CHROMEOS)
123 bool HasAshShell() { 117 bool HasAshShell() {
124 #if defined(USE_ASH) 118 #if defined(USE_ASH)
125 return ash::Shell::HasInstance(); 119 return ash::Shell::HasInstance();
126 #else 120 #else
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 DCHECK_EQ(VIEW_ID_APP_MENU, source->id()); 404 DCHECK_EQ(VIEW_ID_APP_MENU, source->id());
411 405
412 bool use_new_menu = false; 406 bool use_new_menu = false;
413 bool supports_new_separators = false; 407 bool supports_new_separators = false;
414 // TODO: remove this. 408 // TODO: remove this.
415 #if defined(USE_AURA) && !(defined(OS_LINUX) && !defined(OS_CHROMEOS)) 409 #if defined(USE_AURA) && !(defined(OS_LINUX) && !defined(OS_CHROMEOS))
416 supports_new_separators = 410 supports_new_separators =
417 GetNativeTheme() == ui::NativeThemeAura::instance(); 411 GetNativeTheme() == ui::NativeThemeAura::instance();
418 use_new_menu = supports_new_separators; 412 use_new_menu = supports_new_separators;
419 #endif 413 #endif
420 #if defined(OS_WIN)
421 use_new_menu = use_new_menu || ui::GetDisplayLayout() == ui::LAYOUT_TOUCH;
422 #endif
423 414
424 wrench_menu_.reset(new WrenchMenu(browser_, use_new_menu, 415 wrench_menu_.reset(new WrenchMenu(browser_, use_new_menu,
425 supports_new_separators)); 416 supports_new_separators));
426 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_, use_new_menu)); 417 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_, use_new_menu));
427 wrench_menu_->Init(wrench_menu_model_.get()); 418 wrench_menu_->Init(wrench_menu_model_.get());
428 419
429 FOR_EACH_OBSERVER(views::MenuListener, menu_listeners_, OnMenuOpened()); 420 FOR_EACH_OBSERVER(views::MenuListener, menu_listeners_, OnMenuOpened());
430 421
431 wrench_menu_->RunMenu(app_menu_); 422 wrench_menu_->RunMenu(app_menu_);
432 } 423 }
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 ui::Accelerator* accelerator) { 531 ui::Accelerator* accelerator) {
541 return GetWidget()->GetAccelerator(command_id, accelerator); 532 return GetWidget()->GetAccelerator(command_id, accelerator);
542 } 533 }
543 534
544 //////////////////////////////////////////////////////////////////////////////// 535 ////////////////////////////////////////////////////////////////////////////////
545 // ToolbarView, views::View overrides: 536 // ToolbarView, views::View overrides:
546 537
547 gfx::Size ToolbarView::GetPreferredSize() { 538 gfx::Size ToolbarView::GetPreferredSize() {
548 gfx::Size size(location_bar_->GetPreferredSize()); 539 gfx::Size size(location_bar_->GetPreferredSize());
549 if (is_display_mode_normal()) { 540 if (is_display_mode_normal()) {
550 int button_spacing = GetButtonSpacing();
551 size.Enlarge( 541 size.Enlarge(
552 kLeftEdgeSpacing + back_->GetPreferredSize().width() + button_spacing + 542 kLeftEdgeSpacing + back_->GetPreferredSize().width() +
553 forward_->GetPreferredSize().width() + button_spacing + 543 forward_->GetPreferredSize().width() +
554 reload_->GetPreferredSize().width() + kStandardSpacing + 544 reload_->GetPreferredSize().width() + kStandardSpacing +
555 (show_home_button_.GetValue() ? 545 (show_home_button_.GetValue() ?
556 (home_->GetPreferredSize().width() + button_spacing) : 0) + 546 home_->GetPreferredSize().width() : 0) +
557 (origin_chip_view_->visible() ? 547 (origin_chip_view_->visible() ?
558 (origin_chip_view_->GetPreferredSize().width() + 548 (origin_chip_view_->GetPreferredSize().width() +
559 2 * kStandardSpacing) : 549 2 * kStandardSpacing) :
560 0) + 550 0) +
561 browser_actions_->GetPreferredSize().width() + 551 browser_actions_->GetPreferredSize().width() +
562 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing, 552 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing,
563 0); 553 0);
564 gfx::ImageSkia* normal_background = 554 gfx::ImageSkia* normal_background =
565 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER); 555 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER);
566 size.SetToMax( 556 size.SetToMax(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 // http://crbug.com/5540 593 // http://crbug.com/5540
604 bool maximized = browser_->window() && browser_->window()->IsMaximized(); 594 bool maximized = browser_->window() && browser_->window()->IsMaximized();
605 int back_width = back_->GetPreferredSize().width(); 595 int back_width = back_->GetPreferredSize().width();
606 if (maximized) { 596 if (maximized) {
607 back_->SetBounds(0, child_y, back_width + kLeftEdgeSpacing, child_height); 597 back_->SetBounds(0, child_y, back_width + kLeftEdgeSpacing, child_height);
608 back_->SetLeadingMargin(kLeftEdgeSpacing); 598 back_->SetLeadingMargin(kLeftEdgeSpacing);
609 } else { 599 } else {
610 back_->SetBounds(kLeftEdgeSpacing, child_y, back_width, child_height); 600 back_->SetBounds(kLeftEdgeSpacing, child_y, back_width, child_height);
611 back_->SetLeadingMargin(0); 601 back_->SetLeadingMargin(0);
612 } 602 }
613 int button_spacing = GetButtonSpacing(); 603 int next_element_x = back_->bounds().right();
614 int next_element_x = back_->bounds().right() + button_spacing;
615 604
616 forward_->SetBounds(next_element_x, child_y, 605 forward_->SetBounds(next_element_x, child_y,
617 forward_->GetPreferredSize().width(), child_height); 606 forward_->GetPreferredSize().width(), child_height);
618 next_element_x = forward_->bounds().right() + button_spacing; 607 next_element_x = forward_->bounds().right();
619 608
620 reload_->SetBounds(next_element_x, child_y, 609 reload_->SetBounds(next_element_x, child_y,
621 reload_->GetPreferredSize().width(), child_height); 610 reload_->GetPreferredSize().width(), child_height);
622 next_element_x = reload_->bounds().right(); 611 next_element_x = reload_->bounds().right();
623 612
624 if (show_home_button_.GetValue() || 613 if (show_home_button_.GetValue() ||
625 (browser_->is_app() && IsStreamlinedHostedAppsEnabled())) { 614 (browser_->is_app() && IsStreamlinedHostedAppsEnabled())) {
626 home_->SetVisible(true); 615 home_->SetVisible(true);
627 home_->SetBounds(next_element_x + button_spacing, child_y, 616 home_->SetBounds(next_element_x, child_y,
628 home_->GetPreferredSize().width(), child_height); 617 home_->GetPreferredSize().width(), child_height);
629 } else { 618 } else {
630 home_->SetVisible(false); 619 home_->SetVisible(false);
631 home_->SetBounds(next_element_x, child_y, 0, child_height); 620 home_->SetBounds(next_element_x, child_y, 0, child_height);
632 } 621 }
633 next_element_x = home_->bounds().right() + kStandardSpacing; 622 next_element_x = home_->bounds().right() + kStandardSpacing;
634 623
635 int browser_actions_width = browser_actions_->GetPreferredSize().width(); 624 int browser_actions_width = browser_actions_->GetPreferredSize().width();
636 int app_menu_width = app_menu_->GetPreferredSize().width(); 625 int app_menu_width = app_menu_->GetPreferredSize().width();
637 int available_width = std::max(0, width() - kRightEdgeSpacing - 626 int available_width = std::max(0, width() - kRightEdgeSpacing -
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 874
886 void ToolbarView::OnShowHomeButtonChanged() { 875 void ToolbarView::OnShowHomeButtonChanged() {
887 Layout(); 876 Layout();
888 SchedulePaint(); 877 SchedulePaint();
889 } 878 }
890 879
891 int ToolbarView::content_shadow_height() const { 880 int ToolbarView::content_shadow_height() const {
892 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ? 881 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ?
893 kContentShadowHeightAsh : kContentShadowHeight; 882 kContentShadowHeightAsh : kContentShadowHeight;
894 } 883 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698