OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/system/tray_accessibility.h" | 5 #include "ash/system/tray_accessibility.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/shell_delegate.h" | 8 #include "ash/shell_delegate.h" |
9 #include "ash/system/tray/system_tray.h" | 9 #include "ash/system/tray/system_tray.h" |
10 #include "ash/system/tray/system_tray_delegate.h" | 10 #include "ash/system/tray/system_tray_delegate.h" |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 | 220 |
221 TrayAccessibility::TrayAccessibility(SystemTray* system_tray) | 221 TrayAccessibility::TrayAccessibility(SystemTray* system_tray) |
222 : TrayImageItem(system_tray, IDR_AURA_UBER_TRAY_ACCESSIBILITY), | 222 : TrayImageItem(system_tray, IDR_AURA_UBER_TRAY_ACCESSIBILITY), |
223 default_(NULL), | 223 default_(NULL), |
224 detailed_(NULL), | 224 detailed_(NULL), |
225 request_popup_view_(false), | 225 request_popup_view_(false), |
226 accessibility_previously_enabled_(IsAnyAccessibilityFeatureEnabled()), | 226 accessibility_previously_enabled_(IsAnyAccessibilityFeatureEnabled()), |
227 login_(GetCurrentLoginStatus()) { | 227 login_(GetCurrentLoginStatus()) { |
228 DCHECK(Shell::GetInstance()->delegate()); | 228 DCHECK(Shell::GetInstance()->delegate()); |
229 DCHECK(system_tray); | 229 DCHECK(system_tray); |
230 | |
231 Shell::GetInstance()->AddShellObserver(this); | |
232 } | 230 } |
233 | 231 |
234 TrayAccessibility::~TrayAccessibility() { | 232 TrayAccessibility::~TrayAccessibility() { |
235 Shell::GetInstance()->RemoveShellObserver(this); | |
236 } | 233 } |
237 | 234 |
238 bool TrayAccessibility::GetInitialVisibility() { | 235 bool TrayAccessibility::GetInitialVisibility() { |
239 ShellDelegate* delegate = Shell::GetInstance()->delegate(); | 236 ShellDelegate* delegate = Shell::GetInstance()->delegate(); |
240 // Always shows this on the login screen. | 237 // Always shows this on the login screen. |
241 if (login_ == user::LOGGED_IN_NONE) | 238 if (login_ == user::LOGGED_IN_NONE) |
242 return true; | 239 return true; |
243 | 240 |
244 if (delegate->ShouldAlwaysShowAccessibilityMenu() || | 241 if (delegate->ShouldAlwaysShowAccessibilityMenu() || |
245 IsAnyAccessibilityFeatureEnabled()) { | 242 IsAnyAccessibilityFeatureEnabled()) { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 } | 276 } |
280 | 277 |
281 void TrayAccessibility::DestroyDefaultView() { | 278 void TrayAccessibility::DestroyDefaultView() { |
282 default_ = NULL; | 279 default_ = NULL; |
283 } | 280 } |
284 | 281 |
285 void TrayAccessibility::DestroyDetailedView() { | 282 void TrayAccessibility::DestroyDetailedView() { |
286 detailed_ = NULL; | 283 detailed_ = NULL; |
287 } | 284 } |
288 | 285 |
289 void TrayAccessibility::OnLoginStateChanged(user::LoginStatus status) { | 286 void TrayAccessibility::UpdateAfterLoginStatusChange(user::LoginStatus status) { |
290 login_ = status; | 287 login_ = status; |
291 | 288 |
292 if (tray_view()) | 289 if (tray_view()) |
293 tray_view()->SetVisible(GetInitialVisibility()); | 290 tray_view()->SetVisible(GetInitialVisibility()); |
294 } | 291 } |
295 | 292 |
296 void TrayAccessibility::OnAccessibilityModeChanged() { | 293 void TrayAccessibility::OnAccessibilityModeChanged() { |
297 if (tray_view()) | 294 if (tray_view()) |
298 tray_view()->SetVisible(GetInitialVisibility()); | 295 tray_view()->SetVisible(GetInitialVisibility()); |
299 | 296 |
300 bool accessibility_enabled = IsAnyAccessibilityFeatureEnabled(); | 297 bool accessibility_enabled = IsAnyAccessibilityFeatureEnabled(); |
301 if (!accessibility_previously_enabled_ && accessibility_enabled && | 298 if (!accessibility_previously_enabled_ && accessibility_enabled && |
302 login_ != user::LOGGED_IN_NONE) { | 299 login_ != user::LOGGED_IN_NONE) { |
303 // Shows popup if the accessibilty status is being changed to true from | 300 // Shows popup if the accessibilty status is being changed to true from |
304 // false. | 301 // false. |
305 request_popup_view_ = true; | 302 request_popup_view_ = true; |
306 PopupDetailedView(kTrayPopupAutoCloseDelayForTextInSeconds, false); | 303 PopupDetailedView(kTrayPopupAutoCloseDelayForTextInSeconds, false); |
307 } else if (detailed_) { | 304 } else if (detailed_) { |
308 detailed_->GetWidget()->Close(); | 305 detailed_->GetWidget()->Close(); |
309 } | 306 } |
310 | 307 |
311 accessibility_previously_enabled_ = accessibility_enabled; | 308 accessibility_previously_enabled_ = accessibility_enabled; |
312 } | 309 } |
313 | 310 |
314 } // namespace internal | 311 } // namespace internal |
315 } // namespace ash | 312 } // namespace ash |
OLD | NEW |