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

Unified Diff: chrome/browser/ui/views/profiles/themed_avatar_button.cc

Issue 2851543002: Update avatar button to MD (part 1) (Closed)
Patch Set: More review changes Created 3 years, 8 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/profiles/themed_avatar_button.cc
diff --git a/chrome/browser/ui/views/profiles/themed_avatar_button.cc b/chrome/browser/ui/views/profiles/themed_avatar_button.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ef2094875454cc56a1918d62c0290b0c57e416c3
--- /dev/null
+++ b/chrome/browser/ui/views/profiles/themed_avatar_button.cc
@@ -0,0 +1,81 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/profiles/themed_avatar_button.h"
+
+#include "chrome/grit/theme_resources.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/views/controls/button/label_button_border.h"
+
+#if defined(OS_WIN)
+#include "base/win/windows_version.h"
+#endif
+
+const int kButtonHeight = 20;
+
+ThemedAvatarButton::ThemedAvatarButton(views::MenuButtonListener* listener,
+ AvatarButtonStyle button_style,
+ Profile* profile)
+ : AvatarButton(listener, profile) {
+ if (button_style == AvatarButtonStyle::THEMED) {
+ const int kNormalImageSet[] = IMAGE_GRID(IDR_AVATAR_THEMED_BUTTON_NORMAL);
+ const int kHoverImageSet[] = IMAGE_GRID(IDR_AVATAR_THEMED_BUTTON_HOVER);
+ const int kPressedImageSet[] = IMAGE_GRID(IDR_AVATAR_THEMED_BUTTON_PRESSED);
+ SetButtonAvatar(IDR_AVATAR_THEMED_BUTTON_AVATAR);
+ SetBorder(CreateBorder(kNormalImageSet, kHoverImageSet, kPressedImageSet));
+#if defined(OS_WIN)
+ } else if (base::win::GetVersion() < base::win::VERSION_WIN8) {
+ const int kNormalImageSet[] = IMAGE_GRID(IDR_AVATAR_GLASS_BUTTON_NORMAL);
+ const int kHoverImageSet[] = IMAGE_GRID(IDR_AVATAR_GLASS_BUTTON_HOVER);
+ const int kPressedImageSet[] = IMAGE_GRID(IDR_AVATAR_GLASS_BUTTON_PRESSED);
+ SetButtonAvatar(IDR_AVATAR_GLASS_BUTTON_AVATAR);
+ SetBorder(CreateBorder(kNormalImageSet, kHoverImageSet, kPressedImageSet));
+#endif
+ } else {
+ const int kNormalImageSet[] = IMAGE_GRID(IDR_AVATAR_NATIVE_BUTTON_NORMAL);
+ const int kHoverImageSet[] = IMAGE_GRID(IDR_AVATAR_NATIVE_BUTTON_HOVER);
+ const int kPressedImageSet[] = IMAGE_GRID(IDR_AVATAR_NATIVE_BUTTON_PRESSED);
+ SetButtonAvatar(IDR_AVATAR_NATIVE_BUTTON_AVATAR);
+ SetBorder(CreateBorder(kNormalImageSet, kHoverImageSet, kPressedImageSet));
+ }
+
+ Update();
+ SchedulePaint();
+}
+
+ThemedAvatarButton::~ThemedAvatarButton() {}
+
+gfx::Size ThemedAvatarButton::GetPreferredSize() const {
+ gfx::Size size = views::MenuButton::GetPreferredSize();
+ size.set_height(kButtonHeight);
+ return size;
+}
+
+std::unique_ptr<views::Border> ThemedAvatarButton::CreateBorder(
Evan Stade 2017/05/02 15:49:20 can this go back to being a file-local static?
emx 2017/05/03 17:10:59 Done.
+ const int normal_image_set[],
+ const int hot_image_set[],
+ const int pushed_image_set[]) const {
+ std::unique_ptr<views::LabelButtonAssetBorder> border(
+ new views::LabelButtonAssetBorder(views::Button::STYLE_TEXTBUTTON));
+
+ border->SetPainter(false, views::Button::STATE_NORMAL,
+ views::Painter::CreateImageGridPainter(normal_image_set));
+ border->SetPainter(false, views::Button::STATE_HOVERED,
+ views::Painter::CreateImageGridPainter(hot_image_set));
+ border->SetPainter(false, views::Button::STATE_PRESSED,
+ views::Painter::CreateImageGridPainter(pushed_image_set));
+
+ const int kLeftRightInset = 8;
+ const int kTopInset = 2;
+ const int kBottomInset = 4;
+ border->set_insets(
+ gfx::Insets(kTopInset, kLeftRightInset, kBottomInset, kLeftRightInset));
+
+ return std::move(border);
+}
+
+void ThemedAvatarButton::SetButtonAvatar(int avatar_idr) {
+ ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
+ set_generic_avatar(*rb->GetImageNamed(avatar_idr).ToImageSkia());
+}

Powered by Google App Engine
This is Rietveld 408576698