Commit e9c869eb authored by sadrul@chromium.org's avatar sadrul@chromium.org

ash: Clean up some uber-tray related code.

Rename the various 'Controller's to 'Observer's, because that makes more sense,
and move these observers from Shell into SystemTray.

BUG=110130
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9702037

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126758 0039d316-1c4b-4281-b951-d872f2087c98
parent 883f1432
......@@ -109,18 +109,18 @@
'shell_window_ids.h',
'status_area/status_area_view.cc',
'status_area/status_area_view.h',
'system/audio/audio_controller.h',
'system/audio/audio_observer.h',
'system/audio/tray_volume.cc',
'system/audio/tray_volume.h',
'system/brightness/brightness_controller.h',
'system/brightness/brightness_observer.h',
'system/brightness/brightness_control_delegate.h',
'system/brightness/tray_brightness.cc',
'system/brightness/tray_brightness.h',
'system/network/network_controller.h',
'system/network/network_observer.h',
'system/network/tray_network.cc',
'system/network/tray_network.h',
'system/power/date_format_observer.h',
'system/power/power_status_controller.h',
'system/power/power_status_observer.h',
'system/power/power_supply_status.cc',
'system/power/power_supply_status.h',
'system/power/tray_power_date.cc',
......@@ -139,7 +139,7 @@
'system/user/login_status.h',
'system/user/tray_user.cc',
'system/user/tray_user.h',
'system/user/update_controller.h',
'system/user/update_observer.h',
'tooltips/tooltip_controller.cc',
'tooltips/tooltip_controller.h',
'volume_control_delegate.h',
......
......@@ -19,7 +19,7 @@
#include "ash/system/audio/tray_volume.h"
#include "ash/system/brightness/tray_brightness.h"
#include "ash/system/network/tray_network.h"
#include "ash/system/power/power_status_controller.h"
#include "ash/system/power/power_status_observer.h"
#include "ash/system/power/tray_power_date.h"
#include "ash/system/settings/tray_settings.h"
#include "ash/system/tray/system_tray_delegate.h"
......@@ -340,12 +340,6 @@ Shell::Shell(ShellDelegate* delegate)
screen_(new ScreenAsh(root_window_.get())),
root_filter_(NULL),
delegate_(delegate),
audio_controller_(NULL),
brightness_controller_(NULL),
date_format_observer_(NULL),
network_controller_(NULL),
power_status_controller_(NULL),
update_controller_(NULL),
shelf_(NULL),
desktop_background_mode_(BACKGROUND_IMAGE),
root_window_layout_(NULL),
......@@ -501,12 +495,12 @@ void Shell::Init() {
internal::TrayPowerDate* tray_power_date = new internal::TrayPowerDate();
internal::TrayNetwork* tray_network = new internal::TrayNetwork;
internal::TrayUser* tray_user = new internal::TrayUser;
audio_controller_ = tray_volume;
brightness_controller_ = tray_brightness;
date_format_observer_ = tray_power_date;
network_controller_ = tray_network;
power_status_controller_ = tray_power_date;
update_controller_ = tray_user;
tray_->audio_controller_ = tray_volume;
tray_->brightness_controller_ = tray_brightness;
tray_->date_format_observer_ = tray_power_date;
tray_->network_controller_ = tray_network;
tray_->power_status_controller_ = tray_power_date;
tray_->update_controller_ = tray_user;
tray_->AddTrayItem(tray_user);
tray_->AddTrayItem(new internal::TrayEmpty());
......
......@@ -40,20 +40,14 @@ class Widget;
namespace ash {
class AcceleratorController;
class AudioController;
class BrightnessController;
class DateFormatObserver;
class Launcher;
class NestedDispatcherController;
class NetworkController;
class PowerButtonController;
class PowerStatusController;
class ScreenAsh;
class ShellDelegate;
class ShellObserver;
class SystemTrayDelegate;
class SystemTray;
class UpdateController;
class VideoDetector;
class WindowCycleController;
......@@ -194,24 +188,6 @@ class ASH_EXPORT Shell {
internal::FocusCycler* focus_cycler() {
return focus_cycler_.get();
}
AudioController* audio_controller() const {
return audio_controller_;
}
BrightnessController* brightness_controller() const {
return brightness_controller_;
}
DateFormatObserver* date_format_observer() const {
return date_format_observer_;
}
NetworkController* network_controller() const {
return network_controller_;
}
PowerStatusController* power_status_controller() const {
return power_status_controller_;
}
UpdateController* update_controller() const {
return update_controller_;
}
ShellDelegate* delegate() { return delegate_.get(); }
SystemTrayDelegate* tray_delegate() { return tray_delegate_.get(); }
......@@ -292,14 +268,6 @@ class ASH_EXPORT Shell {
scoped_ptr<WindowCycleController> window_cycle_controller_;
scoped_ptr<internal::FocusCycler> focus_cycler_;
// These controllers are not owned by the shell.
AudioController* audio_controller_;
BrightnessController* brightness_controller_;
DateFormatObserver* date_format_observer_;
NetworkController* network_controller_;
PowerStatusController* power_status_controller_;
UpdateController* update_controller_;
// An event filter that pre-handles all key events to send them to an IME.
scoped_ptr<internal::InputMethodEventFilter> input_method_filter_;
......
......@@ -2,20 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SYSTEM_AUDIO_AUDIO_CONTROLLER_H_
#define ASH_SYSTEM_AUDIO_AUDIO_CONTROLLER_H_
#ifndef ASH_SYSTEM_AUDIO_AUDIO_OBSERVER_H_
#define ASH_SYSTEM_AUDIO_AUDIO_OBSERVER_H_
#include "ash/ash_export.h"
namespace ash {
class ASH_EXPORT AudioController {
class ASH_EXPORT AudioObserver {
public:
virtual ~AudioController() {}
virtual ~AudioObserver() {}
virtual void OnVolumeChanged(float percent) = 0;
};
} // namespace ash
#endif //ASH_SYSTEM_AUDIO_AUDIO_CONTROLLER_H_
#endif //ASH_SYSTEM_AUDIO_AUDIO_OBSERVER_H_
......@@ -6,7 +6,7 @@
#define ASH_SYSTEM_AUDIO_TRAY_VOLUME_H_
#pragma once
#include "ash/system/audio/audio_controller.h"
#include "ash/system/audio/audio_observer.h"
#include "ash/system/tray/system_tray_item.h"
#include "base/memory/scoped_ptr.h"
......@@ -18,7 +18,7 @@ class VolumeView;
}
class TrayVolume : public SystemTrayItem,
public AudioController {
public AudioObserver {
public:
TrayVolume();
virtual ~TrayVolume();
......@@ -32,7 +32,7 @@ class TrayVolume : public SystemTrayItem,
virtual void DestroyDefaultView() OVERRIDE;
virtual void DestroyDetailedView() OVERRIDE;
// Overridden from AudioController.
// Overridden from AudioObserver.
virtual void OnVolumeChanged(float percent) OVERRIDE;
scoped_ptr<tray::VolumeView> volume_view_;
......
......@@ -2,20 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SYSTEM_BRIGHTNESS_BRIGHTNESS_CONTROLLER_H_
#define ASH_SYSTEM_BRIGHTNESS_BRIGHTNESS_CONTROLLER_H_
#ifndef ASH_SYSTEM_BRIGHTNESS_BRIGHTNESS_OBSERVER_H_
#define ASH_SYSTEM_BRIGHTNESS_BRIGHTNESS_OBSERVER_H_
#include "ash/ash_export.h"
namespace ash {
class ASH_EXPORT BrightnessController {
class ASH_EXPORT BrightnessObserver {
public:
virtual ~BrightnessController() {}
virtual ~BrightnessObserver() {}
virtual void OnBrightnessChanged(float percent, bool user_initiated) = 0;
};
} // namespace ash
#endif // ASH_SYSTEM_BRIGHTNESS_BRIGHTNESS_CONTROLLER_H_
#endif // ASH_SYSTEM_BRIGHTNESS_BRIGHTNESS_OBSERVER_H_
......@@ -6,7 +6,7 @@
#define ASH_SYSTEM_BRIGHTNESS_TRAY_BRIGHTNESS_H_
#pragma once
#include "ash/system/brightness/brightness_controller.h"
#include "ash/system/brightness/brightness_observer.h"
#include "ash/system/tray/system_tray_item.h"
#include "base/compiler_specific.h"
......@@ -18,7 +18,7 @@ class BrightnessView;
}
class TrayBrightness : public SystemTrayItem,
public BrightnessController {
public BrightnessObserver {
public:
TrayBrightness();
virtual ~TrayBrightness();
......@@ -32,7 +32,7 @@ class TrayBrightness : public SystemTrayItem,
virtual void DestroyDefaultView() OVERRIDE;
virtual void DestroyDetailedView() OVERRIDE;
// Overridden from BrightnessController.
// Overridden from BrightnessObserver.
virtual void OnBrightnessChanged(float percent,
bool user_initiated) OVERRIDE;
......
......@@ -2,21 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SYSTEM_NETWORK_NETWORK_CONTROLLER_H
#define ASH_SYSTEM_NETWORK_NETWORK_CONTROLLER_H
#ifndef ASH_SYSTEM_NETWORK_NETWORK_OBSERVER_H
#define ASH_SYSTEM_NETWORK_NETWORK_OBSERVER_H
#pragma once
namespace ash {
struct NetworkIconInfo;
class NetworkController {
class NetworkObserver {
public:
virtual ~NetworkController() {}
virtual ~NetworkObserver() {}
virtual void OnNetworkRefresh(const NetworkIconInfo& info) = 0;
};
} // namespace ash
#endif // ASH_SYSTEM_NETWORK_NETWORK_CONTROLLER_H
#endif // ASH_SYSTEM_NETWORK_NETWORK_OBSERVER_H
......@@ -6,7 +6,7 @@
#define ASH_SYSTEM_NETWORK_TRAY_NETWORK_H
#pragma once
#include "ash/system/network/network_controller.h"
#include "ash/system/network/network_observer.h"
#include "ash/system/tray/system_tray_item.h"
#include "base/memory/scoped_ptr.h"
......@@ -20,7 +20,7 @@ class NetworkTrayView;
}
class TrayNetwork : public SystemTrayItem,
public NetworkController {
public NetworkObserver {
public:
TrayNetwork();
virtual ~TrayNetwork();
......@@ -34,7 +34,7 @@ class TrayNetwork : public SystemTrayItem,
virtual void DestroyDefaultView() OVERRIDE;
virtual void DestroyDetailedView() OVERRIDE;
// Overridden from NetworkController.
// Overridden from NetworkObserver.
virtual void OnNetworkRefresh(const NetworkIconInfo& info) OVERRIDE;
scoped_ptr<tray::NetworkTrayView> tray_;
......
......@@ -2,20 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SYSTEM_POWER_POWER_STATUS_CONTROLLER_H_
#define ASH_SYSTEM_POWER_POWER_STATUS_CONTROLLER_H_
#ifndef ASH_SYSTEM_POWER_POWER_STATUS_OBSERVER_H_
#define ASH_SYSTEM_POWER_POWER_STATUS_OBSERVER_H_
namespace ash {
struct PowerSupplyStatus;
class PowerStatusController {
class PowerStatusObserver {
public:
virtual ~PowerStatusController() {}
virtual ~PowerStatusObserver() {}
virtual void OnPowerStatusChanged(const PowerSupplyStatus& status) = 0;
};
};
#endif // ASH_SYSTEM_POWER_POWER_STATUS_CONTROLLER_H_
#endif // ASH_SYSTEM_POWER_POWER_STATUS_OBSERVER_H_
......@@ -7,7 +7,7 @@
#pragma once
#include "ash/system/power/date_format_observer.h"
#include "ash/system/power/power_status_controller.h"
#include "ash/system/power/power_status_observer.h"
#include "ash/system/tray/system_tray_item.h"
namespace ash {
......@@ -20,7 +20,7 @@ class PowerTrayView;
}
class TrayPowerDate : public SystemTrayItem,
public PowerStatusController,
public PowerStatusObserver,
public DateFormatObserver {
public:
TrayPowerDate();
......@@ -35,7 +35,7 @@ class TrayPowerDate : public SystemTrayItem,
virtual void DestroyDefaultView() OVERRIDE;
virtual void DestroyDetailedView() OVERRIDE;
// Overridden from PowerStatusController.
// Overridden from PowerStatusObserver.
virtual void OnPowerStatusChanged(const PowerSupplyStatus& status) OVERRIDE;
// Overridden from DateFormatObserver.
......
......@@ -288,6 +288,12 @@ NetworkIconInfo::~NetworkIconInfo() {
SystemTray::SystemTray()
: items_(),
audio_controller_(NULL),
brightness_controller_(NULL),
date_format_observer_(NULL),
network_controller_(NULL),
power_status_controller_(NULL),
update_controller_(NULL),
bubble_(NULL),
popup_(NULL) {
container_ = new views::View;
......
......@@ -16,6 +16,13 @@
namespace ash {
class AudioObserver;
class BrightnessObserver;
class DateFormatObserver;
class NetworkObserver;
class PowerStatusObserver;
class UpdateObserver;
class SystemTrayItem;
namespace internal {
......@@ -48,7 +55,28 @@ class ASH_EXPORT SystemTray : public views::View,
const std::vector<SystemTrayItem*>& items() const { return items_; }
AudioObserver* audio_controller() const {
return audio_controller_;
}
BrightnessObserver* brightness_controller() const {
return brightness_controller_;
}
DateFormatObserver* date_format_observer() const {
return date_format_observer_;
}
NetworkObserver* network_controller() const {
return network_controller_;
}
PowerStatusObserver* power_status_controller() const {
return power_status_controller_;
}
UpdateObserver* update_controller() const {
return update_controller_;
}
private:
friend class Shell;
void ShowItems(std::vector<SystemTrayItem*>& items,
bool details,
bool activate);
......@@ -67,6 +95,14 @@ class ASH_EXPORT SystemTray : public views::View,
// The container for all the tray views of the items.
views::View* container_;
// These observers are not owned by the tray.
AudioObserver* audio_controller_;
BrightnessObserver* brightness_controller_;
DateFormatObserver* date_format_observer_;
NetworkObserver* network_controller_;
PowerStatusObserver* power_status_controller_;
UpdateObserver* update_controller_;
// The popup widget and the delegate.
internal::SystemTrayBubble* bubble_;
views::Widget* popup_;
......
......@@ -7,7 +7,7 @@
#pragma once
#include "ash/system/tray/system_tray_item.h"
#include "ash/system/user/update_controller.h"
#include "ash/system/user/update_observer.h"
namespace ash {
namespace internal {
......@@ -17,7 +17,7 @@ class UserView;
}
class TrayUser : public SystemTrayItem,
public UpdateController {
public UpdateObserver {
public:
TrayUser();
virtual ~TrayUser();
......@@ -31,7 +31,7 @@ class TrayUser : public SystemTrayItem,
virtual void DestroyDefaultView() OVERRIDE;
virtual void DestroyDetailedView() OVERRIDE;
// Overridden from UpdateController.
// Overridden from UpdateObserver.
virtual void OnUpdateRecommended() OVERRIDE;
scoped_ptr<tray::UserView> user_;
......
......@@ -2,20 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SYSTEM_USER_UPDATE_CONTROLLER_H_
#define ASH_SYSTEM_USER_UPDATE_CONTROLLER_H_
#ifndef ASH_SYSTEM_USER_UPDATE_OBSERVER_H_
#define ASH_SYSTEM_USER_UPDATE_OBSERVER_H_
#include "ash/ash_export.h"
namespace ash {
class ASH_EXPORT UpdateController {
class ASH_EXPORT UpdateObserver {
public:
virtual ~UpdateController() {}
virtual ~UpdateObserver() {}
virtual void OnUpdateRecommended() = 0;
};
} // namespace ash
#endif //ASH_SYSTEM_USER_UPDATE_CONTROLLER_H_
#endif //ASH_SYSTEM_USER_UPDATE_OBSERVER_H_
......@@ -6,14 +6,14 @@
#include "ash/shell.h"
#include "ash/shell_window_ids.h"
#include "ash/system/audio/audio_controller.h"
#include "ash/system/brightness/brightness_controller.h"
#include "ash/system/network/network_controller.h"
#include "ash/system/audio/audio_observer.h"
#include "ash/system/brightness/brightness_observer.h"
#include "ash/system/network/network_observer.h"
#include "ash/system/power/date_format_observer.h"
#include "ash/system/power/power_status_controller.h"
#include "ash/system/power/power_status_observer.h"
#include "ash/system/tray/system_tray.h"
#include "ash/system/tray/system_tray_delegate.h"
#include "ash/system/user/update_controller.h"
#include "ash/system/user/update_observer.h"
#include "base/logging.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/chromeos/audio/audio_handler.h"
......@@ -273,12 +273,12 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
}
void NotifyRefreshNetwork() {
ash::NetworkController* controller =
ash::Shell::GetInstance()->network_controller();
if (controller) {
ash::NetworkObserver* observer =
ash::Shell::GetInstance()->tray()->network_controller();
if (observer) {
ash::NetworkIconInfo info;
info.image = network_icon_->GetIconAndText(&info.description);
controller->OnNetworkRefresh(info);
observer->OnNetworkRefresh(info);
}
}
......@@ -305,18 +305,18 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
// Overridden from AudioHandler::VolumeObserver.
virtual void OnVolumeChanged() OVERRIDE {
float level = AudioHandler::GetInstance()->GetVolumePercent() / 100.f;
ash::Shell::GetInstance()->audio_controller()->
ash::Shell::GetInstance()->tray()->audio_controller()->
OnVolumeChanged(level);
}
// Overridden from PowerManagerClient::Observer.
virtual void BrightnessChanged(int level, bool user_initiated) OVERRIDE {
ash::Shell::GetInstance()->brightness_controller()->
ash::Shell::GetInstance()->tray()->brightness_controller()->
OnBrightnessChanged(level / 100.f, user_initiated);
}
virtual void PowerChanged(const PowerSupplyStatus& power_status) OVERRIDE {
ash::Shell::GetInstance()->power_status_controller()->
ash::Shell::GetInstance()->tray()->power_status_controller()->
OnPowerStatusChanged(power_status);
}
......@@ -390,17 +390,17 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
break;
}
case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: {
ash::UpdateController* controller =
ash::Shell::GetInstance()->update_controller();
if (controller)
controller->OnUpdateRecommended();
ash::UpdateObserver* observer =
ash::Shell::GetInstance()->tray()->update_controller();
if (observer)
observer->OnUpdateRecommended();
break;
}
case chrome::NOTIFICATION_PREF_CHANGED: {
DCHECK_EQ(*content::Details<std::string>(details).ptr(),
prefs::kUse24HourClock);
ash::DateFormatObserver* observer =
ash::Shell::GetInstance()->date_format_observer();
ash::Shell::GetInstance()->tray()->date_format_observer();
if (observer)
observer->OnDateFormatChanged();
break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment