Upstream version 6.35.121.0
[platform/framework/web/crosswalk.git] / src / ash / system / tray / system_tray_notifier.cc
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::AddAudioObserver(AudioObserver* observer) {
33   audio_observers_.AddObserver(observer);
34 }
35
36 void SystemTrayNotifier::RemoveAudioObserver(AudioObserver* observer) {
37   audio_observers_.RemoveObserver(observer);
38 }
39
40 void SystemTrayNotifier::AddBluetoothObserver(BluetoothObserver* observer) {
41   bluetooth_observers_.AddObserver(observer);
42 }
43
44 void SystemTrayNotifier::RemoveBluetoothObserver(BluetoothObserver* observer) {
45   bluetooth_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::AddTracingObserver(TracingObserver* observer) {
81   tracing_observers_.AddObserver(observer);
82 }
83
84 void SystemTrayNotifier::RemoveTracingObserver(TracingObserver* observer) {
85   tracing_observers_.RemoveObserver(observer);
86 }
87
88 void SystemTrayNotifier::AddUpdateObserver(UpdateObserver* observer) {
89   update_observers_.AddObserver(observer);
90 }
91
92 void SystemTrayNotifier::RemoveUpdateObserver(UpdateObserver* observer) {
93   update_observers_.RemoveObserver(observer);
94 }
95
96 void SystemTrayNotifier::AddUserObserver(UserObserver* observer) {
97   user_observers_.AddObserver(observer);
98 }
99
100 void SystemTrayNotifier::RemoveUserObserver(UserObserver* observer) {
101   user_observers_.RemoveObserver(observer);
102 }
103
104 #if defined(OS_CHROMEOS)
105
106 void SystemTrayNotifier::AddLogoutButtonObserver(
107     LogoutButtonObserver* observer) {
108   logout_button_observers_.AddObserver(observer);
109 }
110
111 void SystemTrayNotifier::RemoveLogoutButtonObserver(
112     LogoutButtonObserver* observer) {
113   logout_button_observers_.RemoveObserver(observer);
114 }
115
116 void SystemTrayNotifier::AddSessionLengthLimitObserver(
117     SessionLengthLimitObserver* observer) {
118   session_length_limit_observers_.AddObserver(observer);
119 }
120
121 void SystemTrayNotifier::RemoveSessionLengthLimitObserver(
122     SessionLengthLimitObserver* observer) {
123   session_length_limit_observers_.RemoveObserver(observer);
124 }
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::AddNetworkPortalDetectorObserver(
135     NetworkPortalDetectorObserver* observer) {
136   network_portal_detector_observers_.AddObserver(observer);
137 }
138
139 void SystemTrayNotifier::RemoveNetworkPortalDetectorObserver(
140     NetworkPortalDetectorObserver* observer) {
141   network_portal_detector_observers_.RemoveObserver(observer);
142 }
143
144 void SystemTrayNotifier::AddEnterpriseDomainObserver(
145     EnterpriseDomainObserver* observer) {
146   enterprise_domain_observers_.AddObserver(observer);
147 }
148
149 void SystemTrayNotifier::RemoveEnterpriseDomainObserver(
150     EnterpriseDomainObserver* observer) {
151   enterprise_domain_observers_.RemoveObserver(observer);
152 }
153
154 void SystemTrayNotifier::AddScreenCaptureObserver(
155     ScreenCaptureObserver* observer) {
156   screen_capture_observers_.AddObserver(observer);
157 }
158
159 void SystemTrayNotifier::RemoveScreenCaptureObserver(
160     ScreenCaptureObserver* observer) {
161   screen_capture_observers_.RemoveObserver(observer);
162 }
163
164 void SystemTrayNotifier::AddScreenShareObserver(
165     ScreenShareObserver* observer) {
166   screen_share_observers_.AddObserver(observer);
167 }
168
169 void SystemTrayNotifier::RemoveScreenShareObserver(
170     ScreenShareObserver* observer) {
171   screen_share_observers_.RemoveObserver(observer);
172 }
173
174 void SystemTrayNotifier::AddLastWindowClosedObserver(
175     LastWindowClosedObserver* observer) {
176   last_window_closed_observers_.AddObserver(observer);
177 }
178
179 void SystemTrayNotifier::RemoveLastWindowClosedObserver(
180     LastWindowClosedObserver* observer) {
181   last_window_closed_observers_.RemoveObserver(observer);
182 }
183 #endif
184
185 void SystemTrayNotifier::NotifyAccessibilityModeChanged(
186     AccessibilityNotificationVisibility notify) {
187   FOR_EACH_OBSERVER(
188       AccessibilityObserver,
189       accessibility_observers_,
190       OnAccessibilityModeChanged(notify));
191 }
192
193 void SystemTrayNotifier::NotifyAudioOutputVolumeChanged() {
194   FOR_EACH_OBSERVER(
195       AudioObserver,
196       audio_observers_,
197       OnOutputVolumeChanged());
198 }
199
200 void SystemTrayNotifier::NotifyAudioOutputMuteChanged() {
201   FOR_EACH_OBSERVER(
202       AudioObserver,
203       audio_observers_,
204       OnOutputMuteChanged());
205 }
206
207 void SystemTrayNotifier::NotifyAudioNodesChanged() {
208   FOR_EACH_OBSERVER(
209       AudioObserver,
210       audio_observers_,
211       OnAudioNodesChanged());
212 }
213
214 void SystemTrayNotifier::NotifyAudioActiveOutputNodeChanged() {
215   FOR_EACH_OBSERVER(
216       AudioObserver,
217       audio_observers_,
218       OnActiveOutputNodeChanged());
219 }
220
221 void SystemTrayNotifier::NotifyAudioActiveInputNodeChanged() {
222   FOR_EACH_OBSERVER(
223       AudioObserver,
224       audio_observers_,
225       OnActiveInputNodeChanged());
226 }
227
228 void SystemTrayNotifier::NotifyTracingModeChanged(bool value) {
229   FOR_EACH_OBSERVER(
230       TracingObserver,
231       tracing_observers_,
232       OnTracingModeChanged(value));
233 }
234
235 void SystemTrayNotifier::NotifyRefreshBluetooth() {
236   FOR_EACH_OBSERVER(BluetoothObserver,
237                     bluetooth_observers_,
238                     OnBluetoothRefresh());
239 }
240
241 void SystemTrayNotifier::NotifyBluetoothDiscoveringChanged() {
242   FOR_EACH_OBSERVER(BluetoothObserver,
243                     bluetooth_observers_,
244                     OnBluetoothDiscoveringChanged());
245 }
246
247 void SystemTrayNotifier::NotifyRefreshClock() {
248   FOR_EACH_OBSERVER(ClockObserver, clock_observers_, Refresh());
249 }
250
251 void SystemTrayNotifier::NotifyDateFormatChanged() {
252   FOR_EACH_OBSERVER(ClockObserver,
253                     clock_observers_,
254                     OnDateFormatChanged());
255 }
256
257 void SystemTrayNotifier::NotifySystemClockTimeUpdated() {
258   FOR_EACH_OBSERVER(ClockObserver,
259                     clock_observers_,
260                     OnSystemClockTimeUpdated());
261 }
262
263 void SystemTrayNotifier::NotifyDriveJobUpdated(
264     const DriveOperationStatus& status) {
265   FOR_EACH_OBSERVER(DriveObserver,
266                     drive_observers_,
267                     OnDriveJobUpdated(status));
268 }
269
270 void SystemTrayNotifier::NotifyRefreshIME() {
271   FOR_EACH_OBSERVER(IMEObserver,
272                     ime_observers_,
273                     OnIMERefresh());
274 }
275
276 void SystemTrayNotifier::NotifyLocaleChanged(
277     LocaleObserver::Delegate* delegate,
278     const std::string& cur_locale,
279     const std::string& from_locale,
280     const std::string& to_locale) {
281   FOR_EACH_OBSERVER(
282       LocaleObserver,
283       locale_observers_,
284       OnLocaleChanged(delegate, cur_locale, from_locale, to_locale));
285 }
286
287 void SystemTrayNotifier::NotifyUpdateRecommended(
288     UpdateObserver::UpdateSeverity severity) {
289   FOR_EACH_OBSERVER(UpdateObserver,
290                     update_observers_,
291                     OnUpdateRecommended(severity));
292 }
293
294 void SystemTrayNotifier::NotifyUserUpdate() {
295   FOR_EACH_OBSERVER(UserObserver,
296                     user_observers_,
297                     OnUserUpdate());
298 }
299
300 void SystemTrayNotifier::NotifyUserAddedToSession() {
301   FOR_EACH_OBSERVER(UserObserver,
302                     user_observers_,
303                     OnUserAddedToSession());
304 }
305
306 #if defined(OS_CHROMEOS)
307
308 void SystemTrayNotifier::NotifyShowLoginButtonChanged(bool show_login_button) {
309   FOR_EACH_OBSERVER(LogoutButtonObserver,
310                     logout_button_observers_,
311                     OnShowLogoutButtonInTrayChanged(show_login_button));
312 }
313
314 void SystemTrayNotifier::NotifyLogoutDialogDurationChanged(
315     base::TimeDelta duration) {
316   FOR_EACH_OBSERVER(LogoutButtonObserver,
317                     logout_button_observers_,
318                     OnLogoutDialogDurationChanged(duration));
319 }
320
321 void SystemTrayNotifier::NotifySessionStartTimeChanged() {
322   FOR_EACH_OBSERVER(SessionLengthLimitObserver,
323                     session_length_limit_observers_,
324                     OnSessionStartTimeChanged());
325 }
326
327 void SystemTrayNotifier::NotifySessionLengthLimitChanged() {
328   FOR_EACH_OBSERVER(SessionLengthLimitObserver,
329                     session_length_limit_observers_,
330                     OnSessionLengthLimitChanged());
331 }
332
333 void SystemTrayNotifier::NotifyRequestToggleWifi() {
334   FOR_EACH_OBSERVER(NetworkObserver,
335                     network_observers_,
336                     RequestToggleWifi());
337 }
338
339 void SystemTrayNotifier::NotifyOnCaptivePortalDetected(
340     const std::string& service_path) {
341   FOR_EACH_OBSERVER(NetworkPortalDetectorObserver,
342                     network_portal_detector_observers_,
343                     OnCaptivePortalDetected(service_path));
344 }
345
346 void SystemTrayNotifier::NotifyEnterpriseDomainChanged() {
347   FOR_EACH_OBSERVER(EnterpriseDomainObserver, enterprise_domain_observers_,
348       OnEnterpriseDomainChanged());
349 }
350
351 void SystemTrayNotifier::NotifyScreenCaptureStart(
352     const base::Closure& stop_callback,
353     const base::string16& sharing_app_name) {
354   FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_,
355                     OnScreenCaptureStart(stop_callback, sharing_app_name));
356 }
357
358 void SystemTrayNotifier::NotifyScreenCaptureStop() {
359   FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_,
360                     OnScreenCaptureStop());
361 }
362
363 void SystemTrayNotifier::NotifyScreenShareStart(
364     const base::Closure& stop_callback,
365     const base::string16& helper_name) {
366   FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_,
367                     OnScreenShareStart(stop_callback, helper_name));
368 }
369
370 void SystemTrayNotifier::NotifyScreenShareStop() {
371   FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_,
372                     OnScreenShareStop());
373 }
374
375 void SystemTrayNotifier::NotifyLastWindowClosed() {
376   FOR_EACH_OBSERVER(LastWindowClosedObserver,
377                     last_window_closed_observers_,
378                     OnLastWindowClosed());
379 }
380
381 #endif  // OS_CHROMEOS
382
383 }  // namespace ash