Index: chrome/browser/ui/views/profiles/new_avatar_button.cc |
diff --git a/chrome/browser/ui/views/profiles/new_avatar_button.cc b/chrome/browser/ui/views/profiles/new_avatar_button.cc |
index 173eb145ec1117af9d8b736d215b660cb38d9372..117f703edd5f3505f2c7f86bcfde089611349b8d 100644 |
--- a/chrome/browser/ui/views/profiles/new_avatar_button.cc |
+++ b/chrome/browser/ui/views/profiles/new_avatar_button.cc |
@@ -4,6 +4,7 @@ |
#include "chrome/browser/ui/views/profiles/new_avatar_button.h" |
+#include "base/strings/utf_string_conversions.h" |
#include "base/win/windows_version.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/profiles/profile_manager.h" |
@@ -18,29 +19,34 @@ |
#include "ui/gfx/canvas.h" |
#include "ui/gfx/color_utils.h" |
#include "ui/gfx/font_list.h" |
+#include "ui/gfx/text_constants.h" |
#include "ui/gfx/text_elider.h" |
#include "ui/views/border.h" |
+#include "ui/views/controls/button/label_button_border.h" |
#include "ui/views/painter.h" |
namespace { |
// Text padding within the button border. |
-const int kInset = 10; |
+const int kLeftRightInset = 7; |
+const int kTopBottomInset = 2; |
scoped_ptr<views::Border> CreateBorder(const int normal_image_set[], |
const int hot_image_set[], |
const int pushed_image_set[]) { |
- scoped_ptr<views::TextButtonDefaultBorder> border( |
- new views::TextButtonDefaultBorder()); |
+ scoped_ptr<views::LabelButtonBorder> border( |
+ new views::LabelButtonBorder(views::Button::STYLE_TEXTBUTTON)); |
- border->SetInsets(gfx::Insets(kInset, kInset, kInset, kInset)); |
- border->set_normal_painter( |
+ border->SetPainter(false, views::Button::STATE_NORMAL, |
views::Painter::CreateImageGridPainter(normal_image_set)); |
- border->set_hot_painter( |
+ border->SetPainter(false, views::Button::STATE_HOVERED, |
views::Painter::CreateImageGridPainter(hot_image_set)); |
- border->set_pushed_painter( |
+ border->SetPainter(false, views::Button::STATE_PRESSED, |
views::Painter::CreateImageGridPainter(pushed_image_set)); |
+ border->set_insets(gfx::Insets(kTopBottomInset, kLeftRightInset, |
+ kTopBottomInset, kLeftRightInset)); |
+ |
return border.PassAs<views::Border>(); |
} |
@@ -71,7 +77,11 @@ NewAvatarButton::NewAvatarButton( |
: MenuButton(listener, GetButtonText(browser->profile()), NULL, true), |
browser_(browser) { |
set_animate_on_state_change(false); |
- set_icon_placement(ICON_ON_RIGHT); |
+ SetTextColor(views::Button::STATE_NORMAL, SK_ColorWHITE); |
+ SetTextColor(views::Button::STATE_HOVERED, SK_ColorWHITE); |
+ SetTextColor(views::Button::STATE_PRESSED, SK_ColorWHITE); |
+ SetHaloColor(SK_ColorDKGRAY); |
+ SetHorizontalAlignment(gfx::ALIGN_RIGHT); |
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
@@ -130,22 +140,6 @@ NewAvatarButton::~NewAvatarButton() { |
error->RemoveObserver(this); |
} |
-void NewAvatarButton::OnPaintText(gfx::Canvas* canvas, PaintButtonMode mode) { |
- // Get text bounds, and then adjust for the top and RTL languages. |
- gfx::Rect rect = GetTextBounds(); |
- rect.Offset(0, -rect.y()); |
- if (rect.width() > 0) |
- rect.set_x(GetMirroredXForRect(rect)); |
- |
- canvas->DrawStringRectWithHalo( |
- text(), |
- gfx::FontList(), |
- SK_ColorWHITE, |
- SK_ColorDKGRAY, |
- rect, |
- gfx::Canvas::NO_SUBPIXEL_RENDERING); |
-} |
- |
void NewAvatarButton::OnProfileAdded(const base::FilePath& profile_path) { |
UpdateAvatarButtonAndRelayoutParent(); |
} |
@@ -173,14 +167,15 @@ void NewAvatarButton::OnErrorChanged() { |
icon = *rb->GetImageNamed(IDR_WARNING).ToImageSkia(); |
} |
- SetIcon(icon); |
+ SetImage(views::Button::STATE_NORMAL, icon); |
UpdateAvatarButtonAndRelayoutParent(); |
} |
void NewAvatarButton::UpdateAvatarButtonAndRelayoutParent() { |
// We want the button to resize if the new text is shorter. |
SetText(GetButtonText(browser_->profile())); |
- ClearMaxTextSize(); |
+ set_min_size(gfx::Size()); |
+ InvalidateLayout(); |
// Because the width of the button might have changed, the parent browser |
// frame needs to recalculate the button bounds and redraw it. |