| 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/accessibility_delegate.h" | 7 #include "ash/accessibility_delegate.h" |
| 8 #include "ash/accessibility_types.h" | 8 #include "ash/accessibility_types.h" |
| 9 #include "ash/resources/vector_icons/vector_icons.h" | 9 #include "ash/resources/vector_icons/vector_icons.h" |
| 10 #include "ash/session/session_state_delegate.h" | 10 #include "ash/session/session_state_delegate.h" |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 Reset(); | 208 Reset(); |
| 209 AppendAccessibilityList(); | 209 AppendAccessibilityList(); |
| 210 CreateTitleRow(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_TITLE); | 210 CreateTitleRow(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_TITLE); |
| 211 Layout(); | 211 Layout(); |
| 212 } | 212 } |
| 213 | 213 |
| 214 void AccessibilityDetailedView::AppendAccessibilityList() { | 214 void AccessibilityDetailedView::AppendAccessibilityList() { |
| 215 CreateScrollableList(); | 215 CreateScrollableList(); |
| 216 | 216 |
| 217 AccessibilityDelegate* delegate = Shell::Get()->accessibility_delegate(); | 217 AccessibilityDelegate* delegate = Shell::Get()->accessibility_delegate(); |
| 218 |
| 218 spoken_feedback_enabled_ = delegate->IsSpokenFeedbackEnabled(); | 219 spoken_feedback_enabled_ = delegate->IsSpokenFeedbackEnabled(); |
| 219 spoken_feedback_view_ = AddScrollListItem( | 220 spoken_feedback_view_ = AddScrollListCheckableItem( |
| 221 kSystemMenuAccessibilityChromevoxIcon, |
| 220 l10n_util::GetStringUTF16( | 222 l10n_util::GetStringUTF16( |
| 221 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SPOKEN_FEEDBACK), | 223 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SPOKEN_FEEDBACK), |
| 222 spoken_feedback_enabled_, kSystemMenuAccessibilityChromevoxIcon); | 224 spoken_feedback_enabled_); |
| 223 | 225 |
| 224 high_contrast_enabled_ = delegate->IsHighContrastEnabled(); | 226 high_contrast_enabled_ = delegate->IsHighContrastEnabled(); |
| 225 high_contrast_view_ = AddScrollListItem( | 227 high_contrast_view_ = AddScrollListCheckableItem( |
| 228 kSystemMenuAccessibilityContrastIcon, |
| 226 l10n_util::GetStringUTF16( | 229 l10n_util::GetStringUTF16( |
| 227 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGH_CONTRAST_MODE), | 230 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGH_CONTRAST_MODE), |
| 228 high_contrast_enabled_, kSystemMenuAccessibilityContrastIcon); | 231 high_contrast_enabled_); |
| 232 |
| 229 screen_magnifier_enabled_ = delegate->IsMagnifierEnabled(); | 233 screen_magnifier_enabled_ = delegate->IsMagnifierEnabled(); |
| 230 screen_magnifier_view_ = AddScrollListItem( | 234 screen_magnifier_view_ = AddScrollListCheckableItem( |
| 235 kSystemMenuAccessibilityScreenMagnifierIcon, |
| 231 l10n_util::GetStringUTF16( | 236 l10n_util::GetStringUTF16( |
| 232 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SCREEN_MAGNIFIER), | 237 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SCREEN_MAGNIFIER), |
| 233 screen_magnifier_enabled_, kSystemMenuAccessibilityScreenMagnifierIcon); | 238 screen_magnifier_enabled_); |
| 234 | 239 |
| 235 autoclick_enabled_ = delegate->IsAutoclickEnabled(); | 240 autoclick_enabled_ = delegate->IsAutoclickEnabled(); |
| 236 autoclick_view_ = AddScrollListItem( | 241 autoclick_view_ = AddScrollListCheckableItem( |
| 242 kSystemMenuAccessibilityAutoClickIcon, |
| 237 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_AUTOCLICK), | 243 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_AUTOCLICK), |
| 238 autoclick_enabled_, kSystemMenuAccessibilityAutoClickIcon); | 244 autoclick_enabled_); |
| 239 | 245 |
| 240 virtual_keyboard_enabled_ = delegate->IsVirtualKeyboardEnabled(); | 246 virtual_keyboard_enabled_ = delegate->IsVirtualKeyboardEnabled(); |
| 241 virtual_keyboard_view_ = | 247 virtual_keyboard_view_ = AddScrollListCheckableItem( |
| 242 AddScrollListItem(l10n_util::GetStringUTF16( | 248 kSystemMenuKeyboardIcon, |
| 243 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_VIRTUAL_KEYBOARD), | 249 l10n_util::GetStringUTF16( |
| 244 virtual_keyboard_enabled_, kSystemMenuKeyboardIcon); | 250 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_VIRTUAL_KEYBOARD), |
| 251 virtual_keyboard_enabled_); |
| 245 | 252 |
| 246 scroll_content()->AddChildView( | 253 scroll_content()->AddChildView( |
| 247 TrayPopupUtils::CreateListSubHeaderSeparator()); | 254 TrayPopupUtils::CreateListSubHeaderSeparator()); |
| 248 | 255 |
| 249 AddSubHeader(l10n_util::GetStringUTF16( | 256 AddScrollListSubHeader( |
| 250 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_ADDITIONAL_SETTINGS)); | 257 gfx::kNoneIcon, |
| 258 l10n_util::GetStringUTF16( |
| 259 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_ADDITIONAL_SETTINGS)); |
| 251 | 260 |
| 252 large_cursor_enabled_ = delegate->IsLargeCursorEnabled(); | 261 large_cursor_enabled_ = delegate->IsLargeCursorEnabled(); |
| 253 large_cursor_view_ = AddScrollListItemWithoutIcon( | 262 large_cursor_view_ = AddScrollListCheckableItem( |
| 263 gfx::kNoneIcon, |
| 254 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LARGE_CURSOR), | 264 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LARGE_CURSOR), |
| 255 large_cursor_enabled_); | 265 large_cursor_enabled_); |
| 256 | 266 |
| 257 mono_audio_enabled_ = delegate->IsMonoAudioEnabled(); | 267 mono_audio_enabled_ = delegate->IsMonoAudioEnabled(); |
| 258 mono_audio_view_ = AddScrollListItemWithoutIcon( | 268 mono_audio_view_ = AddScrollListCheckableItem( |
| 269 gfx::kNoneIcon, |
| 259 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_MONO_AUDIO), | 270 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_MONO_AUDIO), |
| 260 mono_audio_enabled_); | 271 mono_audio_enabled_); |
| 261 | 272 |
| 262 caret_highlight_enabled_ = delegate->IsCaretHighlightEnabled(); | 273 caret_highlight_enabled_ = delegate->IsCaretHighlightEnabled(); |
| 263 caret_highlight_view_ = AddScrollListItemWithoutIcon( | 274 caret_highlight_view_ = AddScrollListCheckableItem( |
| 275 gfx::kNoneIcon, |
| 264 l10n_util::GetStringUTF16( | 276 l10n_util::GetStringUTF16( |
| 265 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_CARET_HIGHLIGHT), | 277 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_CARET_HIGHLIGHT), |
| 266 caret_highlight_enabled_); | 278 caret_highlight_enabled_); |
| 267 | 279 |
| 268 highlight_mouse_cursor_enabled_ = delegate->IsCursorHighlightEnabled(); | 280 highlight_mouse_cursor_enabled_ = delegate->IsCursorHighlightEnabled(); |
| 269 highlight_mouse_cursor_view_ = AddScrollListItemWithoutIcon( | 281 highlight_mouse_cursor_view_ = AddScrollListCheckableItem( |
| 282 gfx::kNoneIcon, |
| 270 l10n_util::GetStringUTF16( | 283 l10n_util::GetStringUTF16( |
| 271 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGHLIGHT_MOUSE_CURSOR), | 284 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGHLIGHT_MOUSE_CURSOR), |
| 272 highlight_mouse_cursor_enabled_); | 285 highlight_mouse_cursor_enabled_); |
| 273 | 286 |
| 274 // Focus highlighting can't be on when spoken feedback is on because | 287 // Focus highlighting can't be on when spoken feedback is on because |
| 275 // ChromeVox does its own focus highlighting. | 288 // ChromeVox does its own focus highlighting. |
| 276 if (!spoken_feedback_enabled_) { | 289 if (!spoken_feedback_enabled_) { |
| 277 highlight_keyboard_focus_enabled_ = delegate->IsFocusHighlightEnabled(); | 290 highlight_keyboard_focus_enabled_ = delegate->IsFocusHighlightEnabled(); |
| 278 highlight_keyboard_focus_view_ = AddScrollListItemWithoutIcon( | 291 highlight_keyboard_focus_view_ = AddScrollListCheckableItem( |
| 292 gfx::kNoneIcon, |
| 279 l10n_util::GetStringUTF16( | 293 l10n_util::GetStringUTF16( |
| 280 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGHLIGHT_KEYBOARD_FOCUS), | 294 IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGHLIGHT_KEYBOARD_FOCUS), |
| 281 highlight_keyboard_focus_enabled_); | 295 highlight_keyboard_focus_enabled_); |
| 282 } | 296 } |
| 283 | 297 |
| 284 sticky_keys_enabled_ = delegate->IsStickyKeysEnabled(); | 298 sticky_keys_enabled_ = delegate->IsStickyKeysEnabled(); |
| 285 sticky_keys_view_ = AddScrollListItemWithoutIcon( | 299 sticky_keys_view_ = AddScrollListCheckableItem( |
| 300 gfx::kNoneIcon, |
| 286 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_STICKY_KEYS), | 301 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_STICKY_KEYS), |
| 287 sticky_keys_enabled_); | 302 sticky_keys_enabled_); |
| 288 | 303 |
| 289 tap_dragging_enabled_ = delegate->IsTapDraggingEnabled(); | 304 tap_dragging_enabled_ = delegate->IsTapDraggingEnabled(); |
| 290 tap_dragging_view_ = AddScrollListItemWithoutIcon( | 305 tap_dragging_view_ = AddScrollListCheckableItem( |
| 306 gfx::kNoneIcon, |
| 291 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_TAP_DRAGGING), | 307 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_TAP_DRAGGING), |
| 292 tap_dragging_enabled_); | 308 tap_dragging_enabled_); |
| 293 } | 309 } |
| 294 | 310 |
| 295 HoverHighlightView* AccessibilityDetailedView::AddScrollListItem( | |
| 296 const base::string16& text, | |
| 297 bool checked, | |
| 298 const gfx::VectorIcon& icon) { | |
| 299 HoverHighlightView* container = new HoverHighlightView(this); | |
| 300 gfx::ImageSkia image = CreateVectorIcon(icon, kMenuIconColor); | |
| 301 container->AddIconAndLabel(image, text); | |
| 302 TrayPopupUtils::InitializeAsCheckableRow(container, checked); | |
| 303 scroll_content()->AddChildView(container); | |
| 304 return container; | |
| 305 } | |
| 306 | |
| 307 HoverHighlightView* AccessibilityDetailedView::AddScrollListItemWithoutIcon( | |
| 308 const base::string16& text, | |
| 309 bool checked) { | |
| 310 HoverHighlightView* container = new HoverHighlightView(this); | |
| 311 container->AddLabelRow(text); | |
| 312 TrayPopupUtils::InitializeAsCheckableRow(container, checked); | |
| 313 scroll_content()->AddChildView(container); | |
| 314 return container; | |
| 315 } | |
| 316 | |
| 317 void AccessibilityDetailedView::AddSubHeader( | |
| 318 const base::string16& header_text) { | |
| 319 TriView* header = TrayPopupUtils::CreateSubHeaderRowView(); | |
| 320 TrayPopupUtils::ConfigureAsStickyHeader(header); | |
| 321 | |
| 322 views::Label* label = TrayPopupUtils::CreateDefaultLabel(); | |
| 323 label->SetText(header_text); | |
| 324 TrayPopupItemStyle style(TrayPopupItemStyle::FontStyle::SUB_HEADER); | |
| 325 style.SetupLabel(label); | |
| 326 header->AddView(TriView::Container::CENTER, label); | |
| 327 | |
| 328 scroll_content()->AddChildView(header); | |
| 329 } | |
| 330 | |
| 331 void AccessibilityDetailedView::HandleViewClicked(views::View* view) { | 311 void AccessibilityDetailedView::HandleViewClicked(views::View* view) { |
| 332 AccessibilityDelegate* delegate = Shell::Get()->accessibility_delegate(); | 312 AccessibilityDelegate* delegate = Shell::Get()->accessibility_delegate(); |
| 333 UserMetricsAction user_action; | 313 UserMetricsAction user_action; |
| 334 if (view == spoken_feedback_view_) { | 314 if (view == spoken_feedback_view_) { |
| 335 user_action = delegate->IsSpokenFeedbackEnabled() | 315 user_action = delegate->IsSpokenFeedbackEnabled() |
| 336 ? ash::UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK | 316 ? ash::UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK |
| 337 : ash::UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK; | 317 : ash::UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK; |
| 338 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); | 318 delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); |
| 339 } else if (view == high_contrast_view_) { | 319 } else if (view == high_contrast_view_) { |
| 340 user_action = delegate->IsHighContrastEnabled() | 320 user_action = delegate->IsHighContrastEnabled() |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 if (detailed_popup_) | 537 if (detailed_popup_) |
| 558 detailed_popup_->GetWidget()->Close(); | 538 detailed_popup_->GetWidget()->Close(); |
| 559 if (detailed_menu_) | 539 if (detailed_menu_) |
| 560 detailed_menu_->GetWidget()->Close(); | 540 detailed_menu_->GetWidget()->Close(); |
| 561 } | 541 } |
| 562 | 542 |
| 563 previous_accessibility_state_ = accessibility_state; | 543 previous_accessibility_state_ = accessibility_state; |
| 564 } | 544 } |
| 565 | 545 |
| 566 } // namespace ash | 546 } // namespace ash |
| OLD | NEW |