| 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 "chrome/browser/chromeos/system/ash_system_tray_delegate.h" | 5 #include "chrome/browser/chromeos/system/ash_system_tray_delegate.h" |
| 6 | 6 |
| 7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
| 8 #include "ash/shell_window_ids.h" | 8 #include "ash/shell_window_ids.h" |
| 9 #include "ash/system/audio/audio_observer.h" | 9 #include "ash/system/audio/audio_observer.h" |
| 10 #include "ash/system/bluetooth/bluetooth_observer.h" | 10 #include "ash/system/bluetooth/bluetooth_observer.h" |
| 11 #include "ash/system/brightness/brightness_observer.h" | 11 #include "ash/system/brightness/brightness_observer.h" |
| 12 #include "ash/system/chromeos/network/network_observer.h" | 12 #include "ash/system/chromeos/network/network_observer.h" |
| 13 #include "ash/system/date/clock_observer.h" | 13 #include "ash/system/date/clock_observer.h" |
| 14 #include "ash/system/drive/drive_observer.h" | 14 #include "ash/system/drive/drive_observer.h" |
| 15 #include "ash/system/ime/ime_observer.h" | 15 #include "ash/system/ime/ime_observer.h" |
| 16 #include "ash/system/power/power_status_observer.h" | 16 #include "ash/system/power/power_status_observer.h" |
| 17 #include "ash/system/tray/system_tray.h" | 17 #include "ash/system/tray/system_tray.h" |
| 18 #include "ash/system/tray/system_tray_delegate.h" | 18 #include "ash/system/tray/system_tray_delegate.h" |
| 19 #include "ash/system/tray_accessibility.h" | 19 #include "ash/system/tray_accessibility.h" |
| 20 #include "ash/system/tray_caps_lock.h" | 20 #include "ash/system/tray_caps_lock.h" |
| 21 #include "ash/system/user/update_observer.h" | 21 #include "ash/system/user/update_observer.h" |
| 22 #include "ash/system/user/user_observer.h" | 22 #include "ash/system/user/user_observer.h" |
| 23 #include "ash/volume_control_delegate.h" | 23 #include "ash/volume_control_delegate.h" |
| 24 #include "base/bind_helpers.h" | 24 #include "base/bind_helpers.h" |
| 25 #include "base/callback.h" | 25 #include "base/callback.h" |
| 26 #include "base/chromeos/chromeos_version.h" | 26 #include "base/chromeos/chromeos_version.h" |
| 27 #include "base/logging.h" | 27 #include "base/logging.h" |
| 28 #include "base/memory/weak_ptr.h" | 28 #include "base/memory/weak_ptr.h" |
| 29 #include "base/prefs/public/pref_observer.h" |
| 29 #include "base/utf_string_conversions.h" | 30 #include "base/utf_string_conversions.h" |
| 30 #include "chrome/browser/browser_process.h" | 31 #include "chrome/browser/browser_process.h" |
| 31 #include "chrome/browser/chromeos/accessibility/accessibility_util.h" | 32 #include "chrome/browser/chromeos/accessibility/accessibility_util.h" |
| 32 #include "chrome/browser/chromeos/audio/audio_handler.h" | 33 #include "chrome/browser/chromeos/audio/audio_handler.h" |
| 33 #include "chrome/browser/chromeos/cros/cros_library.h" | 34 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 34 #include "chrome/browser/chromeos/cros/network_library.h" | 35 #include "chrome/browser/chromeos/cros/network_library.h" |
| 35 #include "chrome/browser/chromeos/drive/drive_system_service.h" | 36 #include "chrome/browser/chromeos/drive/drive_system_service.h" |
| 36 #include "chrome/browser/chromeos/input_method/input_method_manager.h" | 37 #include "chrome/browser/chromeos/input_method/input_method_manager.h" |
| 37 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 38 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
| 38 #include "chrome/browser/chromeos/input_method/xkeyboard.h" | 39 #include "chrome/browser/chromeos/input_method/xkeyboard.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 | 145 |
| 145 class SystemTrayDelegate : public ash::SystemTrayDelegate, | 146 class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| 146 public AudioHandler::VolumeObserver, | 147 public AudioHandler::VolumeObserver, |
| 147 public PowerManagerClient::Observer, | 148 public PowerManagerClient::Observer, |
| 148 public SessionManagerClient::Observer, | 149 public SessionManagerClient::Observer, |
| 149 public NetworkMenuIcon::Delegate, | 150 public NetworkMenuIcon::Delegate, |
| 150 public NetworkMenu::Delegate, | 151 public NetworkMenu::Delegate, |
| 151 public NetworkLibrary::NetworkManagerObserver, | 152 public NetworkLibrary::NetworkManagerObserver, |
| 152 public NetworkLibrary::NetworkObserver, | 153 public NetworkLibrary::NetworkObserver, |
| 153 public NetworkLibrary::CellularDataPlanObserver, | 154 public NetworkLibrary::CellularDataPlanObserver, |
| 155 public PrefObserver, |
| 154 public google_apis::DriveServiceObserver, | 156 public google_apis::DriveServiceObserver, |
| 155 public content::NotificationObserver, | 157 public content::NotificationObserver, |
| 156 public input_method::InputMethodManager::Observer, | 158 public input_method::InputMethodManager::Observer, |
| 157 public system::TimezoneSettings::Observer, | 159 public system::TimezoneSettings::Observer, |
| 158 public device::BluetoothAdapter::Observer, | 160 public device::BluetoothAdapter::Observer, |
| 159 public SystemKeyEventListener::CapsLockObserver, | 161 public SystemKeyEventListener::CapsLockObserver, |
| 160 public ash::NetworkTrayDelegate { | 162 public ash::NetworkTrayDelegate { |
| 161 public: | 163 public: |
| 162 explicit SystemTrayDelegate(ash::SystemTray* tray) | 164 explicit SystemTrayDelegate(ash::SystemTray* tray) |
| 163 : tray_(tray), | 165 : tray_(tray), |
| (...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1081 if (observer) | 1083 if (observer) |
| 1082 observer->OnUserUpdate(); | 1084 observer->OnUserUpdate(); |
| 1083 } | 1085 } |
| 1084 break; | 1086 break; |
| 1085 } | 1087 } |
| 1086 case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { | 1088 case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { |
| 1087 // GData system service exists by the time if enabled. | 1089 // GData system service exists by the time if enabled. |
| 1088 ObserveGDataUpdates(); | 1090 ObserveGDataUpdates(); |
| 1089 break; | 1091 break; |
| 1090 } | 1092 } |
| 1091 case chrome::NOTIFICATION_PREF_CHANGED: { | |
| 1092 std::string pref = *content::Details<std::string>(details).ptr(); | |
| 1093 PrefService* service = content::Source<PrefService>(source).ptr(); | |
| 1094 if (pref == prefs::kUse24HourClock) { | |
| 1095 UpdateClockType(service); | |
| 1096 } else if (pref == prefs::kLanguageXkbRemapSearchKeyTo) { | |
| 1097 search_key_mapped_to_ = | |
| 1098 service->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo); | |
| 1099 } else if (pref == prefs::kSpokenFeedbackEnabled) { | |
| 1100 ash::AccessibilityObserver* observer = | |
| 1101 tray_->accessibility_observer(); | |
| 1102 if (observer) { | |
| 1103 observer->OnAccessibilityModeChanged( | |
| 1104 service->GetBoolean(prefs::kSpokenFeedbackEnabled)); | |
| 1105 } | |
| 1106 } else { | |
| 1107 NOTREACHED(); | |
| 1108 } | |
| 1109 break; | |
| 1110 } | |
| 1111 case chrome::NOTIFICATION_PROFILE_CREATED: { | 1093 case chrome::NOTIFICATION_PROFILE_CREATED: { |
| 1112 SetProfile(content::Source<Profile>(source).ptr()); | 1094 SetProfile(content::Source<Profile>(source).ptr()); |
| 1113 registrar_.Remove(this, | 1095 registrar_.Remove(this, |
| 1114 chrome::NOTIFICATION_PROFILE_CREATED, | 1096 chrome::NOTIFICATION_PROFILE_CREATED, |
| 1115 content::NotificationService::AllSources()); | 1097 content::NotificationService::AllSources()); |
| 1116 break; | 1098 break; |
| 1117 } | 1099 } |
| 1118 case chrome::NOTIFICATION_SESSION_STARTED: { | 1100 case chrome::NOTIFICATION_SESSION_STARTED: { |
| 1119 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange( | 1101 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange( |
| 1120 GetUserLoginStatus()); | 1102 GetUserLoginStatus()); |
| 1121 SetProfile(ProfileManager::GetDefaultProfile()); | 1103 SetProfile(ProfileManager::GetDefaultProfile()); |
| 1122 break; | 1104 break; |
| 1123 } | 1105 } |
| 1124 default: | 1106 default: |
| 1125 NOTREACHED(); | 1107 NOTREACHED(); |
| 1126 } | 1108 } |
| 1127 } | 1109 } |
| 1128 | 1110 |
| 1111 virtual void OnPreferenceChanged(PrefServiceBase* service, |
| 1112 const std::string& pref) OVERRIDE { |
| 1113 if (pref == prefs::kUse24HourClock) { |
| 1114 UpdateClockType(static_cast<PrefService*>(service)); |
| 1115 } else if (pref == prefs::kLanguageXkbRemapSearchKeyTo) { |
| 1116 search_key_mapped_to_ = |
| 1117 service->GetInteger(prefs::kLanguageXkbRemapSearchKeyTo); |
| 1118 } else if (pref == prefs::kSpokenFeedbackEnabled) { |
| 1119 ash::AccessibilityObserver* observer = |
| 1120 tray_->accessibility_observer(); |
| 1121 if (observer) { |
| 1122 observer->OnAccessibilityModeChanged( |
| 1123 service->GetBoolean(prefs::kSpokenFeedbackEnabled)); |
| 1124 } |
| 1125 } else { |
| 1126 NOTREACHED(); |
| 1127 } |
| 1128 } |
| 1129 |
| 1129 // Overridden from InputMethodManager::Observer. | 1130 // Overridden from InputMethodManager::Observer. |
| 1130 virtual void InputMethodChanged( | 1131 virtual void InputMethodChanged( |
| 1131 input_method::InputMethodManager* manager, bool show_message) OVERRIDE { | 1132 input_method::InputMethodManager* manager, bool show_message) OVERRIDE { |
| 1132 NotifyRefreshIME(show_message); | 1133 NotifyRefreshIME(show_message); |
| 1133 } | 1134 } |
| 1134 | 1135 |
| 1135 virtual void InputMethodPropertyChanged( | 1136 virtual void InputMethodPropertyChanged( |
| 1136 input_method::InputMethodManager* manager) OVERRIDE { | 1137 input_method::InputMethodManager* manager) OVERRIDE { |
| 1137 NotifyRefreshIME(false); | 1138 NotifyRefreshIME(false); |
| 1138 } | 1139 } |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1300 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate); | 1301 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate); |
| 1301 }; | 1302 }; |
| 1302 | 1303 |
| 1303 } // namespace | 1304 } // namespace |
| 1304 | 1305 |
| 1305 ash::SystemTrayDelegate* CreateSystemTrayDelegate(ash::SystemTray* tray) { | 1306 ash::SystemTrayDelegate* CreateSystemTrayDelegate(ash::SystemTray* tray) { |
| 1306 return new chromeos::SystemTrayDelegate(tray); | 1307 return new chromeos::SystemTrayDelegate(tray); |
| 1307 } | 1308 } |
| 1308 | 1309 |
| 1309 } // namespace chromeos | 1310 } // namespace chromeos |
| OLD | NEW |