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

Unified Diff: ash/shell.cc

Issue 10535112: Prepare status area to support multiple trays. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 6 months 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/shell.h ('k') | ash/shell/content_client/shell_browser_main_parts.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/shell.cc
diff --git a/ash/shell.cc b/ash/shell.cc
index c818be5e5cb2ed9cff286d67e76a9c8f2980a54d..565c1697a0451e70346a2cd3a22f5a32998ef0aa 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -25,11 +25,8 @@
#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/status_area_widget.h"
#include "ash/system/tray/system_tray.h"
-#include "ash/system/tray/system_tray_delegate.h"
#include "ash/tooltips/tooltip_controller.h"
#include "ash/touch/touch_observer_hud.h"
#include "ash/wm/activation_controller.h"
@@ -67,7 +64,6 @@
#include "ash/wm/workspace_controller.h"
#include "base/bind.h"
#include "base/command_line.h"
-#include "base/utf_string_conversions.h"
#include "grit/ui_resources.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/client/user_action_client.h"
@@ -216,6 +212,12 @@ void CreateSpecialContainers(aura::RootWindow* root_window) {
"StatusContainer",
lock_screen_related_containers);
+ aura::Window* settings_bubble_container = CreateContainer(
+ internal::kShellWindowId_SettingBubbleContainer,
+ "SettingBubbleContainer",
+ lock_screen_related_containers);
+ SetChildWindowVisibilityChangesAnimated(settings_bubble_container);
+
aura::Window* menu_container = CreateContainer(
internal::kShellWindowId_MenuContainer,
"MenuContainer",
@@ -228,12 +230,6 @@ void CreateSpecialContainers(aura::RootWindow* root_window) {
lock_screen_related_containers);
SetChildWindowVisibilityChangesAnimated(drag_drop_container);
- aura::Window* settings_bubble_container = CreateContainer(
- internal::kShellWindowId_SettingBubbleContainer,
- "SettingBubbleContainer",
- lock_screen_related_containers);
- SetChildWindowVisibilityChangesAnimated(settings_bubble_container);
-
CreateContainer(internal::kShellWindowId_OverlayContainer,
"OverlayContainer",
lock_screen_related_containers);
@@ -263,261 +259,6 @@ class DummyUserWallpaperDelegate : public UserWallpaperDelegate {
DISALLOW_COPY_AND_ASSIGN(DummyUserWallpaperDelegate);
};
-class DummySystemTrayDelegate : public SystemTrayDelegate {
- public:
- DummySystemTrayDelegate()
- : muted_(false),
- wifi_enabled_(true),
- cellular_enabled_(true),
- bluetooth_enabled_(true),
- volume_(0.5),
- caps_lock_enabled_(false) {
- }
-
- virtual ~DummySystemTrayDelegate() {}
-
- private:
- virtual bool GetTrayVisibilityOnStartup() OVERRIDE { return true; }
-
- // Overridden from SystemTrayDelegate:
- virtual const string16 GetUserDisplayName() const OVERRIDE {
- return UTF8ToUTF16("Über tray Über tray Über tray Über tray");
- }
-
- virtual const std::string GetUserEmail() const OVERRIDE {
- return "über@tray";
- }
-
- virtual const gfx::ImageSkia& GetUserImage() const OVERRIDE {
- return null_image_;
- }
-
- virtual user::LoginStatus GetUserLoginStatus() const OVERRIDE {
- return user::LOGGED_IN_USER;
- }
-
- virtual bool SystemShouldUpgrade() const OVERRIDE {
- return true;
- }
-
- virtual base::HourClockType GetHourClockType() const OVERRIDE {
- return base::k24HourClock;
- }
-
- virtual PowerSupplyStatus GetPowerSupplyStatus() const OVERRIDE {
- return PowerSupplyStatus();
- }
-
- virtual void RequestStatusUpdate() const OVERRIDE {
- }
-
- virtual void ShowSettings() OVERRIDE {
- }
-
- virtual void ShowDateSettings() OVERRIDE {
- }
-
- virtual void ShowNetworkSettings() OVERRIDE {
- }
-
- virtual void ShowBluetoothSettings() OVERRIDE {
- }
-
- virtual void ShowDriveSettings() OVERRIDE {
- }
-
- virtual void ShowIMESettings() OVERRIDE {
- }
-
- virtual void ShowHelp() OVERRIDE {
- }
-
- virtual bool IsAudioMuted() const OVERRIDE {
- return muted_;
- }
-
- virtual void SetAudioMuted(bool muted) OVERRIDE {
- muted_ = muted;
- }
-
- virtual float GetVolumeLevel() const OVERRIDE {
- return volume_;
- }
-
- virtual void SetVolumeLevel(float volume) OVERRIDE {
- volume_ = volume;
- }
-
- virtual bool IsCapsLockOn() const OVERRIDE {
- return caps_lock_enabled_;
- }
-
- virtual void SetCapsLockEnabled(bool enabled) OVERRIDE {
- caps_lock_enabled_ = enabled;
- }
-
- virtual bool IsInAccessibilityMode() const OVERRIDE {
- return false;
- }
-
- virtual void SetEnableSpokenFeedback(bool enable) OVERRIDE {}
-
- virtual void ShutDown() OVERRIDE {}
-
- virtual void SignOut() OVERRIDE {
- MessageLoop::current()->Quit();
- }
-
- virtual void RequestLockScreen() OVERRIDE {}
-
- virtual void RequestRestart() OVERRIDE {}
-
- virtual void GetAvailableBluetoothDevices(
- BluetoothDeviceList* list) OVERRIDE {
- }
-
- virtual void ToggleBluetoothConnection(const std::string& address) OVERRIDE {
- }
-
- virtual void GetCurrentIME(IMEInfo* info) OVERRIDE {
- }
-
- virtual void GetAvailableIMEList(IMEInfoList* list) OVERRIDE {
- }
-
- virtual void GetCurrentIMEProperties(IMEPropertyInfoList* list) OVERRIDE {
- }
-
- virtual void SwitchIME(const std::string& ime_id) OVERRIDE {
- }
-
- virtual void ActivateIMEProperty(const std::string& key) OVERRIDE {
- }
-
- virtual void CancelDriveOperation(const FilePath&) OVERRIDE {
- }
-
- virtual void GetDriveOperationStatusList(
- ash::DriveOperationStatusList*) OVERRIDE {
- }
-
- virtual void GetMostRelevantNetworkIcon(NetworkIconInfo* info,
- bool large) OVERRIDE {
- }
-
- virtual void GetAvailableNetworks(
- std::vector<NetworkIconInfo>* list) OVERRIDE {
- }
-
- virtual void ConnectToNetwork(const std::string& network_id) OVERRIDE {
- }
-
- virtual void GetNetworkAddresses(std::string* ip_address,
- std::string* ethernet_mac_address,
- std::string* wifi_mac_address) OVERRIDE {
- *ip_address = "127.0.0.1";
- *ethernet_mac_address = "00:11:22:33:44:55";
- *wifi_mac_address = "66:77:88:99:00:11";
- }
-
- virtual void RequestNetworkScan() OVERRIDE {
- }
-
- virtual void AddBluetoothDevice() OVERRIDE {
- }
-
- virtual void ToggleAirplaneMode() OVERRIDE {
- }
-
- virtual void ToggleWifi() OVERRIDE {
- wifi_enabled_ = !wifi_enabled_;
- ash::NetworkObserver* observer =
- ash::Shell::GetInstance()->system_tray()->network_observer();
- if (observer) {
- ash::NetworkIconInfo info;
- observer->OnNetworkRefresh(info);
- }
- }
-
- virtual void ToggleMobile() OVERRIDE {
- cellular_enabled_ = !cellular_enabled_;
- ash::NetworkObserver* observer =
- ash::Shell::GetInstance()->system_tray()->network_observer();
- if (observer) {
- ash::NetworkIconInfo info;
- observer->OnNetworkRefresh(info);
- }
- }
-
- virtual void ToggleBluetooth() OVERRIDE {
- bluetooth_enabled_ = !bluetooth_enabled_;
- ash::BluetoothObserver* observer =
- ash::Shell::GetInstance()->system_tray()->bluetooth_observer();
- if (observer)
- observer->OnBluetoothRefresh();
- }
-
- virtual void ShowOtherWifi() OVERRIDE {
- }
-
- virtual void ShowOtherCellular() OVERRIDE {
- }
-
- virtual bool IsNetworkConnected() OVERRIDE {
- return true;
- }
-
- virtual bool GetWifiAvailable() OVERRIDE {
- return true;
- }
-
- virtual bool GetMobileAvailable() OVERRIDE {
- return true;
- }
-
- virtual bool GetBluetoothAvailable() OVERRIDE {
- return true;
- }
-
- virtual bool GetWifiEnabled() OVERRIDE {
- return wifi_enabled_;
- }
-
- virtual bool GetMobileEnabled() OVERRIDE {
- return cellular_enabled_;
- }
-
- virtual bool GetBluetoothEnabled() OVERRIDE {
- return bluetooth_enabled_;
- }
-
- virtual bool GetMobileScanSupported() OVERRIDE {
- return true;
- }
-
- virtual bool GetCellularCarrierInfo(std::string* carrier_id,
- std::string* topup_url,
- std::string* setup_url) OVERRIDE {
- return false;
- }
-
- virtual void ShowCellularURL(const std::string& url) OVERRIDE {
- }
-
- virtual void ChangeProxySettings() OVERRIDE {
- }
-
- bool muted_;
- bool wifi_enabled_;
- bool cellular_enabled_;
- bool bluetooth_enabled_;
- float volume_;
- bool caps_lock_enabled_;
- gfx::ImageSkia null_image_;
-
- DISALLOW_COPY_AND_ASSIGN(DummySystemTrayDelegate);
-};
-
} // namespace
// static
@@ -607,9 +348,8 @@ Shell::~Shell() {
// deleted as it has a reference to launcher model.
workspace_controller_.reset();
- // The system tray needs to be reset before all the windows are destroyed.
- system_tray_.reset();
- tray_delegate_.reset();
+ // The status area needs to be shut down before the windows are destroyed.
+ status_area_widget_->Shutdown();
// AppList needs to be released before shelf layout manager, which is
// destroyed with launcher container in the loop below. However, app list
@@ -813,21 +553,8 @@ void Shell::Init() {
event_client_.reset(new internal::EventClientImpl(root_window));
- status_area_widget_ = new internal::StatusAreaWidget;
-
- system_tray_.reset(new SystemTray());
- status_area_widget_->AddTray(system_tray_.get());
- system_tray_->Initialize();
-
- if (delegate_.get()) {
- tray_delegate_.reset(delegate_->CreateSystemTrayDelegate(
- system_tray_.get()));
- }
- if (!tray_delegate_.get())
- tray_delegate_.reset(new DummySystemTrayDelegate());
-
- system_tray_->CreateItems(); // Called after delegate is created.
-
+ status_area_widget_ = new internal::StatusAreaWidget();
+ status_area_widget_->CreateTrayViews(delegate_.get());
status_area_widget_->Show();
// This controller needs to be set before SetupManagedWindowMode.
@@ -1022,6 +749,14 @@ ShelfAlignment Shell::GetShelfAlignment() {
return shelf_->alignment();
}
+SystemTrayDelegate* Shell::tray_delegate() {
+ return status_area_widget_->system_tray_delegate();
+}
+
+SystemTray* Shell::system_tray() {
+ return status_area_widget_->system_tray();
+}
+
int Shell::GetGridSize() const {
return workspace_controller_->workspace_manager()->grid_size();
}
« no previous file with comments | « ash/shell.h ('k') | ash/shell/content_client/shell_browser_main_parts.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698