Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Side by Side Diff: ash/system/tray/system_tray.cc

Issue 380943002: Added battery level and time to the status tray's accessible name. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed old view before storing a new one Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/system_tray.h" 5 #include "ash/system/tray/system_tray.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/metrics/user_metrics_recorder.h" 8 #include "ash/metrics/user_metrics_recorder.h"
9 #include "ash/shelf/shelf_layout_manager.h" 9 #include "ash/shelf/shelf_layout_manager.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "ui/views/view.h" 44 #include "ui/views/view.h"
45 45
46 #if defined(OS_CHROMEOS) 46 #if defined(OS_CHROMEOS)
47 #include "ash/system/chromeos/audio/tray_audio_chromeos.h" 47 #include "ash/system/chromeos/audio/tray_audio_chromeos.h"
48 #include "ash/system/chromeos/brightness/tray_brightness.h" 48 #include "ash/system/chromeos/brightness/tray_brightness.h"
49 #include "ash/system/chromeos/enterprise/tray_enterprise.h" 49 #include "ash/system/chromeos/enterprise/tray_enterprise.h"
50 #include "ash/system/chromeos/managed/tray_locally_managed_user.h" 50 #include "ash/system/chromeos/managed/tray_locally_managed_user.h"
51 #include "ash/system/chromeos/network/tray_network.h" 51 #include "ash/system/chromeos/network/tray_network.h"
52 #include "ash/system/chromeos/network/tray_sms.h" 52 #include "ash/system/chromeos/network/tray_sms.h"
53 #include "ash/system/chromeos/network/tray_vpn.h" 53 #include "ash/system/chromeos/network/tray_vpn.h"
54 #include "ash/system/chromeos/power/power_status.h"
54 #include "ash/system/chromeos/power/tray_power.h" 55 #include "ash/system/chromeos/power/tray_power.h"
55 #include "ash/system/chromeos/rotation/tray_rotation_lock.h" 56 #include "ash/system/chromeos/rotation/tray_rotation_lock.h"
56 #include "ash/system/chromeos/screen_security/screen_capture_tray_item.h" 57 #include "ash/system/chromeos/screen_security/screen_capture_tray_item.h"
57 #include "ash/system/chromeos/screen_security/screen_share_tray_item.h" 58 #include "ash/system/chromeos/screen_security/screen_share_tray_item.h"
58 #include "ash/system/chromeos/session/tray_session_length_limit.h" 59 #include "ash/system/chromeos/session/tray_session_length_limit.h"
59 #include "ash/system/chromeos/settings/tray_settings.h" 60 #include "ash/system/chromeos/settings/tray_settings.h"
60 #include "ash/system/chromeos/tray_caps_lock.h" 61 #include "ash/system/chromeos/tray_caps_lock.h"
61 #include "ash/system/chromeos/tray_display.h" 62 #include "ash/system/chromeos/tray_display.h"
62 #include "ash/system/chromeos/tray_tracing.h" 63 #include "ash/system/chromeos/tray_tracing.h"
63 #include "ash/system/tray/media_security/multi_profile_media_tray_item.h" 64 #include "ash/system/tray/media_security/multi_profile_media_tray_item.h"
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 UpdateWebNotifications(); 396 UpdateWebNotifications();
396 } 397 }
397 398
398 void SystemTray::DestroyNotificationBubble() { 399 void SystemTray::DestroyNotificationBubble() {
399 if (notification_bubble_) { 400 if (notification_bubble_) {
400 notification_bubble_.reset(); 401 notification_bubble_.reset();
401 UpdateWebNotifications(); 402 UpdateWebNotifications();
402 } 403 }
403 } 404 }
404 405
406 base::string16 SystemTray::GetAccessibleNameForTray() {
407 base::string16 time = GetAccessibleTimeString(base::Time::Now());
408 base::string16 battery = base::ASCIIToUTF16("");
409 #if defined(OS_CHROMEOS)
410 battery = PowerStatus::Get()->GetAccessibleNameString(false);
411 #endif
412 return l10n_util::GetStringFUTF16(
413 IDS_ASH_STATUS_TRAY_ACCESSIBLE_DESCRIPTION, time, battery);
414 }
415
405 int SystemTray::GetTrayXOffset(SystemTrayItem* item) const { 416 int SystemTray::GetTrayXOffset(SystemTrayItem* item) const {
406 // Don't attempt to align the arrow if the shelf is on the left or right. 417 // Don't attempt to align the arrow if the shelf is on the left or right.
407 if (shelf_alignment() != SHELF_ALIGNMENT_BOTTOM && 418 if (shelf_alignment() != SHELF_ALIGNMENT_BOTTOM &&
408 shelf_alignment() != SHELF_ALIGNMENT_TOP) 419 shelf_alignment() != SHELF_ALIGNMENT_TOP)
409 return TrayBubbleView::InitParams::kArrowDefaultOffset; 420 return TrayBubbleView::InitParams::kArrowDefaultOffset;
410 421
411 std::map<SystemTrayItem*, views::View*>::const_iterator it = 422 std::map<SystemTrayItem*, views::View*>::const_iterator it =
412 tray_item_map_.find(item); 423 tray_item_map_.find(item);
413 if (it == tray_item_map_.end()) 424 if (it == tray_item_map_.end())
414 return TrayBubbleView::InitParams::kArrowDefaultOffset; 425 return TrayBubbleView::InitParams::kArrowDefaultOffset;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 height = std::max( 592 height = std::max(
582 0, work_area.height() - bubble_view->GetBoundsInScreen().y()); 593 0, work_area.height() - bubble_view->GetBoundsInScreen().y());
583 } else { 594 } else {
584 height = std::max( 595 height = std::max(
585 0, bubble_view->GetBoundsInScreen().bottom() - work_area.y()); 596 0, bubble_view->GetBoundsInScreen().bottom() - work_area.y());
586 } 597 }
587 } 598 }
588 status_area_widget()->web_notification_tray()->SetSystemTrayHeight(height); 599 status_area_widget()->web_notification_tray()->SetSystemTrayHeight(height);
589 } 600 }
590 601
602 base::string16 SystemTray::GetAccessibleTimeString(
603 const base::Time& now) const {
604 base::HourClockType hour_type =
605 ash::Shell::GetInstance()->system_tray_delegate()->GetHourClockType();
606 return base::TimeFormatTimeOfDayWithHourClockType(
607 now, hour_type, base::kKeepAmPm);
608 }
609
591 void SystemTray::SetShelfAlignment(ShelfAlignment alignment) { 610 void SystemTray::SetShelfAlignment(ShelfAlignment alignment) {
592 if (alignment == shelf_alignment()) 611 if (alignment == shelf_alignment())
593 return; 612 return;
594 TrayBackgroundView::SetShelfAlignment(alignment); 613 TrayBackgroundView::SetShelfAlignment(alignment);
595 UpdateAfterShelfAlignmentChange(alignment); 614 UpdateAfterShelfAlignmentChange(alignment);
596 // Destroy any existing bubble so that it is rebuilt correctly. 615 // Destroy any existing bubble so that it is rebuilt correctly.
597 CloseSystemBubbleAndDeactivateSystemTray(); 616 CloseSystemBubbleAndDeactivateSystemTray();
598 // Rebuild any notification bubble. 617 // Rebuild any notification bubble.
599 if (notification_bubble_) { 618 if (notification_bubble_) {
600 notification_bubble_.reset(); 619 notification_bubble_.reset();
601 UpdateNotificationBubble(); 620 UpdateNotificationBubble();
602 } 621 }
603 } 622 }
604 623
605 void SystemTray::AnchorUpdated() { 624 void SystemTray::AnchorUpdated() {
606 if (notification_bubble_) { 625 if (notification_bubble_) {
607 notification_bubble_->bubble_view()->UpdateBubble(); 626 notification_bubble_->bubble_view()->UpdateBubble();
608 // Ensure that the notification buble is above the shelf/status area. 627 // Ensure that the notification buble is above the shelf/status area.
609 notification_bubble_->bubble_view()->GetWidget()->StackAtTop(); 628 notification_bubble_->bubble_view()->GetWidget()->StackAtTop();
610 UpdateBubbleViewArrow(notification_bubble_->bubble_view()); 629 UpdateBubbleViewArrow(notification_bubble_->bubble_view());
611 } 630 }
612 if (system_bubble_) { 631 if (system_bubble_) {
613 system_bubble_->bubble_view()->UpdateBubble(); 632 system_bubble_->bubble_view()->UpdateBubble();
614 UpdateBubbleViewArrow(system_bubble_->bubble_view()); 633 UpdateBubbleViewArrow(system_bubble_->bubble_view());
615 } 634 }
616 } 635 }
617 636
618 base::string16 SystemTray::GetAccessibleNameForTray() {
619 return l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ACCESSIBLE_NAME);
620 }
621
622 void SystemTray::BubbleResized(const TrayBubbleView* bubble_view) { 637 void SystemTray::BubbleResized(const TrayBubbleView* bubble_view) {
623 UpdateWebNotifications(); 638 UpdateWebNotifications();
624 } 639 }
625 640
626 void SystemTray::HideBubbleWithView(const TrayBubbleView* bubble_view) { 641 void SystemTray::HideBubbleWithView(const TrayBubbleView* bubble_view) {
627 if (system_bubble_.get() && bubble_view == system_bubble_->bubble_view()) { 642 if (system_bubble_.get() && bubble_view == system_bubble_->bubble_view()) {
628 DestroySystemBubble(); 643 DestroySystemBubble();
629 UpdateNotificationBubble(); // State changed, re-create notifications. 644 UpdateNotificationBubble(); // State changed, re-create notifications.
630 GetShelfLayoutManager()->UpdateAutoHideState(); 645 GetShelfLayoutManager()->UpdateAutoHideState();
631 } else if (notification_bubble_.get() && 646 } else if (notification_bubble_.get() &&
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 system_bubble_.reset(); 722 system_bubble_.reset();
708 // When closing a system bubble with the alternate shelf layout, we need to 723 // When closing a system bubble with the alternate shelf layout, we need to
709 // turn off the active tinting of the shelf. 724 // turn off the active tinting of the shelf.
710 if (full_system_tray_menu_) { 725 if (full_system_tray_menu_) {
711 SetDrawBackgroundAsActive(false); 726 SetDrawBackgroundAsActive(false);
712 full_system_tray_menu_ = false; 727 full_system_tray_menu_ = false;
713 } 728 }
714 } 729 }
715 730
716 } // namespace ash 731 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/tray/system_tray.h ('k') | chrome/browser/ui/views/accessibility/accessibility_event_router_views.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698