summaryrefslogtreecommitdiffstats
path: root/ash/system
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-16 17:02:15 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-16 17:02:15 +0000
commit26c4f2e43212a484cede7bcb0f6e1889e8fa7b50 (patch)
treefbfb599153658c2a14b3226b47f7a21fde913db6 /ash/system
parent176816e8c46a770a0b3e4ddb16c19154f3960c52 (diff)
downloadchromium_src-26c4f2e43212a484cede7bcb0f6e1889e8fa7b50.zip
chromium_src-26c4f2e43212a484cede7bcb0f6e1889e8fa7b50.tar.gz
chromium_src-26c4f2e43212a484cede7bcb0f6e1889e8fa7b50.tar.bz2
ash: Some more fixes and code cleanups for uber tray.
The changes include: * Fix for power-status reporting. * The hover-background color in the 'main' popup should be the same as in the 'network' popup. * Padding/background color adjustment for the date/power row. * Some more s/controller/observer/ that I missed from an earlier CL. BUG=110130 TEST=none Review URL: https://chromiumcodereview.appspot.com/9694058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127187 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/system')
-rw-r--r--ash/system/network/tray_network.cc5
-rw-r--r--ash/system/power/tray_power_date.cc38
-rw-r--r--ash/system/tray/system_tray.cc12
-rw-r--r--ash/system/tray/system_tray.h30
-rw-r--r--ash/system/tray/system_tray_delegate.h5
-rw-r--r--ash/system/tray/tray_constants.cc5
-rw-r--r--ash/system/tray/tray_constants.h5
7 files changed, 63 insertions, 37 deletions
diff --git a/ash/system/network/tray_network.cc b/ash/system/network/tray_network.cc
index 4d44936..d679675 100644
--- a/ash/system/network/tray_network.cc
+++ b/ash/system/network/tray_network.cc
@@ -7,6 +7,7 @@
#include "ash/shell.h"
#include "ash/system/tray/system_tray.h"
#include "ash/system/tray/system_tray_delegate.h"
+#include "ash/system/tray/tray_constants.h"
#include "base/utf_string_conversions.h"
#include "grit/ash_strings.h"
#include "grit/ui_resources.h"
@@ -97,7 +98,7 @@ class HoverHighlightView : public views::View {
virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE {
set_background(views::Background::CreateSolidBackground(
- SkColorSetARGB(10, 0, 0, 0)));
+ ash::kHoverBackgroundColor));
SchedulePaint();
}
@@ -247,7 +248,7 @@ class NetworkDetailedView : public views::View,
proxy_settings_(NULL) {
SetLayoutManager(new views::BoxLayout(
views::BoxLayout::kVertical, 1, 1, 1));
- set_background(views::Background::CreateSolidBackground(SK_ColorWHITE));
+ set_background(views::Background::CreateSolidBackground(kBackgroundColor));
Update();
}
diff --git a/ash/system/power/tray_power_date.cc b/ash/system/power/tray_power_date.cc
index 87dc2a1..5aceea4 100644
--- a/ash/system/power/tray_power_date.cc
+++ b/ash/system/power/tray_power_date.cc
@@ -87,6 +87,7 @@ class DateView : public views::View {
actionable_(false) {
SetLayoutManager(new views::FillLayout());
label_ = new views::Label;
+ label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
UpdateText();
AddChildView(label_);
}
@@ -280,18 +281,23 @@ TrayPowerDate::~TrayPowerDate() {
}
views::View* TrayPowerDate::CreateTrayView(user::LoginStatus status) {
+ views::View* container = new views::View;
+ container->SetLayoutManager(new views::BoxLayout(
+ views::BoxLayout::kHorizontal, 0, 0, kTrayPaddingBetweenItems));
+
+ PowerSupplyStatus power_status =
+ ash::Shell::GetInstance()->tray_delegate()->GetPowerSupplyStatus();
+ if (power_status.battery_is_present) {
+ power_tray_.reset(new tray::PowerTrayView());
+ power_tray_->UpdatePowerStatus(power_status);
+ container->AddChildView(power_tray_.get());
+ }
+
date_tray_.reset(new tray::DateView(tray::DateView::TIME));
date_tray_->label()->SetFont(
date_tray_->label()->font().DeriveFont(2, gfx::Font::BOLD));
date_tray_->label()->SetAutoColorReadabilityEnabled(false);
date_tray_->label()->SetEnabledColor(SK_ColorWHITE);
-
- power_tray_.reset(new tray::PowerTrayView());
-
- views::View* container = new views::View;
- container->SetLayoutManager(new views::BoxLayout(
- views::BoxLayout::kHorizontal, 0, 0, kTrayPaddingBetweenItems));
- container->AddChildView(power_tray_.get());
container->AddChildView(date_tray_.get());
return container;
@@ -302,17 +308,22 @@ views::View* TrayPowerDate::CreateDefaultView(user::LoginStatus status) {
if (status != user::LOGGED_IN_NONE)
date_->set_actionable(true);
- power_.reset(new tray::PowerPopupView());
-
views::View* container = new views::View;
views::BoxLayout* layout = new
- views::BoxLayout(views::BoxLayout::kHorizontal, 0, 10, 0);
+ views::BoxLayout(views::BoxLayout::kHorizontal, 18, 10, 0);
layout->set_spread_blank_space(true);
container->SetLayoutManager(layout);
container->set_background(views::Background::CreateSolidBackground(
- SkColorSetARGB(255, 240, 240, 240)));
+ SkColorSetRGB(245, 245, 245)));
container->AddChildView(date_.get());
- container->AddChildView(power_.get());
+
+ PowerSupplyStatus power_status =
+ ash::Shell::GetInstance()->tray_delegate()->GetPowerSupplyStatus();
+ if (power_status.battery_is_present) {
+ power_.reset(new tray::PowerPopupView());
+ power_->UpdatePowerStatus(power_status);
+ container->AddChildView(power_.get());
+ }
return container;
}
@@ -334,7 +345,8 @@ void TrayPowerDate::DestroyDetailedView() {
}
void TrayPowerDate::OnPowerStatusChanged(const PowerSupplyStatus& status) {
- power_tray_->UpdatePowerStatus(status);
+ if (power_tray_.get())
+ power_tray_->UpdatePowerStatus(status);
if (power_.get())
power_->UpdatePowerStatus(status);
}
diff --git a/ash/system/tray/system_tray.cc b/ash/system/tray/system_tray.cc
index 3dc143c..3a2d635 100644
--- a/ash/system/tray/system_tray.cc
+++ b/ash/system/tray/system_tray.cc
@@ -47,8 +47,6 @@ const int kShadowHeight = 3;
const SkColor kDarkColor = SkColorSetRGB(120, 120, 120);
const SkColor kLightColor = SkColorSetRGB(240, 240, 240);
-const SkColor kBackgroundColor = SK_ColorWHITE;
-const SkColor kHoverBackgroundColor = SkColorSetRGB(0xfb, 0xfc, 0xfb);
const SkColor kShadowColor = SkColorSetARGB(25, 0, 0, 0);
const SkColor kTrayBackgroundColor = SkColorSetARGB(100, 0, 0, 0);
@@ -327,12 +325,12 @@ NetworkIconInfo::~NetworkIconInfo() {
SystemTray::SystemTray()
: items_(),
- audio_controller_(NULL),
- brightness_controller_(NULL),
+ audio_observer_(NULL),
+ brightness_observer_(NULL),
date_format_observer_(NULL),
- network_controller_(NULL),
- power_status_controller_(NULL),
- update_controller_(NULL),
+ network_observer_(NULL),
+ power_status_observer_(NULL),
+ update_observer_(NULL),
bubble_(NULL),
popup_(NULL) {
container_ = new views::View;
diff --git a/ash/system/tray/system_tray.h b/ash/system/tray/system_tray.h
index 20caab2..b92b7a4 100644
--- a/ash/system/tray/system_tray.h
+++ b/ash/system/tray/system_tray.h
@@ -55,23 +55,23 @@ class ASH_EXPORT SystemTray : public views::View,
const std::vector<SystemTrayItem*>& items() const { return items_; }
- AudioObserver* audio_controller() const {
- return audio_controller_;
+ AudioObserver* audio_observer() const {
+ return audio_observer_;
}
- BrightnessObserver* brightness_controller() const {
- return brightness_controller_;
+ BrightnessObserver* brightness_observer() const {
+ return brightness_observer_;
}
DateFormatObserver* date_format_observer() const {
return date_format_observer_;
}
- NetworkObserver* network_controller() const {
- return network_controller_;
+ NetworkObserver* network_observer() const {
+ return network_observer_;
}
- PowerStatusObserver* power_status_controller() const {
- return power_status_controller_;
+ PowerStatusObserver* power_status_observer() const {
+ return power_status_observer_;
}
- UpdateObserver* update_controller() const {
- return update_controller_;
+ UpdateObserver* update_observer() const {
+ return update_observer_;
}
private:
@@ -96,12 +96,12 @@ class ASH_EXPORT SystemTray : public views::View,
views::View* container_;
// These observers are not owned by the tray.
- AudioObserver* audio_controller_;
- BrightnessObserver* brightness_controller_;
+ AudioObserver* audio_observer_;
+ BrightnessObserver* brightness_observer_;
DateFormatObserver* date_format_observer_;
- NetworkObserver* network_controller_;
- PowerStatusObserver* power_status_controller_;
- UpdateObserver* update_controller_;
+ NetworkObserver* network_observer_;
+ PowerStatusObserver* power_status_observer_;
+ UpdateObserver* update_observer_;
// The popup widget and the delegate.
internal::SystemTrayBubble* bubble_;
diff --git a/ash/system/tray/system_tray_delegate.h b/ash/system/tray/system_tray_delegate.h
index 9d91a38..3ecc9d8 100644
--- a/ash/system/tray/system_tray_delegate.h
+++ b/ash/system/tray/system_tray_delegate.h
@@ -29,6 +29,8 @@ struct ASH_EXPORT NetworkIconInfo {
std::string unique_id;
};
+struct PowerSupplyStatus;
+
class SystemTrayDelegate {
public:
virtual ~SystemTrayDelegate() {}
@@ -48,6 +50,9 @@ class SystemTrayDelegate {
// Returns the desired hour clock type.
virtual base::HourClockType GetHourClockType() const = 0;
+ // Gets the current power supply status.
+ virtual PowerSupplyStatus GetPowerSupplyStatus() const = 0;
+
// Shows settings.
virtual void ShowSettings() = 0;
diff --git a/ash/system/tray/tray_constants.cc b/ash/system/tray/tray_constants.cc
index 89ae3e1..21e3331 100644
--- a/ash/system/tray/tray_constants.cc
+++ b/ash/system/tray/tray_constants.cc
@@ -4,9 +4,14 @@
#include "ash/system/tray/tray_constants.h"
+#include "third_party/skia/include/core/SkColor.h"
+
namespace ash {
const int kTrayPaddingBetweenItems = 8;
const int kTrayPopupAutoCloseDelayInSeconds = 2;
+const SkColor kBackgroundColor = SK_ColorWHITE;
+const SkColor kHoverBackgroundColor = SkColorSetRGB(0xfb, 0xfc, 0xfb);
+
} // namespace ash
diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h
index 5390344..d2a33e4 100644
--- a/ash/system/tray/tray_constants.h
+++ b/ash/system/tray/tray_constants.h
@@ -6,11 +6,16 @@
#define ASH_SYSTEM_TRAY_TRAY_CONSTANTS_H_
#pragma once
+typedef unsigned int SkColor;
+
namespace ash {
extern const int kTrayPaddingBetweenItems;
extern const int kTrayPopupAutoCloseDelayInSeconds;
+extern const SkColor kBackgroundColor;
+extern const SkColor kHoverBackgroundColor;
+
} // namespace ash
#endif // ASH_SYSTEM_TRAY_TRAY_CONSTANTS_H_