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.
5 #include "ash/system/tray/system_tray_notifier.h"
9 SystemTrayNotifier::SystemTrayNotifier() {
12 SystemTrayNotifier::~SystemTrayNotifier() {
15 void SystemTrayNotifier::AddAccessibilityObserver(
16 AccessibilityObserver
* observer
) {
17 accessibility_observers_
.AddObserver(observer
);
20 void SystemTrayNotifier::RemoveAccessibilityObserver(
21 AccessibilityObserver
* observer
) {
22 accessibility_observers_
.RemoveObserver(observer
);
25 void SystemTrayNotifier::AddAudioObserver(AudioObserver
* observer
) {
26 audio_observers_
.AddObserver(observer
);
29 void SystemTrayNotifier::RemoveAudioObserver(AudioObserver
* observer
) {
30 audio_observers_
.RemoveObserver(observer
);
33 void SystemTrayNotifier::AddBluetoothObserver(BluetoothObserver
* observer
) {
34 bluetooth_observers_
.AddObserver(observer
);
37 void SystemTrayNotifier::RemoveBluetoothObserver(BluetoothObserver
* observer
) {
38 bluetooth_observers_
.RemoveObserver(observer
);
41 void SystemTrayNotifier::AddBrightnessObserver(BrightnessObserver
* observer
) {
42 brightness_observers_
.AddObserver(observer
);
45 void SystemTrayNotifier::RemoveBrightnessObserver(
46 BrightnessObserver
* observer
) {
47 brightness_observers_
.RemoveObserver(observer
);
50 void SystemTrayNotifier::AddCapsLockObserver(CapsLockObserver
* observer
) {
51 caps_lock_observers_
.AddObserver(observer
);
54 void SystemTrayNotifier::RemoveCapsLockObserver(CapsLockObserver
* observer
) {
55 caps_lock_observers_
.RemoveObserver(observer
);
58 void SystemTrayNotifier::AddClockObserver(ClockObserver
* observer
) {
59 clock_observers_
.AddObserver(observer
);
62 void SystemTrayNotifier::RemoveClockObserver(ClockObserver
* observer
) {
63 clock_observers_
.RemoveObserver(observer
);
66 void SystemTrayNotifier::AddDriveObserver(DriveObserver
* observer
) {
67 drive_observers_
.AddObserver(observer
);
70 void SystemTrayNotifier::RemoveDriveObserver(DriveObserver
* observer
) {
71 drive_observers_
.RemoveObserver(observer
);
74 void SystemTrayNotifier::AddIMEObserver(IMEObserver
* observer
) {
75 ime_observers_
.AddObserver(observer
);
78 void SystemTrayNotifier::RemoveIMEObserver(IMEObserver
* observer
) {
79 ime_observers_
.RemoveObserver(observer
);
82 void SystemTrayNotifier::AddLocaleObserver(LocaleObserver
* observer
) {
83 locale_observers_
.AddObserver(observer
);
86 void SystemTrayNotifier::RemoveLocaleObserver(LocaleObserver
* observer
) {
87 locale_observers_
.RemoveObserver(observer
);
90 void SystemTrayNotifier::AddLogoutButtonObserver(
91 LogoutButtonObserver
* observer
) {
92 logout_button_observers_
.AddObserver(observer
);
95 void SystemTrayNotifier::RemoveLogoutButtonObserver(
96 LogoutButtonObserver
* observer
) {
97 logout_button_observers_
.RemoveObserver(observer
);
100 void SystemTrayNotifier::AddPowerStatusObserver(
101 PowerStatusObserver
* observer
) {
102 power_status_observers_
.AddObserver(observer
);
105 void SystemTrayNotifier::RemovePowerStatusObserver(
106 PowerStatusObserver
* observer
) {
107 power_status_observers_
.RemoveObserver(observer
);
110 void SystemTrayNotifier::AddSessionLengthLimitObserver(
111 SessionLengthLimitObserver
* observer
) {
112 session_length_limit_observers_
.AddObserver(observer
);
115 void SystemTrayNotifier::RemoveSessionLengthLimitObserver(
116 SessionLengthLimitObserver
* observer
) {
117 session_length_limit_observers_
.RemoveObserver(observer
);
120 void SystemTrayNotifier::AddUpdateObserver(UpdateObserver
* observer
) {
121 update_observers_
.AddObserver(observer
);
124 void SystemTrayNotifier::RemoveUpdateObserver(UpdateObserver
* observer
) {
125 update_observers_
.RemoveObserver(observer
);
128 void SystemTrayNotifier::AddUserObserver(UserObserver
* observer
) {
129 user_observers_
.AddObserver(observer
);
132 void SystemTrayNotifier::RemoveUserObserver(UserObserver
* observer
) {
133 user_observers_
.RemoveObserver(observer
);
136 #if defined(OS_CHROMEOS)
137 void SystemTrayNotifier::AddNetworkObserver(NetworkObserver
* observer
) {
138 network_observers_
.AddObserver(observer
);
141 void SystemTrayNotifier::RemoveNetworkObserver(NetworkObserver
* observer
) {
142 network_observers_
.RemoveObserver(observer
);
145 void SystemTrayNotifier::AddVpnObserver(NetworkObserver
* observer
) {
146 vpn_observers_
.AddObserver(observer
);
149 void SystemTrayNotifier::RemoveVpnObserver(NetworkObserver
* observer
) {
150 vpn_observers_
.RemoveObserver(observer
);
153 void SystemTrayNotifier::AddSmsObserver(SmsObserver
* observer
) {
154 sms_observers_
.AddObserver(observer
);
157 void SystemTrayNotifier::RemoveSmsObserver(SmsObserver
* observer
) {
158 sms_observers_
.RemoveObserver(observer
);
162 void SystemTrayNotifier::NotifyAccessibilityModeChanged(
163 AccessibilityNotificationVisibility notify
) {
165 AccessibilityObserver
,
166 accessibility_observers_
,
167 OnAccessibilityModeChanged(notify
));
170 void SystemTrayNotifier::NotifyVolumeChanged(float level
) {
171 FOR_EACH_OBSERVER(AudioObserver
,
173 OnVolumeChanged(level
));
176 void SystemTrayNotifier::NotifyMuteToggled() {
177 FOR_EACH_OBSERVER(AudioObserver
,
182 void SystemTrayNotifier::NotifyRefreshBluetooth() {
183 FOR_EACH_OBSERVER(BluetoothObserver
,
184 bluetooth_observers_
,
185 OnBluetoothRefresh());
188 void SystemTrayNotifier::NotifyBluetoothDiscoveringChanged() {
189 FOR_EACH_OBSERVER(BluetoothObserver
,
190 bluetooth_observers_
,
191 OnBluetoothDiscoveringChanged());
194 void SystemTrayNotifier::NotifyBrightnessChanged(double level
,
195 bool user_initiated
) {
198 brightness_observers_
,
199 OnBrightnessChanged(level
, user_initiated
));
202 void SystemTrayNotifier::NotifyCapsLockChanged(
204 bool search_mapped_to_caps_lock
) {
205 FOR_EACH_OBSERVER(CapsLockObserver
,
206 caps_lock_observers_
,
207 OnCapsLockChanged(enabled
, search_mapped_to_caps_lock
));
210 void SystemTrayNotifier::NotifyRefreshClock() {
211 FOR_EACH_OBSERVER(ClockObserver
, clock_observers_
, Refresh());
214 void SystemTrayNotifier::NotifyDateFormatChanged() {
215 FOR_EACH_OBSERVER(ClockObserver
,
217 OnDateFormatChanged());
220 void SystemTrayNotifier::NotifyRefreshDrive(DriveOperationStatusList
& list
) {
221 FOR_EACH_OBSERVER(DriveObserver
,
223 OnDriveRefresh(list
));
226 void SystemTrayNotifier::NotifyRefreshIME(bool show_message
) {
227 FOR_EACH_OBSERVER(IMEObserver
,
229 OnIMERefresh(show_message
));
232 void SystemTrayNotifier::NotifyShowLoginButtonChanged(bool show_login_button
) {
233 FOR_EACH_OBSERVER(LogoutButtonObserver
,
234 logout_button_observers_
,
235 OnShowLogoutButtonInTrayChanged(show_login_button
));
238 void SystemTrayNotifier::NotifyLocaleChanged(
239 LocaleObserver::Delegate
* delegate
,
240 const std::string
& cur_locale
,
241 const std::string
& from_locale
,
242 const std::string
& to_locale
) {
246 OnLocaleChanged(delegate
, cur_locale
, from_locale
, to_locale
));
249 void SystemTrayNotifier::NotifyPowerStatusChanged(
250 const PowerSupplyStatus
& power_status
) {
251 FOR_EACH_OBSERVER(PowerStatusObserver
,
252 power_status_observers_
,
253 OnPowerStatusChanged(power_status
));
256 void SystemTrayNotifier::NotifySessionStartTimeChanged(
257 const base::Time
& session_start_time
) {
258 FOR_EACH_OBSERVER(SessionLengthLimitObserver
,
259 session_length_limit_observers_
,
260 OnSessionStartTimeChanged(session_start_time
));
263 void SystemTrayNotifier::NotifySessionLengthLimitChanged(
264 const base::TimeDelta
& limit
) {
265 FOR_EACH_OBSERVER(SessionLengthLimitObserver
,
266 session_length_limit_observers_
,
267 OnSessionLengthLimitChanged(limit
));
270 void SystemTrayNotifier::NotifyUpdateRecommended(
271 UpdateObserver::UpdateSeverity severity
) {
272 FOR_EACH_OBSERVER(UpdateObserver
,
274 OnUpdateRecommended(severity
));
277 void SystemTrayNotifier::NotifyUserUpdate() {
278 FOR_EACH_OBSERVER(UserObserver
,
283 #if defined(OS_CHROMEOS)
285 void SystemTrayNotifier::NotifyRefreshNetwork(const NetworkIconInfo
&info
) {
286 FOR_EACH_OBSERVER(NetworkObserver
,
288 OnNetworkRefresh(info
));
291 void SystemTrayNotifier::NotifySetNetworkMessage(
292 NetworkTrayDelegate
* delegate
,
293 NetworkObserver::MessageType message_type
,
294 NetworkObserver::NetworkType network_type
,
295 const string16
& title
,
296 const string16
& message
,
297 const std::vector
<string16
>& links
) {
298 FOR_EACH_OBSERVER(NetworkObserver
,
309 void SystemTrayNotifier::NotifyClearNetworkMessage(
310 NetworkObserver::MessageType message_type
) {
311 FOR_EACH_OBSERVER(NetworkObserver
,
313 ClearNetworkMessage(message_type
));
316 void SystemTrayNotifier::NotifyVpnRefreshNetwork(const NetworkIconInfo
&info
) {
317 FOR_EACH_OBSERVER(NetworkObserver
,
319 OnNetworkRefresh(info
));
322 void SystemTrayNotifier::NotifyWillToggleWifi() {
323 FOR_EACH_OBSERVER(NetworkObserver
,
328 void SystemTrayNotifier::NotifyAddSmsMessage(
329 const base::DictionaryValue
& message
) {
330 FOR_EACH_OBSERVER(SmsObserver
, sms_observers_
, AddMessage(message
));
333 #endif // OS_CHROMEOS