| 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;
|
|
|