// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ash/system/tray/system_tray_notifier.h" #if defined(OS_CHROMEOS) #include "ash/system/chromeos/network/network_state_notifier.h" #endif namespace ash { SystemTrayNotifier::SystemTrayNotifier() { #if defined(OS_CHROMEOS) network_state_notifier_.reset(new NetworkStateNotifier()); #endif } SystemTrayNotifier::~SystemTrayNotifier() { } void SystemTrayNotifier::AddAccessibilityObserver( AccessibilityObserver* observer) { accessibility_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveAccessibilityObserver( AccessibilityObserver* observer) { accessibility_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddAudioObserver(AudioObserver* observer) { audio_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveAudioObserver(AudioObserver* observer) { audio_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddBluetoothObserver(BluetoothObserver* observer) { bluetooth_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveBluetoothObserver(BluetoothObserver* observer) { bluetooth_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddClockObserver(ClockObserver* observer) { clock_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveClockObserver(ClockObserver* observer) { clock_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddDriveObserver(DriveObserver* observer) { drive_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveDriveObserver(DriveObserver* observer) { drive_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddIMEObserver(IMEObserver* observer) { ime_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveIMEObserver(IMEObserver* observer) { ime_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddLocaleObserver(LocaleObserver* observer) { locale_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveLocaleObserver(LocaleObserver* observer) { locale_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddTracingObserver(TracingObserver* observer) { tracing_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveTracingObserver(TracingObserver* observer) { tracing_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddUpdateObserver(UpdateObserver* observer) { update_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveUpdateObserver(UpdateObserver* observer) { update_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddUserObserver(UserObserver* observer) { user_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveUserObserver(UserObserver* observer) { user_observers_.RemoveObserver(observer); } #if defined(OS_CHROMEOS) void SystemTrayNotifier::AddLogoutButtonObserver( LogoutButtonObserver* observer) { logout_button_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveLogoutButtonObserver( LogoutButtonObserver* observer) { logout_button_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddSessionLengthLimitObserver( SessionLengthLimitObserver* observer) { session_length_limit_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveSessionLengthLimitObserver( SessionLengthLimitObserver* observer) { session_length_limit_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddNetworkObserver(NetworkObserver* observer) { network_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveNetworkObserver(NetworkObserver* observer) { network_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddNetworkPortalDetectorObserver( NetworkPortalDetectorObserver* observer) { network_portal_detector_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveNetworkPortalDetectorObserver( NetworkPortalDetectorObserver* observer) { network_portal_detector_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddEnterpriseDomainObserver( EnterpriseDomainObserver* observer) { enterprise_domain_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveEnterpriseDomainObserver( EnterpriseDomainObserver* observer) { enterprise_domain_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddMediaCaptureObserver( MediaCaptureObserver* observer) { media_capture_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveMediaCaptureObserver( MediaCaptureObserver* observer) { media_capture_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddScreenCaptureObserver( ScreenCaptureObserver* observer) { screen_capture_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveScreenCaptureObserver( ScreenCaptureObserver* observer) { screen_capture_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddScreenShareObserver( ScreenShareObserver* observer) { screen_share_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveScreenShareObserver( ScreenShareObserver* observer) { screen_share_observers_.RemoveObserver(observer); } void SystemTrayNotifier::AddLastWindowClosedObserver( LastWindowClosedObserver* observer) { last_window_closed_observers_.AddObserver(observer); } void SystemTrayNotifier::RemoveLastWindowClosedObserver( LastWindowClosedObserver* observer) { last_window_closed_observers_.RemoveObserver(observer); } #endif void SystemTrayNotifier::NotifyAccessibilityModeChanged( AccessibilityNotificationVisibility notify) { FOR_EACH_OBSERVER( AccessibilityObserver, accessibility_observers_, OnAccessibilityModeChanged(notify)); } void SystemTrayNotifier::NotifyAudioOutputVolumeChanged() { FOR_EACH_OBSERVER( AudioObserver, audio_observers_, OnOutputVolumeChanged()); } void SystemTrayNotifier::NotifyAudioOutputMuteChanged() { FOR_EACH_OBSERVER( AudioObserver, audio_observers_, OnOutputMuteChanged()); } void SystemTrayNotifier::NotifyAudioNodesChanged() { FOR_EACH_OBSERVER( AudioObserver, audio_observers_, OnAudioNodesChanged()); } void SystemTrayNotifier::NotifyAudioActiveOutputNodeChanged() { FOR_EACH_OBSERVER( AudioObserver, audio_observers_, OnActiveOutputNodeChanged()); } void SystemTrayNotifier::NotifyAudioActiveInputNodeChanged() { FOR_EACH_OBSERVER( AudioObserver, audio_observers_, OnActiveInputNodeChanged()); } void SystemTrayNotifier::NotifyTracingModeChanged(bool value) { FOR_EACH_OBSERVER( TracingObserver, tracing_observers_, OnTracingModeChanged(value)); } void SystemTrayNotifier::NotifyRefreshBluetooth() { FOR_EACH_OBSERVER(BluetoothObserver, bluetooth_observers_, OnBluetoothRefresh()); } void SystemTrayNotifier::NotifyBluetoothDiscoveringChanged() { FOR_EACH_OBSERVER(BluetoothObserver, bluetooth_observers_, OnBluetoothDiscoveringChanged()); } void SystemTrayNotifier::NotifyRefreshClock() { FOR_EACH_OBSERVER(ClockObserver, clock_observers_, Refresh()); } void SystemTrayNotifier::NotifyDateFormatChanged() { FOR_EACH_OBSERVER(ClockObserver, clock_observers_, OnDateFormatChanged()); } void SystemTrayNotifier::NotifySystemClockTimeUpdated() { FOR_EACH_OBSERVER(ClockObserver, clock_observers_, OnSystemClockTimeUpdated()); } void SystemTrayNotifier::NotifySystemClockCanSetTimeChanged(bool can_set_time) { FOR_EACH_OBSERVER(ClockObserver, clock_observers_, OnSystemClockCanSetTimeChanged(can_set_time)); } void SystemTrayNotifier::NotifyDriveJobUpdated( const DriveOperationStatus& status) { FOR_EACH_OBSERVER(DriveObserver, drive_observers_, OnDriveJobUpdated(status)); } void SystemTrayNotifier::NotifyRefreshIME() { FOR_EACH_OBSERVER(IMEObserver, ime_observers_, OnIMERefresh()); } void SystemTrayNotifier::NotifyLocaleChanged( LocaleObserver::Delegate* delegate, const std::string& cur_locale, const std::string& from_locale, const std::string& to_locale) { FOR_EACH_OBSERVER( LocaleObserver, locale_observers_, OnLocaleChanged(delegate, cur_locale, from_locale, to_locale)); } void SystemTrayNotifier::NotifyUpdateRecommended( UpdateObserver::UpdateSeverity severity) { FOR_EACH_OBSERVER(UpdateObserver, update_observers_, OnUpdateRecommended(severity)); } void SystemTrayNotifier::NotifyUserUpdate() { FOR_EACH_OBSERVER(UserObserver, user_observers_, OnUserUpdate()); } void SystemTrayNotifier::NotifyUserAddedToSession() { FOR_EACH_OBSERVER(UserObserver, user_observers_, OnUserAddedToSession()); } #if defined(OS_CHROMEOS) void SystemTrayNotifier::NotifyShowLoginButtonChanged(bool show_login_button) { FOR_EACH_OBSERVER(LogoutButtonObserver, logout_button_observers_, OnShowLogoutButtonInTrayChanged(show_login_button)); } void SystemTrayNotifier::NotifyLogoutDialogDurationChanged( base::TimeDelta duration) { FOR_EACH_OBSERVER(LogoutButtonObserver, logout_button_observers_, OnLogoutDialogDurationChanged(duration)); } void SystemTrayNotifier::NotifySessionStartTimeChanged() { FOR_EACH_OBSERVER(SessionLengthLimitObserver, session_length_limit_observers_, OnSessionStartTimeChanged()); } void SystemTrayNotifier::NotifySessionLengthLimitChanged() { FOR_EACH_OBSERVER(SessionLengthLimitObserver, session_length_limit_observers_, OnSessionLengthLimitChanged()); } void SystemTrayNotifier::NotifyRequestToggleWifi() { FOR_EACH_OBSERVER(NetworkObserver, network_observers_, RequestToggleWifi()); } void SystemTrayNotifier::NotifyOnCaptivePortalDetected( const std::string& service_path) { FOR_EACH_OBSERVER(NetworkPortalDetectorObserver, network_portal_detector_observers_, OnCaptivePortalDetected(service_path)); } void SystemTrayNotifier::NotifyEnterpriseDomainChanged() { FOR_EACH_OBSERVER(EnterpriseDomainObserver, enterprise_domain_observers_, OnEnterpriseDomainChanged()); } void SystemTrayNotifier::NotifyMediaCaptureChanged() { FOR_EACH_OBSERVER( MediaCaptureObserver, media_capture_observers_, OnMediaCaptureChanged()); } void SystemTrayNotifier::NotifyScreenCaptureStart( const base::Closure& stop_callback, const base::string16& sharing_app_name) { FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_, OnScreenCaptureStart(stop_callback, sharing_app_name)); } void SystemTrayNotifier::NotifyScreenCaptureStop() { FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_, OnScreenCaptureStop()); } void SystemTrayNotifier::NotifyScreenShareStart( const base::Closure& stop_callback, const base::string16& helper_name) { FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_, OnScreenShareStart(stop_callback, helper_name)); } void SystemTrayNotifier::NotifyScreenShareStop() { FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_, OnScreenShareStop()); } void SystemTrayNotifier::NotifyLastWindowClosed() { FOR_EACH_OBSERVER(LastWindowClosedObserver, last_window_closed_observers_, OnLastWindowClosed()); } #endif // OS_CHROMEOS } // namespace ash