Chromium Code Reviews| 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 d50c260a369f52bfb91abed8ded014ac57a7cabc..c0e0fad9446fb5d120e86b37767b664cd3b1bc15 100644 |
| --- a/chrome/browser/ui/views/profiles/new_avatar_button.cc |
| +++ b/chrome/browser/ui/views/profiles/new_avatar_button.cc |
| @@ -18,6 +18,7 @@ |
| #include "ui/gfx/canvas.h" |
| #include "ui/gfx/color_utils.h" |
| #include "ui/gfx/font_list.h" |
| +#include "ui/gfx/image/image_skia_operations.h" |
| #include "ui/gfx/text_elider.h" |
| #include "ui/views/border.h" |
| #include "ui/views/painter.h" |
| @@ -26,14 +27,19 @@ namespace { |
| // Text padding within the button border. |
| const int kInset = 10; |
| +const int kBottomInset = 3; |
|
msw
2014/05/30 18:24:13
My biggest concern for this CL is that it's regres
noms (inactive)
2014/06/09 20:34:19
Done.
|
| +// Target size of the warning icon. |
| +const int kAuthErrorIconWidth = 13; |
| +const int kAuthErrorIconHeight = 11; |
| scoped_ptr<views::Border> CreateBorder(const int normal_image_set[], |
| const int hot_image_set[], |
| - const int pushed_image_set[]) { |
| + const int pushed_image_set[], |
| + bool is_themed_window) { |
| scoped_ptr<views::TextButtonDefaultBorder> border( |
| new views::TextButtonDefaultBorder()); |
| - |
| - border->SetInsets(gfx::Insets(kInset, kInset, kInset, kInset)); |
| + int bottom_inset = is_themed_window ? kBottomInset : 0; |
| + border->SetInsets(gfx::Insets(0, kInset, bottom_inset, kInset)); |
| border->set_normal_painter( |
| views::Painter::CreateImageGridPainter(normal_image_set)); |
| border->set_hot_painter( |
| @@ -80,7 +86,8 @@ NewAvatarButton::NewAvatarButton( |
| const int kHotImageSet[] = IMAGE_GRID(IDR_AVATAR_THEMED_BUTTON_HOVER); |
| const int kPushedImageSet[] = IMAGE_GRID(IDR_AVATAR_THEMED_BUTTON_PRESSED); |
| - SetBorder(CreateBorder(kNormalImageSet, kHotImageSet, kPushedImageSet)); |
| + SetBorder( |
| + CreateBorder(kNormalImageSet, kHotImageSet, kPushedImageSet, true)); |
| set_menu_marker( |
| rb->GetImageNamed(IDR_AVATAR_THEMED_BUTTON_DROPARROW).ToImageSkia()); |
| } else if (is_win8) { |
| @@ -88,7 +95,8 @@ NewAvatarButton::NewAvatarButton( |
| const int kHotImageSet[] = IMAGE_GRID(IDR_AVATAR_METRO_BUTTON_HOVER); |
| const int kPushedImageSet[] = IMAGE_GRID(IDR_AVATAR_METRO_BUTTON_PRESSED); |
| - SetBorder(CreateBorder(kNormalImageSet, kHotImageSet, kPushedImageSet)); |
| + SetBorder( |
| + CreateBorder(kNormalImageSet, kHotImageSet, kPushedImageSet, false)); |
| set_menu_marker( |
| rb->GetImageNamed(IDR_AVATAR_METRO_BUTTON_DROPARROW).ToImageSkia()); |
| } else { |
| @@ -96,7 +104,8 @@ NewAvatarButton::NewAvatarButton( |
| const int kHotImageSet[] = IMAGE_GRID(IDR_AVATAR_GLASS_BUTTON_HOVER); |
| const int kPushedImageSet[] = IMAGE_GRID(IDR_AVATAR_GLASS_BUTTON_PRESSED); |
| - SetBorder(CreateBorder(kNormalImageSet, kHotImageSet, kPushedImageSet)); |
| + SetBorder( |
| + CreateBorder(kNormalImageSet, kHotImageSet, kPushedImageSet, false)); |
| set_menu_marker( |
| rb->GetImageNamed(IDR_AVATAR_GLASS_BUTTON_DROPARROW).ToImageSkia()); |
| } |
| @@ -128,7 +137,7 @@ NewAvatarButton::~NewAvatarButton() { |
| 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)); |
| @@ -165,7 +174,10 @@ void NewAvatarButton::OnErrorChanged() { |
| profiles::GetSigninErrorController(browser_->profile()); |
| if (error && error->HasError()) { |
| ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
| - icon = *rb->GetImageNamed(IDR_WARNING).ToImageSkia(); |
| + icon = gfx::ImageSkiaOperations::CreateResizedImage( |
| + *rb->GetImageNamed(IDR_ICON_PROFILES_ACCOUNT_AUTH_ERROR).ToImageSkia(), |
| + skia::ImageOperations::RESIZE_BEST, |
| + gfx::Size(kAuthErrorIconWidth, kAuthErrorIconHeight)); |
| } |
| SetIcon(icon); |