OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/views/profiles/avatar_menu_bubble_view.h" | 5 #include "chrome/browser/ui/views/profiles/avatar_menu_bubble_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 // ProfileItemView ------------------------------------------------------------ | 213 // ProfileItemView ------------------------------------------------------------ |
214 | 214 |
215 // Control that shows information about a single profile. | 215 // Control that shows information about a single profile. |
216 class ProfileItemView : public views::CustomButton, | 216 class ProfileItemView : public views::CustomButton, |
217 public HighlightDelegate { | 217 public HighlightDelegate { |
218 public: | 218 public: |
219 ProfileItemView(const AvatarMenu::Item& item, | 219 ProfileItemView(const AvatarMenu::Item& item, |
220 AvatarMenuBubbleView* parent, | 220 AvatarMenuBubbleView* parent, |
221 AvatarMenu* menu); | 221 AvatarMenu* menu); |
222 | 222 |
223 virtual gfx::Size GetPreferredSize() OVERRIDE; | 223 virtual gfx::Size GetPreferredSize() const OVERRIDE; |
224 virtual void Layout() OVERRIDE; | 224 virtual void Layout() OVERRIDE; |
225 virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE; | 225 virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE; |
226 virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE; | 226 virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE; |
227 virtual void OnFocus() OVERRIDE; | 227 virtual void OnFocus() OVERRIDE; |
228 virtual void OnBlur() OVERRIDE; | 228 virtual void OnBlur() OVERRIDE; |
229 | 229 |
230 virtual void OnHighlightStateChanged() OVERRIDE; | 230 virtual void OnHighlightStateChanged() OVERRIDE; |
231 virtual void OnFocusStateChanged(bool has_focus) OVERRIDE; | 231 virtual void OnFocusStateChanged(bool has_focus) OVERRIDE; |
232 | 232 |
233 const AvatarMenu::Item& item() const { return item_; } | 233 const AvatarMenu::Item& item() const { return item_; } |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 // Add an edit profile link. | 290 // Add an edit profile link. |
291 edit_link_ = new EditProfileLink( | 291 edit_link_ = new EditProfileLink( |
292 l10n_util::GetStringUTF16(IDS_PROFILES_EDIT_PROFILE_LINK), this); | 292 l10n_util::GetStringUTF16(IDS_PROFILES_EDIT_PROFILE_LINK), this); |
293 edit_link_->set_listener(parent); | 293 edit_link_->set_listener(parent); |
294 edit_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 294 edit_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
295 AddChildView(edit_link_); | 295 AddChildView(edit_link_); |
296 | 296 |
297 OnHighlightStateChanged(); | 297 OnHighlightStateChanged(); |
298 } | 298 } |
299 | 299 |
300 gfx::Size ProfileItemView::GetPreferredSize() { | 300 gfx::Size ProfileItemView::GetPreferredSize() const { |
301 int text_width = std::max(name_label_->GetPreferredSize().width(), | 301 int text_width = std::max(name_label_->GetPreferredSize().width(), |
302 sync_state_label_->GetPreferredSize().width()); | 302 sync_state_label_->GetPreferredSize().width()); |
303 text_width = std::max(edit_link_->GetPreferredSize().width(), text_width); | 303 text_width = std::max(edit_link_->GetPreferredSize().width(), text_width); |
304 text_width = std::min(kMaxItemTextWidth, text_width); | 304 text_width = std::min(kMaxItemTextWidth, text_width); |
305 return gfx::Size(profiles::kAvatarIconWidth + kIconMarginX + text_width, | 305 return gfx::Size(profiles::kAvatarIconWidth + kIconMarginX + text_width, |
306 kItemHeight); | 306 kItemHeight); |
307 } | 307 } |
308 | 308 |
309 void ProfileItemView::Layout() { | 309 void ProfileItemView::Layout() { |
310 // Profile icon. | 310 // Profile icon. |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 avatar_menu_.reset(new AvatarMenu( | 528 avatar_menu_.reset(new AvatarMenu( |
529 &g_browser_process->profile_manager()->GetProfileInfoCache(), | 529 &g_browser_process->profile_manager()->GetProfileInfoCache(), |
530 this, | 530 this, |
531 browser_)); | 531 browser_)); |
532 avatar_menu_->RebuildMenu(); | 532 avatar_menu_->RebuildMenu(); |
533 } | 533 } |
534 | 534 |
535 AvatarMenuBubbleView::~AvatarMenuBubbleView() { | 535 AvatarMenuBubbleView::~AvatarMenuBubbleView() { |
536 } | 536 } |
537 | 537 |
538 gfx::Size AvatarMenuBubbleView::GetPreferredSize() { | 538 gfx::Size AvatarMenuBubbleView::GetPreferredSize() const { |
539 const int kBubbleViewMinWidth = 175; | 539 const int kBubbleViewMinWidth = 175; |
540 gfx::Size preferred_size(kBubbleViewMinWidth, 0); | 540 gfx::Size preferred_size(kBubbleViewMinWidth, 0); |
541 for (size_t i = 0; i < item_views_.size(); ++i) { | 541 for (size_t i = 0; i < item_views_.size(); ++i) { |
542 gfx::Size size = item_views_[i]->GetPreferredSize(); | 542 gfx::Size size = item_views_[i]->GetPreferredSize(); |
543 preferred_size.Enlarge(0, size.height() + kItemMarginY); | 543 preferred_size.Enlarge(0, size.height() + kItemMarginY); |
544 preferred_size.SetToMax(size); | 544 preferred_size.SetToMax(size); |
545 } | 545 } |
546 | 546 |
547 if (buttons_view_) { | 547 if (buttons_view_) { |
548 preferred_size.Enlarge( | 548 preferred_size.Enlarge( |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
801 Layout(); | 801 Layout(); |
802 if (GetBubbleFrameView()) | 802 if (GetBubbleFrameView()) |
803 SizeToContents(); | 803 SizeToContents(); |
804 } | 804 } |
805 | 805 |
806 void AvatarMenuBubbleView::SetBackgroundColors() { | 806 void AvatarMenuBubbleView::SetBackgroundColors() { |
807 for (size_t i = 0; i < item_views_.size(); ++i) { | 807 for (size_t i = 0; i < item_views_.size(); ++i) { |
808 item_views_[i]->OnHighlightStateChanged(); | 808 item_views_[i]->OnHighlightStateChanged(); |
809 } | 809 } |
810 } | 810 } |
OLD | NEW |