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 3 // found in the LICENSE file. 4 5 #include "ash/system/tray/system_tray_notifier.h" 6 7 #if defined(OS_CHROMEOS) 8 #include "ash/system/chromeos/network/network_state_notifier.h" 9 #endif 10 11 namespace ash { 12 13 SystemTrayNotifier::SystemTrayNotifier() { 14 #if defined(OS_CHROMEOS) 15 network_state_notifier_.reset(new NetworkStateNotifier()); 16 #endif 17 } 18 19 SystemTrayNotifier::~SystemTrayNotifier() { 20 } 21 22 void SystemTrayNotifier::AddAccessibilityObserver( 23 AccessibilityObserver* observer) { 24 accessibility_observers_.AddObserver(observer); 25 } 26 27 void SystemTrayNotifier::RemoveAccessibilityObserver( 28 AccessibilityObserver* observer) { 29 accessibility_observers_.RemoveObserver(observer); 30 } 31 32 void SystemTrayNotifier::AddBluetoothObserver(BluetoothObserver* observer) { 33 bluetooth_observers_.AddObserver(observer); 34 } 35 36 void SystemTrayNotifier::RemoveBluetoothObserver(BluetoothObserver* observer) { 37 bluetooth_observers_.RemoveObserver(observer); 38 } 39 40 void SystemTrayNotifier::AddCapsLockObserver(CapsLockObserver* observer) { 41 caps_lock_observers_.AddObserver(observer); 42 } 43 44 void SystemTrayNotifier::RemoveCapsLockObserver(CapsLockObserver* observer) { 45 caps_lock_observers_.RemoveObserver(observer); 46 } 47 48 void SystemTrayNotifier::AddClockObserver(ClockObserver* observer) { 49 clock_observers_.AddObserver(observer); 50 } 51 52 void SystemTrayNotifier::RemoveClockObserver(ClockObserver* observer) { 53 clock_observers_.RemoveObserver(observer); 54 } 55 56 void SystemTrayNotifier::AddDriveObserver(DriveObserver* observer) { 57 drive_observers_.AddObserver(observer); 58 } 59 60 void SystemTrayNotifier::RemoveDriveObserver(DriveObserver* observer) { 61 drive_observers_.RemoveObserver(observer); 62 } 63 64 void SystemTrayNotifier::AddIMEObserver(IMEObserver* observer) { 65 ime_observers_.AddObserver(observer); 66 } 67 68 void SystemTrayNotifier::RemoveIMEObserver(IMEObserver* observer) { 69 ime_observers_.RemoveObserver(observer); 70 } 71 72 void SystemTrayNotifier::AddLocaleObserver(LocaleObserver* observer) { 73 locale_observers_.AddObserver(observer); 74 } 75 76 void SystemTrayNotifier::RemoveLocaleObserver(LocaleObserver* observer) { 77 locale_observers_.RemoveObserver(observer); 78 } 79 80 void SystemTrayNotifier::AddLogoutButtonObserver( 81 LogoutButtonObserver* observer) { 82 logout_button_observers_.AddObserver(observer); 83 } 84 85 void SystemTrayNotifier::RemoveLogoutButtonObserver( 86 LogoutButtonObserver* observer) { 87 logout_button_observers_.RemoveObserver(observer); 88 } 89 90 void SystemTrayNotifier::AddSessionLengthLimitObserver( 91 SessionLengthLimitObserver* observer) { 92 session_length_limit_observers_.AddObserver(observer); 93 } 94 95 void SystemTrayNotifier::RemoveSessionLengthLimitObserver( 96 SessionLengthLimitObserver* observer) { 97 session_length_limit_observers_.RemoveObserver(observer); 98 } 99 100 void SystemTrayNotifier::AddTracingObserver(TracingObserver* observer) { 101 tracing_observers_.AddObserver(observer); 102 } 103 104 void SystemTrayNotifier::RemoveTracingObserver(TracingObserver* observer) { 105 tracing_observers_.RemoveObserver(observer); 106 } 107 108 void SystemTrayNotifier::AddUpdateObserver(UpdateObserver* observer) { 109 update_observers_.AddObserver(observer); 110 } 111 112 void SystemTrayNotifier::RemoveUpdateObserver(UpdateObserver* observer) { 113 update_observers_.RemoveObserver(observer); 114 } 115 116 void SystemTrayNotifier::AddUserObserver(UserObserver* observer) { 117 user_observers_.AddObserver(observer); 118 } 119 120 void SystemTrayNotifier::RemoveUserObserver(UserObserver* observer) { 121 user_observers_.RemoveObserver(observer); 122 } 123 124 #if defined(OS_CHROMEOS) 125 126 void SystemTrayNotifier::AddNetworkObserver(NetworkObserver* observer) { 127 network_observers_.AddObserver(observer); 128 } 129 130 void SystemTrayNotifier::RemoveNetworkObserver(NetworkObserver* observer) { 131 network_observers_.RemoveObserver(observer); 132 } 133 134 void SystemTrayNotifier::AddEnterpriseDomainObserver( 135 EnterpriseDomainObserver* observer) { 136 enterprise_domain_observers_.AddObserver(observer); 137 } 138 139 void SystemTrayNotifier::RemoveEnterpriseDomainObserver( 140 EnterpriseDomainObserver* observer) { 141 enterprise_domain_observers_.RemoveObserver(observer); 142 } 143 144 void SystemTrayNotifier::AddScreenCaptureObserver( 145 ScreenCaptureObserver* observer) { 146 screen_capture_observers_.AddObserver(observer); 147 } 148 149 void SystemTrayNotifier::RemoveScreenCaptureObserver( 150 ScreenCaptureObserver* observer) { 151 screen_capture_observers_.RemoveObserver(observer); 152 } 153 154 void SystemTrayNotifier::AddScreenShareObserver( 155 ScreenShareObserver* observer) { 156 screen_share_observers_.AddObserver(observer); 157 } 158 159 void SystemTrayNotifier::RemoveScreenShareObserver( 160 ScreenShareObserver* observer) { 161 screen_share_observers_.RemoveObserver(observer); 162 } 163 #endif 164 165 void SystemTrayNotifier::NotifyAccessibilityModeChanged( 166 AccessibilityNotificationVisibility notify) { 167 FOR_EACH_OBSERVER( 168 AccessibilityObserver, 169 accessibility_observers_, 170 OnAccessibilityModeChanged(notify)); 171 } 172 173 void SystemTrayNotifier::NotifyTracingModeChanged(bool value) { 174 FOR_EACH_OBSERVER( 175 TracingObserver, 176 tracing_observers_, 177 OnTracingModeChanged(value)); 178 } 179 180 void SystemTrayNotifier::NotifyRefreshBluetooth() { 181 FOR_EACH_OBSERVER(BluetoothObserver, 182 bluetooth_observers_, 183 OnBluetoothRefresh()); 184 } 185 186 void SystemTrayNotifier::NotifyBluetoothDiscoveringChanged() { 187 FOR_EACH_OBSERVER(BluetoothObserver, 188 bluetooth_observers_, 189 OnBluetoothDiscoveringChanged()); 190 } 191 192 void SystemTrayNotifier::NotifyCapsLockChanged( 193 bool enabled, 194 bool search_mapped_to_caps_lock) { 195 FOR_EACH_OBSERVER(CapsLockObserver, 196 caps_lock_observers_, 197 OnCapsLockChanged(enabled, search_mapped_to_caps_lock)); 198 } 199 200 void SystemTrayNotifier::NotifyRefreshClock() { 201 FOR_EACH_OBSERVER(ClockObserver, clock_observers_, Refresh()); 202 } 203 204 void SystemTrayNotifier::NotifyDateFormatChanged() { 205 FOR_EACH_OBSERVER(ClockObserver, 206 clock_observers_, 207 OnDateFormatChanged()); 208 } 209 210 void SystemTrayNotifier::NotifySystemClockTimeUpdated() { 211 FOR_EACH_OBSERVER(ClockObserver, 212 clock_observers_, 213 OnSystemClockTimeUpdated()); 214 } 215 216 void SystemTrayNotifier::NotifyDriveJobUpdated( 217 const DriveOperationStatus& status) { 218 FOR_EACH_OBSERVER(DriveObserver, 219 drive_observers_, 220 OnDriveJobUpdated(status)); 221 } 222 223 void SystemTrayNotifier::NotifyRefreshIME(bool show_message) { 224 FOR_EACH_OBSERVER(IMEObserver, 225 ime_observers_, 226 OnIMERefresh(show_message)); 227 } 228 229 void SystemTrayNotifier::NotifyShowLoginButtonChanged(bool show_login_button) { 230 FOR_EACH_OBSERVER(LogoutButtonObserver, 231 logout_button_observers_, 232 OnShowLogoutButtonInTrayChanged(show_login_button)); 233 } 234 235 void SystemTrayNotifier::NotifyLocaleChanged( 236 LocaleObserver::Delegate* delegate, 237 const std::string& cur_locale, 238 const std::string& from_locale, 239 const std::string& to_locale) { 240 FOR_EACH_OBSERVER( 241 LocaleObserver, 242 locale_observers_, 243 OnLocaleChanged(delegate, cur_locale, from_locale, to_locale)); 244 } 245 246 void SystemTrayNotifier::NotifySessionStartTimeChanged() { 247 FOR_EACH_OBSERVER(SessionLengthLimitObserver, 248 session_length_limit_observers_, 249 OnSessionStartTimeChanged()); 250 } 251 252 void SystemTrayNotifier::NotifySessionLengthLimitChanged() { 253 FOR_EACH_OBSERVER(SessionLengthLimitObserver, 254 session_length_limit_observers_, 255 OnSessionLengthLimitChanged()); 256 } 257 258 void SystemTrayNotifier::NotifyUpdateRecommended( 259 UpdateObserver::UpdateSeverity severity) { 260 FOR_EACH_OBSERVER(UpdateObserver, 261 update_observers_, 262 OnUpdateRecommended(severity)); 263 } 264 265 void SystemTrayNotifier::NotifyUserUpdate() { 266 FOR_EACH_OBSERVER(UserObserver, 267 user_observers_, 268 OnUserUpdate()); 269 } 270 271 void SystemTrayNotifier::NotifyUserAddedToSession() { 272 FOR_EACH_OBSERVER(UserObserver, 273 user_observers_, 274 OnUserAddedToSession()); 275 } 276 277 #if defined(OS_CHROMEOS) 278 279 void SystemTrayNotifier::NotifyRequestToggleWifi() { 280 FOR_EACH_OBSERVER(NetworkObserver, 281 network_observers_, 282 RequestToggleWifi()); 283 } 284 285 void SystemTrayNotifier::NotifyEnterpriseDomainChanged() { 286 FOR_EACH_OBSERVER(EnterpriseDomainObserver, enterprise_domain_observers_, 287 OnEnterpriseDomainChanged()); 288 } 289 290 void SystemTrayNotifier::NotifyScreenCaptureStart( 291 const base::Closure& stop_callback, 292 const base::string16& sharing_app_name) { 293 FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_, 294 OnScreenCaptureStart(stop_callback, sharing_app_name)); 295 } 296 297 void SystemTrayNotifier::NotifyScreenCaptureStop() { 298 FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_, 299 OnScreenCaptureStop()); 300 } 301 302 void SystemTrayNotifier::NotifyScreenShareStart( 303 const base::Closure& stop_callback, 304 const base::string16& helper_name) { 305 FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_, 306 OnScreenShareStart(stop_callback, helper_name)); 307 } 308 309 void SystemTrayNotifier::NotifyScreenShareStop() { 310 FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_, 311 OnScreenShareStop()); 312 } 313 314 #endif // OS_CHROMEOS 315 316 } // namespace ash 317