diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-24 15:47:15 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-24 15:47:15 +0000 |
commit | 2aa4813399513f20f6ec95130aa6c4716ca05bb5 (patch) | |
tree | 1a1d6498f37b4d08b8eba875f4da348c65d66e4f /ash/shell.cc | |
parent | 67d41842d49d372d03ca66e357c2b308e71f1217 (diff) | |
download | chromium_src-2aa4813399513f20f6ec95130aa6c4716ca05bb5.zip chromium_src-2aa4813399513f20f6ec95130aa6c4716ca05bb5.tar.gz chromium_src-2aa4813399513f20f6ec95130aa6c4716ca05bb5.tar.bz2 |
ash: Some code-cleanup in the system-tray code.
Move the remaining status-area code into system-tray.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10140017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133691 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/shell.cc')
-rw-r--r-- | ash/shell.cc | 72 |
1 files changed, 64 insertions, 8 deletions
diff --git a/ash/shell.cc b/ash/shell.cc index 83b7aac..e985684 100644 --- a/ash/shell.cc +++ b/ash/shell.cc @@ -22,10 +22,23 @@ #include "ash/shell_delegate.h" #include "ash/shell_factory.h" #include "ash/shell_window_ids.h" -#include "ash/system/bluetooth/bluetooth_observer.h" -#include "ash/system/network/network_observer.h" +#include "ash/system/audio/tray_volume.h" +#include "ash/system/bluetooth/tray_bluetooth.h" +#include "ash/system/brightness/tray_brightness.h" +#include "ash/system/date/tray_date.h" +#include "ash/system/ime/tray_ime.h" +#include "ash/system/network/tray_network.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/tray/system_tray.h" #include "ash/system/tray/system_tray_delegate.h" +#include "ash/system/tray/tray_empty.h" +#include "ash/system/tray_accessibility.h" +#include "ash/system/tray_caps_lock.h" +#include "ash/system/tray_update.h" +#include "ash/system/user/tray_user.h" #include "ash/tooltips/tooltip_controller.h" #include "ash/wm/activation_controller.h" #include "ash/wm/base_layout_manager.h" @@ -517,7 +530,8 @@ Shell::Shell(ShellDelegate* delegate) delegate_(delegate), shelf_(NULL), panel_layout_manager_(NULL), - root_window_layout_(NULL) { + root_window_layout_(NULL), + status_widget_(NULL) { gfx::Screen::SetInstance(screen_); ui_controls::InstallUIControlsAura(CreateUIControlsAura(root_window_.get())); } @@ -667,13 +681,55 @@ void Shell::Init() { CommandLine* command_line = CommandLine::ForCurrentProcess(); + // TODO(sad): All of these initialization should happen in SystemTray. tray_.reset(new SystemTray()); if (delegate_.get()) tray_delegate_.reset(delegate_->CreateSystemTrayDelegate(tray_.get())); if (!tray_delegate_.get()) tray_delegate_.reset(new DummySystemTrayDelegate()); - tray_->CreateItems(); - tray_->CreateWidget(); + + 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::TrayNetwork* tray_network = new internal::TrayNetwork; + internal::TrayUser* tray_user = new internal::TrayUser; + internal::TrayAccessibility* tray_accessibility = + new internal::TrayAccessibility; + internal::TrayCapsLock* tray_caps_lock = new internal::TrayCapsLock; + internal::TrayIME* tray_ime = new internal::TrayIME; + internal::TrayUpdate* tray_update = new internal::TrayUpdate; + + tray_->accessibility_observer_ = tray_accessibility; + tray_->audio_observer_ = tray_volume; + tray_->bluetooth_observer_ = tray_bluetooth; + tray_->brightness_observer_ = tray_brightness; + tray_->caps_lock_observer_ = tray_caps_lock; + tray_->clock_observer_ = tray_date; + tray_->ime_observer_ = tray_ime; + tray_->network_observer_ = tray_network; + tray_->power_status_observer_ = tray_power; + tray_->update_observer_ = tray_update; + tray_->user_observer_ = tray_user; + + tray_->AddTrayItem(tray_user); + tray_->AddTrayItem(new internal::TrayEmpty()); + tray_->AddTrayItem(tray_power); + tray_->AddTrayItem(tray_network); + tray_->AddTrayItem(tray_bluetooth); + tray_->AddTrayItem(tray_ime); + tray_->AddTrayItem(tray_volume); + tray_->AddTrayItem(tray_brightness); + tray_->AddTrayItem(tray_update); + tray_->AddTrayItem(new internal::TraySettings()); + tray_->AddTrayItem(tray_accessibility); + tray_->AddTrayItem(tray_caps_lock); + tray_->AddTrayItem(tray_date); + tray_->SetVisible(tray_delegate_->GetTrayVisibilityOnStartup()); + + // TODO(sad): Replace uses of status_widget_ with tray_->GetWidget(). + status_widget_ = internal::CreateStatusArea(tray_.get()); // This controller needs to be set before SetupManagedWindowMode. desktop_background_controller_.reset(new DesktopBackgroundController); @@ -690,7 +746,7 @@ void Shell::Init() { } focus_cycler_.reset(new internal::FocusCycler()); - focus_cycler_->AddWidget(tray_->widget()); + focus_cycler_->AddWidget(status_widget_); if (!delegate_.get() || delegate_->IsUserLoggedIn()) CreateLauncher(); @@ -858,10 +914,10 @@ bool Shell::IsInMaximizedMode() const { void Shell::InitLayoutManagers() { DCHECK(root_window_layout_); - DCHECK(tray_->widget()); + DCHECK(status_widget_); internal::ShelfLayoutManager* shelf_layout_manager = - new internal::ShelfLayoutManager(tray_->widget()); + new internal::ShelfLayoutManager(status_widget_); GetContainer(internal::kShellWindowId_LauncherContainer)-> SetLayoutManager(shelf_layout_manager); shelf_ = shelf_layout_manager; |