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/tabs/alert_indicator_button.h" | 5 #include "chrome/browser/ui/views/tabs/alert_indicator_button.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/metrics/user_metrics.h" |
8 #include "base/timer/timer.h" | 9 #include "base/timer/timer.h" |
9 #include "chrome/browser/ui/views/tabs/tab.h" | 10 #include "chrome/browser/ui/views/tabs/tab.h" |
10 #include "chrome/browser/ui/views/tabs/tab_controller.h" | 11 #include "chrome/browser/ui/views/tabs/tab_controller.h" |
11 #include "chrome/browser/ui/views/tabs/tab_renderer_data.h" | 12 #include "chrome/browser/ui/views/tabs/tab_renderer_data.h" |
12 #include "content/public/browser/user_metrics.h" | |
13 #include "ui/gfx/animation/animation_delegate.h" | 13 #include "ui/gfx/animation/animation_delegate.h" |
14 #include "ui/gfx/canvas.h" | 14 #include "ui/gfx/canvas.h" |
15 #include "ui/gfx/image/image.h" | 15 #include "ui/gfx/image/image.h" |
16 #include "ui/views/metrics.h" | 16 #include "ui/views/metrics.h" |
17 | 17 |
18 using base::UserMetricsAction; | 18 using base::UserMetricsAction; |
19 | 19 |
20 namespace { | 20 namespace { |
21 | 21 |
22 // The minimum required click-to-select area of an inactive Tab before allowing | 22 // The minimum required click-to-select area of an inactive Tab before allowing |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 return false; // Event to be handled by Tab. | 176 return false; // Event to be handled by Tab. |
177 } | 177 } |
178 return ImageButton::OnMousePressed(event); | 178 return ImageButton::OnMousePressed(event); |
179 } | 179 } |
180 | 180 |
181 bool AlertIndicatorButton::OnMouseDragged(const ui::MouseEvent& event) { | 181 bool AlertIndicatorButton::OnMouseDragged(const ui::MouseEvent& event) { |
182 const ButtonState previous_state = state(); | 182 const ButtonState previous_state = state(); |
183 const bool ret = ImageButton::OnMouseDragged(event); | 183 const bool ret = ImageButton::OnMouseDragged(event); |
184 if (previous_state != views::CustomButton::STATE_NORMAL && | 184 if (previous_state != views::CustomButton::STATE_NORMAL && |
185 state() == views::CustomButton::STATE_NORMAL) | 185 state() == views::CustomButton::STATE_NORMAL) |
186 content::RecordAction(UserMetricsAction("AlertIndicatorButton_Dragged")); | 186 base::RecordAction(UserMetricsAction("AlertIndicatorButton_Dragged")); |
187 return ret; | 187 return ret; |
188 } | 188 } |
189 | 189 |
190 void AlertIndicatorButton::OnMouseEntered(const ui::MouseEvent& event) { | 190 void AlertIndicatorButton::OnMouseEntered(const ui::MouseEvent& event) { |
191 // If any modifier keys are being held down, do not turn on hover. | 191 // If any modifier keys are being held down, do not turn on hover. |
192 if (state() != views::CustomButton::STATE_DISABLED && | 192 if (state() != views::CustomButton::STATE_DISABLED && |
193 IsShiftOrControlDown(event)) { | 193 IsShiftOrControlDown(event)) { |
194 SetState(views::CustomButton::STATE_NORMAL); | 194 SetState(views::CustomButton::STATE_NORMAL); |
195 return; | 195 return; |
196 } | 196 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 } | 241 } |
242 | 242 |
243 void AlertIndicatorButton::NotifyClick(const ui::Event& event) { | 243 void AlertIndicatorButton::NotifyClick(const ui::Event& event) { |
244 EnterDormantPeriod(); | 244 EnterDormantPeriod(); |
245 | 245 |
246 // Call TransitionToAlertState() to change the image, providing the user with | 246 // Call TransitionToAlertState() to change the image, providing the user with |
247 // instant feedback. In the very unlikely event that the mute toggle fails, | 247 // instant feedback. In the very unlikely event that the mute toggle fails, |
248 // TransitionToAlertState() will be called again, via another code path, to | 248 // TransitionToAlertState() will be called again, via another code path, to |
249 // set the image to be consistent with the final outcome. | 249 // set the image to be consistent with the final outcome. |
250 if (alert_state_ == TabAlertState::AUDIO_PLAYING) { | 250 if (alert_state_ == TabAlertState::AUDIO_PLAYING) { |
251 content::RecordAction(UserMetricsAction("AlertIndicatorButton_Mute")); | 251 base::RecordAction(UserMetricsAction("AlertIndicatorButton_Mute")); |
252 TransitionToAlertState(TabAlertState::AUDIO_MUTING); | 252 TransitionToAlertState(TabAlertState::AUDIO_MUTING); |
253 } else { | 253 } else { |
254 DCHECK(alert_state_ == TabAlertState::AUDIO_MUTING); | 254 DCHECK(alert_state_ == TabAlertState::AUDIO_MUTING); |
255 content::RecordAction(UserMetricsAction("AlertIndicatorButton_Unmute")); | 255 base::RecordAction(UserMetricsAction("AlertIndicatorButton_Unmute")); |
256 TransitionToAlertState(TabAlertState::AUDIO_PLAYING); | 256 TransitionToAlertState(TabAlertState::AUDIO_PLAYING); |
257 } | 257 } |
258 | 258 |
259 GetTab()->controller()->ToggleTabAudioMute(GetTab()); | 259 GetTab()->controller()->ToggleTabAudioMute(GetTab()); |
260 } | 260 } |
261 | 261 |
262 bool AlertIndicatorButton::IsTriggerableEvent(const ui::Event& event) { | 262 bool AlertIndicatorButton::IsTriggerableEvent(const ui::Event& event) { |
263 if (is_dormant()) | 263 if (is_dormant()) |
264 return false; | 264 return false; |
265 | 265 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 &AlertIndicatorButton::ExitDormantPeriod); | 314 &AlertIndicatorButton::ExitDormantPeriod); |
315 SchedulePaint(); | 315 SchedulePaint(); |
316 } | 316 } |
317 | 317 |
318 void AlertIndicatorButton::ExitDormantPeriod() { | 318 void AlertIndicatorButton::ExitDormantPeriod() { |
319 const bool needs_repaint = is_dormant(); | 319 const bool needs_repaint = is_dormant(); |
320 wake_up_timer_.reset(); | 320 wake_up_timer_.reset(); |
321 if (needs_repaint) | 321 if (needs_repaint) |
322 SchedulePaint(); | 322 SchedulePaint(); |
323 } | 323 } |
OLD | NEW |