Chromium Code Reviews| Index: chrome/browser/ui/views/location_bar/location_bar_view.cc |
| diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc |
| index 4e706add01f95e8234c1ade429b9ef996cc46e3a..53baca1aa3af371d0f95a03cbd56ed552bf40536 100644 |
| --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc |
| +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc |
| @@ -16,6 +16,7 @@ |
| #include "chrome/browser/chrome_to_mobile_service_factory.h" |
| #include "chrome/browser/command_updater.h" |
| #include "chrome/browser/defaults.h" |
| +#include "chrome/browser/extensions/extension_action_util.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/extensions/extension_system.h" |
| #include "chrome/browser/extensions/location_bar_controller.h" |
| @@ -113,6 +114,8 @@ const int kBorderCornerRadius = 2; |
| const int kDesktopItemPadding = 3; |
| const int kDesktopEdgeItemPadding = kDesktopItemPadding; |
| +const int kDesktopScriptBadgeItemPadding = 9; |
| +const int kDesktopScriptBadgeEdgeItemPadding = kDesktopScriptBadgeItemPadding; |
| const int kTouchItemPadding = 8; |
| const int kTouchEdgeItemPadding = kTouchItemPadding; |
| @@ -369,13 +372,17 @@ SkColor LocationBarView::GetColor(ToolbarModel::SecurityLevel security_level, |
| // static |
| int LocationBarView::GetItemPadding() { |
| return (ui::GetDisplayLayout() == ui::LAYOUT_TOUCH) ? |
| - kTouchItemPadding : kDesktopItemPadding; |
| + kTouchItemPadding : |
| + extensions::switch_utils::AreScriptBadgesEnabled() ? |
|
Peter Kasting
2012/09/07 22:29:33
Nit: Chrome frowns on nested ?:s (especially witho
Jeffrey Yasskin
2012/09/11 01:16:56
Done. I don't know what we want for touch, but I'd
|
| + kDesktopScriptBadgeItemPadding : kDesktopItemPadding; |
| } |
| // static |
| int LocationBarView::GetEdgeItemPadding() { |
| return (ui::GetDisplayLayout() == ui::LAYOUT_TOUCH) ? |
| - kTouchEdgeItemPadding : kDesktopEdgeItemPadding; |
| + kTouchEdgeItemPadding : |
| + extensions::switch_utils::AreScriptBadgesEnabled() ? |
| + kDesktopScriptBadgeEdgeItemPadding : kDesktopEdgeItemPadding; |
| } |
| // DropdownBarHostDelegate |
| @@ -911,6 +918,7 @@ void LocationBarView::OnPaint(gfx::Canvas* canvas) { |
| radius, paint); |
| if (action_box_button_view_) |
| PaintActionBoxBackground(canvas, bounds); |
| + PaintPageActionBackgrounds(canvas); |
| } else { |
| canvas->FillRect(bounds, color); |
| } |
| @@ -1215,6 +1223,31 @@ void LocationBarView::PaintActionBoxBackground(gfx::Canvas* canvas, |
| action_box_button_view_->GetBorderColor()); |
| } |
| +void LocationBarView::PaintPageActionBackgrounds(gfx::Canvas* canvas) { |
| + for (PageActionViews::const_iterator |
| + page_action_view = page_action_views_.begin(); |
| + page_action_view != page_action_views_.end(); |
| + ++page_action_view) { |
| + gfx::Rect bounds = (*page_action_view)->bounds(); |
| + int horizontal_padding = GetItemPadding() - |
| + (*page_action_view)->GetBuiltInHorizontalPadding(); |
| + // Make the bounding rectangle include the whole vertical range of the |
| + // location bar, and the mid-point pixels between adjacent page actions. |
| + // |
| + // For odd horizontal_paddings, "horizontal_padding + 1" includes the |
| + // mid-point between two page actions in the bounding rectangle. For even |
| + // paddings, the +1 is dropped, which is right since there is no pixel at |
| + // the mid-point. |
| + bounds.Inset(-(horizontal_padding + 1) / 2, 0); |
| + ToolbarModel::SecurityLevel security_level = model_->GetSecurityLevel(); |
| + extensions::PaintExtensionActionBackground( |
| + *(*page_action_view)->image_view()->page_action(), |
| + SessionID::IdForTab(GetTabContents()), |
| + canvas, bounds, |
| + GetColor(security_level, TEXT), GetColor(security_level, BACKGROUND)); |
| + } |
| +} |
| + |
| std::string LocationBarView::GetClassName() const { |
| return kViewClassName; |
| } |