Index: chrome/browser/ui/views/toolbar/browser_actions_container.cc |
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.cc b/chrome/browser/ui/views/toolbar/browser_actions_container.cc |
index 51b73105131cc652a7ae090a051b251fd62f99aa..59be61273fd87cd07c939b40a0f88aa81fcfe27b 100644 |
--- a/chrome/browser/ui/views/toolbar/browser_actions_container.cc |
+++ b/chrome/browser/ui/views/toolbar/browser_actions_container.cc |
@@ -40,6 +40,7 @@ |
#include "ui/gfx/animation/slide_animation.h" |
#include "ui/gfx/canvas.h" |
#include "ui/gfx/geometry/rect.h" |
+#include "ui/views/controls/button/label_button_border.h" |
#include "ui/views/controls/resize_area.h" |
#include "ui/views/metrics.h" |
#include "ui/views/painter.h" |
@@ -56,6 +57,35 @@ const int kItemSpacing = ToolbarView::kStandardSpacing; |
// Horizontal spacing before the chevron (if visible). |
const int kChevronSpacing = kItemSpacing - 2; |
+// A version of MenuButton with almost empty insets to fit properly on the |
msw
2014/06/09 17:18:40
q: does this look okay when the border is drawn (g
Elliot Glaysher
2014/06/11 00:27:28
Yes. (It doesn't draw correctly without clearing t
|
+// toolbar. |
+class ChevronMenuButton : public views::MenuButton { |
+ public: |
+ ChevronMenuButton(views::ButtonListener* listener, |
+ const base::string16& text, |
+ views::MenuButtonListener* menu_button_listener, |
+ bool show_menu_marker) |
+ : views::MenuButton(listener, |
+ text, |
+ menu_button_listener, |
+ show_menu_marker) { |
+ } |
+ |
+ virtual ~ChevronMenuButton() {} |
+ |
+ virtual scoped_ptr<views::LabelButtonBorder> CreateDefaultBorder() const |
+ OVERRIDE { |
+ // The chevron resource was designed to not have any insets. |
+ scoped_ptr<views::LabelButtonBorder> border = |
+ views::MenuButton::CreateDefaultBorder(); |
+ border->set_insets(gfx::Insets()); |
+ return border.Pass(); |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(ChevronMenuButton); |
+}; |
+ |
} // namespace |
// static |
@@ -97,8 +127,7 @@ BrowserActionsContainer::BrowserActionsContainer(Browser* browser, |
resize_area_ = new views::ResizeArea(this); |
AddChildView(resize_area_); |
- chevron_ = new views::MenuButton(NULL, base::string16(), this, false); |
- chevron_->SetBorder(views::Border::NullBorder()); |
+ chevron_ = new ChevronMenuButton(NULL, base::string16(), this, false); |
chevron_->EnableCanvasFlippingForRTLUI(true); |
chevron_->SetAccessibleName( |
l10n_util::GetStringUTF16(IDS_ACCNAME_EXTENSIONS_CHEVRON)); |
@@ -795,11 +824,8 @@ void BrowserActionsContainer::HighlightModeChanged(bool is_highlighting) { |
void BrowserActionsContainer::LoadImages() { |
ui::ThemeProvider* tp = GetThemeProvider(); |
- chevron_->SetIcon(*tp->GetImageSkiaNamed(IDR_BROWSER_ACTIONS_OVERFLOW)); |
- chevron_->SetHoverIcon(*tp->GetImageSkiaNamed( |
msw
2014/06/09 17:18:40
nit: why are the hover and pressed state images no
Elliot Glaysher
2014/06/11 00:27:28
Because I deleted the "chevron_->SetBorder(views::
|
- IDR_BROWSER_ACTIONS_OVERFLOW_H)); |
- chevron_->SetPushedIcon(*tp->GetImageSkiaNamed( |
- IDR_BROWSER_ACTIONS_OVERFLOW_P)); |
+ chevron_->SetImage(views::Button::STATE_NORMAL, |
+ *tp->GetImageSkiaNamed(IDR_BROWSER_ACTIONS_OVERFLOW)); |
const int kImages[] = IMAGE_GRID(IDR_DEVELOPER_MODE_HIGHLIGHT); |
highlight_painter_.reset(views::Painter::CreateImageGridPainter(kImages)); |