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

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

Issue 92073003: [SiteChip] Draw site chip icon and site title. Drag support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Unused var Created 7 years 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 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 LoadImages(); 237 LoadImages();
238 238
239 // Add any necessary badges to the menu item based on the system state. 239 // Add any necessary badges to the menu item based on the system state.
240 // Do this after |app_menu_| has been added as a bubble may be shown that 240 // Do this after |app_menu_| has been added as a bubble may be shown that
241 // needs the widget (widget found by way of app_menu_->GetWidget()). 241 // needs the widget (widget found by way of app_menu_->GetWidget()).
242 UpdateAppMenuState(); 242 UpdateAppMenuState();
243 243
244 location_bar_->Init(); 244 location_bar_->Init();
245 245
246 site_chip_view_->Init(); 246 site_chip_view_->Init();
247 if (site_chip_view_->ShouldShow())
248 location_bar_->set_site_chip_view(site_chip_view_);
249
247 show_home_button_.Init(prefs::kShowHomeButton, 250 show_home_button_.Init(prefs::kShowHomeButton,
248 browser_->profile()->GetPrefs(), 251 browser_->profile()->GetPrefs(),
249 base::Bind(&ToolbarView::OnShowHomeButtonChanged, 252 base::Bind(&ToolbarView::OnShowHomeButtonChanged,
250 base::Unretained(this))); 253 base::Unretained(this)));
251 254
252 browser_actions_->Init(); 255 browser_actions_->Init();
253 256
254 // Accessibility specific tooltip text. 257 // Accessibility specific tooltip text.
255 if (content::BrowserAccessibilityState::GetInstance()-> 258 if (content::BrowserAccessibilityState::GetInstance()->
256 IsAccessibleBrowser()) { 259 IsAccessibleBrowser()) {
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 if (is_display_mode_normal()) { 493 if (is_display_mode_normal()) {
491 int button_spacing = GetButtonSpacing(); 494 int button_spacing = GetButtonSpacing();
492 size.Enlarge( 495 size.Enlarge(
493 kLeftEdgeSpacing + back_->GetPreferredSize().width() + button_spacing + 496 kLeftEdgeSpacing + back_->GetPreferredSize().width() + button_spacing +
494 forward_->GetPreferredSize().width() + button_spacing + 497 forward_->GetPreferredSize().width() + button_spacing +
495 reload_->GetPreferredSize().width() + kStandardSpacing + 498 reload_->GetPreferredSize().width() + kStandardSpacing +
496 (show_home_button_.GetValue() ? 499 (show_home_button_.GetValue() ?
497 (home_->GetPreferredSize().width() + button_spacing) : 0) + 500 (home_->GetPreferredSize().width() + button_spacing) : 0) +
498 (site_chip_view_->ShouldShow() ? 501 (site_chip_view_->ShouldShow() ?
499 (site_chip_view_->GetPreferredSize().width() + 502 (site_chip_view_->GetPreferredSize().width() +
500 2 * kStandardSpacing + 2 * button_spacing) : 503 2 * kStandardSpacing) :
501 0) + 504 0) +
502 browser_actions_->GetPreferredSize().width() + 505 browser_actions_->GetPreferredSize().width() +
503 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing, 506 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing,
504 0); 507 0);
505 gfx::ImageSkia* normal_background = 508 gfx::ImageSkia* normal_background =
506 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER); 509 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER);
507 size.SetToMax( 510 size.SetToMax(
508 gfx::Size(0, normal_background->height() - content_shadow_height())); 511 gfx::Size(0, normal_background->height() - content_shadow_height()));
509 } else { 512 } else {
510 const int kPopupBottomSpacingGlass = 1; 513 const int kPopupBottomSpacingGlass = 1;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 home_->SetVisible(true); 566 home_->SetVisible(true);
564 home_->SetBounds(reload_->x() + reload_->width() + button_spacing, 567 home_->SetBounds(reload_->x() + reload_->width() + button_spacing,
565 child_y, home_->GetPreferredSize().width(), child_height); 568 child_y, home_->GetPreferredSize().width(), child_height);
566 } else { 569 } else {
567 home_->SetVisible(false); 570 home_->SetVisible(false);
568 home_->SetBounds(reload_->x() + reload_->width(), child_y, 0, child_height); 571 home_->SetBounds(reload_->x() + reload_->width(), child_y, 0, child_height);
569 } 572 }
570 573
571 int browser_actions_width = browser_actions_->GetPreferredSize().width(); 574 int browser_actions_width = browser_actions_->GetPreferredSize().width();
572 575
573 // Note: spacing from location bar to site chip is 1 pixel less than
574 // kStandardSpacing given the edge thickness of the chip.
575 int site_chip_width =
576 (site_chip_view_->ShouldShow() ?
577 site_chip_view_->GetPreferredSize().width() +
578 kStandardSpacing : 0);
579 int app_menu_width = app_menu_->GetPreferredSize().width(); 576 int app_menu_width = app_menu_->GetPreferredSize().width();
580 int location_x = home_->x() + home_->width() + kStandardSpacing; 577 int location_x = home_->x() + home_->width() + kStandardSpacing;
581 int available_width = std::max(0, width() - kRightEdgeSpacing - 578 int available_width = std::max(0, width() - kRightEdgeSpacing -
582 app_menu_width - browser_actions_width - location_x); 579 app_menu_width - browser_actions_width - location_x);
583 580
584 // Cap site chip width at 1/2 the size available to the location bar. 581 // Cap site chip width at 1/2 the size available to the location bar.
585 site_chip_width = std::min(site_chip_width, available_width / 2); 582 site_chip_view_->SetVisible(site_chip_view_->ShouldShow());
586 available_width -= site_chip_width; 583 int site_chip_width = site_chip_view_->GetPreferredSize().width();
584 site_chip_width = std::max(0, std::min(site_chip_width,
585 (available_width - kStandardSpacing) / 2));
586 if (site_chip_view_->visible())
587 available_width -= site_chip_width;
587 588
588 int location_height = location_bar_->GetPreferredSize().height(); 589 int location_height = location_bar_->GetPreferredSize().height();
589 int location_y = (height() - location_height + 1) / 2; 590 int location_y = (height() - location_height + 1) / 2;
590 location_bar_->SetBounds(location_x, location_y, std::max(available_width, 0), 591 location_bar_->SetBounds(location_x, location_y, std::max(available_width, 0),
591 location_height); 592 location_height);
593 int browser_actions_x = location_bar_->bounds().right();
592 594
593 int browser_actions_x = location_bar_->x() + location_bar_->width(); 595 if (site_chip_view_->visible()) {
594
595 site_chip_view_->SetVisible(site_chip_view_->ShouldShow());
596 if (site_chip_view_->ShouldShow()) {
597 site_chip_view_->SetBounds(browser_actions_x + kStandardSpacing, 596 site_chip_view_->SetBounds(browser_actions_x + kStandardSpacing,
598 child_y, 597 child_y,
599 site_chip_view_->GetPreferredSize().width(), 598 site_chip_width,
600 child_height); 599 child_height);
601 browser_actions_x += 600 browser_actions_x = site_chip_view_->bounds().right();
602 site_chip_view_->GetPreferredSize().width() + kStandardSpacing;
603 } 601 }
604 602
605 browser_actions_->SetBounds(browser_actions_x, 0, 603 browser_actions_->SetBounds(browser_actions_x, 0,
606 browser_actions_width, height()); 604 browser_actions_width, height());
607 605
608 // The browser actions need to do a layout explicitly, because when an 606 // The browser actions need to do a layout explicitly, because when an
609 // extension is loaded/unloaded/changed, BrowserActionContainer removes and 607 // extension is loaded/unloaded/changed, BrowserActionContainer removes and
610 // re-adds everything, regardless of whether it has a page action. For a 608 // re-adds everything, regardless of whether it has a page action. For a
611 // page action, browser action bounds do not change, as a result of which 609 // page action, browser action bounds do not change, as a result of which
612 // SetBounds does not do a layout at all. 610 // SetBounds does not do a layout at all.
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 838
841 void ToolbarView::OnShowHomeButtonChanged() { 839 void ToolbarView::OnShowHomeButtonChanged() {
842 Layout(); 840 Layout();
843 SchedulePaint(); 841 SchedulePaint();
844 } 842 }
845 843
846 int ToolbarView::content_shadow_height() const { 844 int ToolbarView::content_shadow_height() const {
847 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ? 845 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ?
848 kContentShadowHeightAsh : kContentShadowHeight; 846 kContentShadowHeightAsh : kContentShadowHeight;
849 } 847 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698