OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/avatar_menu_button.h" | 5 #include "chrome/browser/ui/views/avatar_menu_button.h" |
6 | 6 |
7 #include "chrome/browser/profiles/profile_metrics.h" | 7 #include "chrome/browser/profiles/profile_metrics.h" |
8 #include "chrome/browser/profiles/profile_info_util.h" | 8 #include "chrome/browser/profiles/profile_info_util.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/browser/ui/views/avatar_menu_bubble_view.h" | 10 #include "chrome/browser/ui/views/avatar_menu_bubble_view.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 return views::MenuButton::HitTest(point); | 144 return views::MenuButton::HitTest(point); |
145 } | 145 } |
146 | 146 |
147 void AvatarMenuButton::SetAvatarIcon(const gfx::Image& icon, | 147 void AvatarMenuButton::SetAvatarIcon(const gfx::Image& icon, |
148 bool is_gaia_picture) { | 148 bool is_gaia_picture) { |
149 icon_.reset(new gfx::Image(icon)); | 149 icon_.reset(new gfx::Image(icon)); |
150 button_icon_ = SkBitmap(); | 150 button_icon_ = SkBitmap(); |
151 is_gaia_picture_ = is_gaia_picture; | 151 is_gaia_picture_ = is_gaia_picture; |
152 // If the icon changes, we need to set the taskbar decoration again. | 152 // If the icon changes, we need to set the taskbar decoration again. |
153 set_taskbar_decoration_ = true; | 153 set_taskbar_decoration_ = true; |
| 154 SchedulePaint(); |
154 } | 155 } |
155 | 156 |
156 // views::ViewMenuDelegate implementation | 157 // views::ViewMenuDelegate implementation |
157 void AvatarMenuButton::RunMenu(views::View* source, const gfx::Point& pt) { | 158 void AvatarMenuButton::RunMenu(views::View* source, const gfx::Point& pt) { |
158 ShowAvatarBubble(); | 159 ShowAvatarBubble(); |
159 } | 160 } |
160 | 161 |
161 void AvatarMenuButton::ShowAvatarBubble() { | 162 void AvatarMenuButton::ShowAvatarBubble() { |
162 if (!has_menu_) | 163 if (!has_menu_) |
163 return; | 164 return; |
164 | 165 |
165 gfx::Point origin; | 166 gfx::Point origin; |
166 views::View::ConvertPointToScreen(this, &origin); | 167 views::View::ConvertPointToScreen(this, &origin); |
167 gfx::Rect bounds(origin, size()); | 168 gfx::Rect bounds(origin, size()); |
168 | 169 |
169 AvatarMenuBubbleView* bubble = new AvatarMenuBubbleView(this, | 170 AvatarMenuBubbleView* bubble = new AvatarMenuBubbleView(this, |
170 views::BubbleBorder::TOP_LEFT, bounds, browser_); | 171 views::BubbleBorder::TOP_LEFT, bounds, browser_); |
171 browser::CreateViewsBubble(bubble); | 172 browser::CreateViewsBubble(bubble); |
172 bubble->Show(); | 173 bubble->Show(); |
173 | 174 |
174 ProfileMetrics::LogProfileOpenMethod(ProfileMetrics::ICON_AVATAR_BUBBLE); | 175 ProfileMetrics::LogProfileOpenMethod(ProfileMetrics::ICON_AVATAR_BUBBLE); |
175 } | 176 } |
OLD | NEW |