Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2942)

Unified Diff: ash/system/tray/system_tray.cc

Issue 11312139: Add SystemTrayObservers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add comment. Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/system/tray/system_tray.h ('k') | ash/system/tray/system_tray_notifier.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/tray/system_tray.cc
diff --git a/ash/system/tray/system_tray.cc b/ash/system/tray/system_tray.cc
index e7d838506923e062ca98f616c2077a915c7d4f06..9ba78008b750a4c7c8f56c4ef144f8f7ad3f9d0e 100644
--- a/ash/system/tray/system_tray.cc
+++ b/ash/system/tray/system_tray.cc
@@ -18,12 +18,12 @@
#include "ash/system/locale/tray_locale.h"
#include "ash/system/logout_button/tray_logout_button.h"
#include "ash/system/monitor/tray_monitor.h"
-#include "ash/system/power/power_status_observer.h"
#include "ash/system/power/power_supply_status.h"
#include "ash/system/power/tray_power.h"
#include "ash/system/settings/tray_settings.h"
#include "ash/system/status_area_widget.h"
#include "ash/system/tray/system_tray_delegate.h"
+#include "ash/system/tray/system_tray_notifier.h"
#include "ash/system/tray/system_tray_item.h"
#include "ash/system/tray/tray_bubble_wrapper.h"
#include "ash/system/tray/tray_constants.h"
@@ -107,23 +107,6 @@ using internal::SystemTrayBubble;
SystemTray::SystemTray(internal::StatusAreaWidget* status_area_widget)
: internal::TrayBackgroundView(status_area_widget),
items_(),
- accessibility_observer_(NULL),
- audio_observer_(NULL),
- bluetooth_observer_(NULL),
- brightness_observer_(NULL),
- caps_lock_observer_(NULL),
- clock_observer_(NULL),
- drive_observer_(NULL),
- ime_observer_(NULL),
- locale_observer_(NULL),
- logout_button_observer_(NULL),
-#if defined(OS_CHROMEOS)
- network_observer_(NULL),
- vpn_observer_(NULL),
- sms_observer_(NULL),
-#endif
- update_observer_(NULL),
- user_observer_(NULL),
default_bubble_height_(0),
hide_notifications_(false) {
SetContentsBackground();
@@ -140,47 +123,54 @@ SystemTray::~SystemTray() {
}
}
-void SystemTray::CreateItems() {
+void SystemTray::InitializeTrayItems(SystemTrayDelegate* delegate) {
+ internal::TrayBackgroundView::Initialize();
+ CreateItems(delegate);
+}
+
+void SystemTray::CreateItems(SystemTrayDelegate* delegate) {
internal::TrayVolume* tray_volume = new internal::TrayVolume();
internal::TrayBluetooth* tray_bluetooth = new internal::TrayBluetooth();
internal::TrayBrightness* tray_brightness = new internal::TrayBrightness();
internal::TrayDate* tray_date = new internal::TrayDate();
internal::TrayPower* tray_power = new internal::TrayPower();
- internal::TrayIME* tray_ime = new internal::TrayIME;
- internal::TrayUser* tray_user = new internal::TrayUser;
+ internal::TrayIME* tray_ime = new internal::TrayIME();
+ internal::TrayUser* tray_user = new internal::TrayUser();
internal::TrayAccessibility* tray_accessibility =
- new internal::TrayAccessibility;
- internal::TrayCapsLock* tray_caps_lock = new internal::TrayCapsLock;
- internal::TrayDrive* tray_drive = new internal::TrayDrive;
- internal::TrayLocale* tray_locale = new internal::TrayLocale;
+ new internal::TrayAccessibility();
+ internal::TrayCapsLock* tray_caps_lock = new internal::TrayCapsLock();
+ internal::TrayDrive* tray_drive = new internal::TrayDrive();
+ internal::TrayLocale* tray_locale = new internal::TrayLocale();
internal::TrayLogoutButton* tray_logout_button =
new internal::TrayLogoutButton();
- internal::TrayUpdate* tray_update = new internal::TrayUpdate;
+ internal::TrayUpdate* tray_update = new internal::TrayUpdate();
internal::TraySettings* tray_settings = new internal::TraySettings();
-
- accessibility_observer_ = tray_accessibility;
- audio_observer_ = tray_volume;
- bluetooth_observer_ = tray_bluetooth;
- brightness_observer_ = tray_brightness;
- caps_lock_observer_ = tray_caps_lock;
- clock_observer_ = tray_date;
- drive_observer_ = tray_drive;
- ime_observer_ = tray_ime;
- locale_observer_ = tray_locale;
- logout_button_observer_ = tray_logout_button;
- power_status_observers_.AddObserver(tray_power);
- power_status_observers_.AddObserver(tray_settings);
- update_observer_ = tray_update;
- user_observer_ = tray_user;
-
#if defined(OS_CHROMEOS)
- internal::TrayDisplay* tray_display = new internal::TrayDisplay;
- internal::TrayNetwork* tray_network = new internal::TrayNetwork;
- internal::TrayVPN* tray_vpn = new internal::TrayVPN;
+ internal::TrayDisplay* tray_display = new internal::TrayDisplay();
+ internal::TrayNetwork* tray_network = new internal::TrayNetwork();
+ internal::TrayVPN* tray_vpn = new internal::TrayVPN();
internal::TraySms* tray_sms = new internal::TraySms();
- network_observer_ = tray_network;
- vpn_observer_ = tray_vpn;
- sms_observer_ = tray_sms;
+#endif
+
+ SystemTrayNotifier* notifier = Shell::GetInstance()->system_tray_notifier();
+ notifier->AddAccessibilityObserver(tray_accessibility);
+ notifier->AddAudioObserver(tray_volume);
+ notifier->AddBluetoothObserver(tray_bluetooth);
+ notifier->AddBrightnessObserver(tray_brightness);
+ notifier->AddCapsLockObserver(tray_caps_lock);
+ notifier->AddClockObserver(tray_date);
+ notifier->AddDriveObserver(tray_drive);
+ notifier->AddIMEObserver(tray_ime);
+ notifier->AddLocaleObserver(tray_locale);
+ notifier->AddLogoutButtonObserver(tray_logout_button);
+ notifier->AddPowerStatusObserver(tray_power);
+ notifier->AddPowerStatusObserver(tray_settings);
+ notifier->AddUpdateObserver(tray_update);
+ notifier->AddUserObserver(tray_user);
+#if defined(OS_CHROMEOS)
+ notifier->AddNetworkObserver(tray_network);
+ notifier->AddVpnObserver(tray_vpn);
+ notifier->AddSmsObserver(tray_sms);
#endif
AddTrayItem(tray_logout_button);
@@ -498,11 +488,6 @@ void SystemTray::UpdateNotificationBubble() {
status_area_widget()->SetHideWebNotifications(true);
}
-void SystemTray::Initialize() {
- internal::TrayBackgroundView::Initialize();
- CreateItems();
-}
-
void SystemTray::SetShelfAlignment(ShelfAlignment alignment) {
if (alignment == shelf_alignment())
return;
« no previous file with comments | « ash/system/tray/system_tray.h ('k') | ash/system/tray/system_tray_notifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698