summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authormattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-01 03:28:41 +0000
committermattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-01 03:28:41 +0000
commita907ba1a5cc0f21c9f63fe077a082c99d29fe0c8 (patch)
treebb8d09b32306d7989786f39b6ef5ab3a3f937829 /ash
parent384cc65f6ec85da77acf1c0c3f657e0f5f03cd5c (diff)
downloadchromium_src-a907ba1a5cc0f21c9f63fe077a082c99d29fe0c8.zip
chromium_src-a907ba1a5cc0f21c9f63fe077a082c99d29fe0c8.tar.gz
chromium_src-a907ba1a5cc0f21c9f63fe077a082c99d29fe0c8.tar.bz2
Revert 124349 - ash uber tray: Add a tray item for the user.
The item includes the logged in users name/email, and buttons to shut-down/signout/lock. BUG=110130 TEST=none Review URL: https://chromiumcodereview.appspot.com/9561003 TBR=sadrul@chromium.org Review URL: https://chromiumcodereview.appspot.com/9545016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124350 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/ash.gyp2
-rw-r--r--ash/shell.cc30
-rw-r--r--ash/system/tray/system_tray.cc2
-rw-r--r--ash/system/tray/system_tray_delegate.h16
-rw-r--r--ash/system/tray_user.cc168
-rw-r--r--ash/system/tray_user.h34
6 files changed, 6 insertions, 246 deletions
diff --git a/ash/ash.gyp b/ash/ash.gyp
index 363e833..d657c0e 100644
--- a/ash/ash.gyp
+++ b/ash/ash.gyp
@@ -123,8 +123,6 @@
'system/tray/system_tray_delegate.h',
'system/tray/system_tray_item.cc',
'system/tray/system_tray_item.h',
- 'system/tray_user.cc',
- 'system/tray_user.h',
'tooltips/tooltip_controller.cc',
'tooltips/tooltip_controller.h',
'volume_control_delegate.h',
diff --git a/ash/shell.cc b/ash/shell.cc
index 4e1612c..d241fba 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -20,7 +20,6 @@
#include "ash/system/settings/tray_settings.h"
#include "ash/system/tray/system_tray_delegate.h"
#include "ash/system/tray/system_tray.h"
-#include "ash/system/tray_user.h"
#include "ash/tooltips/tooltip_controller.h"
#include "ash/wm/activation_controller.h"
#include "ash/wm/base_layout_manager.h"
@@ -51,7 +50,6 @@
#include "ash/wm/workspace/workspace_manager.h"
#include "base/bind.h"
#include "base/command_line.h"
-#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/layout_manager.h"
#include "ui/aura/root_window.h"
@@ -191,18 +189,6 @@ class DummySystemTrayDelegate : public SystemTrayDelegate {
private:
// SystemTrayDelegate implementation.
- virtual const std::string GetUserName() OVERRIDE {
- return "chronos";
- }
-
- virtual const std::string GetUserEmail() OVERRIDE {
- return "chr@nos";
- }
-
- virtual const SkBitmap& GetUserImage() OVERRIDE {
- return null_image_;
- }
-
virtual void ShowSettings() OVERRIDE {
}
@@ -225,13 +211,8 @@ class DummySystemTrayDelegate : public SystemTrayDelegate {
volume_ = volume;
}
- virtual void ShutDown() OVERRIDE {}
- virtual void SignOut() OVERRIDE {}
- virtual void LockScreen() OVERRIDE {}
-
bool muted_;
float volume_;
- SkBitmap null_image_;
DISALLOW_COPY_AND_ASSIGN(DummySystemTrayDelegate);
};
@@ -415,20 +396,19 @@ void Shell::Init() {
tray_.reset(new SystemTray());
status_widget_->GetContentsView()->AddChildView(tray_.get());
- if (delegate_.get())
- tray_delegate_.reset(delegate_->CreateSystemTrayDelegate(tray_.get()));
- if (!tray_delegate_.get())
- tray_delegate_.reset(new DummySystemTrayDelegate());
-
internal::TrayVolume* tray_volume = new internal::TrayVolume();
internal::TrayBrightness* tray_brightness = new internal::TrayBrightness();
audio_controller_ = tray_volume;
brightness_controller_ = tray_brightness;
- tray_->AddTrayItem(new internal::TrayUser());
tray_->AddTrayItem(tray_volume);
tray_->AddTrayItem(tray_brightness);
tray_->AddTrayItem(new internal::TraySettings());
+
+ if (delegate_.get())
+ tray_delegate_.reset(delegate_->CreateSystemTrayDelegate(tray_.get()));
+ if (!tray_delegate_.get())
+ tray_delegate_.reset(new DummySystemTrayDelegate());
}
aura::Window* default_container =
diff --git a/ash/system/tray/system_tray.cc b/ash/system/tray/system_tray.cc
index cbb9128..1f7104a 100644
--- a/ash/system/tray/system_tray.cc
+++ b/ash/system/tray/system_tray.cc
@@ -93,7 +93,7 @@ void SystemTray::AddTrayItem(SystemTrayItem* item) {
views::View* tray_item = item->CreateTrayView();
if (tray_item) {
- AddChildViewAt(tray_item, 0);
+ AddChildView(tray_item);
PreferredSizeChanged();
}
}
diff --git a/ash/system/tray/system_tray_delegate.h b/ash/system/tray/system_tray_delegate.h
index a138de4..1dd44bb 100644
--- a/ash/system/tray/system_tray_delegate.h
+++ b/ash/system/tray/system_tray_delegate.h
@@ -6,19 +6,12 @@
#define ASH_SYSTEM_TRAY_SYSTEM_TRAY_DELEGATE_H_
#pragma once
-class SkBitmap;
-
namespace ash {
class SystemTrayDelegate {
public:
virtual ~SystemTrayDelegate() {}
- // Gets information about the logged in user.
- virtual const std::string GetUserName() = 0;
- virtual const std::string GetUserEmail() = 0;
- virtual const SkBitmap& GetUserImage() = 0;
-
// Shows settings.
virtual void ShowSettings() = 0;
@@ -36,15 +29,6 @@ class SystemTrayDelegate {
// Sets the volume level.
virtual void SetVolumeLevel(float level) = 0;
-
- // Attempts to shut down the system.
- virtual void ShutDown() = 0;
-
- // Attempts to sign out the user.
- virtual void SignOut() = 0;
-
- // Attempts to lock the screen.
- virtual void LockScreen() = 0;
};
} // namespace ash
diff --git a/ash/system/tray_user.cc b/ash/system/tray_user.cc
deleted file mode 100644
index d38be75..0000000
--- a/ash/system/tray_user.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/tray_user.h"
-
-#include "ash/shell.h"
-#include "ash/system/tray/system_tray_delegate.h"
-#include "base/utf_string_conversions.h"
-#include "grit/ui_resources.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/size.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/button/text_button.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/view.h"
-
-namespace {
-
-// A custom textbutton with some extra vertical padding, and custom border,
-// alignment and hover-effects.
-class TrayButton : public views::TextButton {
- public:
- TrayButton(views::ButtonListener* listener, std::string text)
- : views::TextButton(listener, ASCIIToUTF16(text)),
- hover_(false),
- hover_bg_(views::Background::CreateSolidBackground(SkColorSetARGB(
- 10, 0, 0, 0))) {
- set_alignment(ALIGN_CENTER);
- }
-
- private:
- // Overridden from views::View.
- virtual gfx::Size GetPreferredSize() OVERRIDE {
- gfx::Size size = views::TextButton::GetPreferredSize();
- size.Enlarge(0, 16);
- return size;
- }
-
- virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE {
- hover_ = true;
- SchedulePaint();
- }
-
- virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE {
- hover_ = false;
- SchedulePaint();
- }
-
- virtual void OnPaintBackground(gfx::Canvas* canvas) OVERRIDE {
- if (hover_)
- hover_bg_->Paint(canvas, this);
- else
- views::TextButton::OnPaintBackground(canvas);
- }
-
- bool hover_;
- views::Background* hover_bg_;
-
- DISALLOW_COPY_AND_ASSIGN(TrayButton);
-};
-
-class UserView : public views::View,
- public views::ButtonListener {
- public:
- UserView() {
- SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical,
- 0, 0, 3));
-
- views::View* user = new views::View;
- user->SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical,
- 14, 5, 0));
- ash::SystemTrayDelegate* tray = ash::Shell::GetInstance()->tray_delegate();
- username_ = new views::Label(ASCIIToUTF16(tray->GetUserName()));
- username_->SetFont(username_->font().DeriveFont(2));
- username_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- user->AddChildView(username_);
-
- email_ = new views::Label(ASCIIToUTF16(tray->GetUserEmail()));
- email_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- email_->SetEnabled(false);
- user->AddChildView(email_);
-
- AddChildView(user);
-
- views::View* button_container = new views::View;
- views::BoxLayout *layout = new
- views::BoxLayout(views::BoxLayout::kHorizontal, 0, 5, 0);
- layout->set_spread_blank_space(true);
- button_container->SetLayoutManager(layout);
-
- shutdown_ = new TrayButton(this, std::string("Shut down"));
- signout_ = new TrayButton(this, std::string("Sign out"));
- lock_ = new TrayButton(this, std::string("Lock"));
- button_container->AddChildView(shutdown_);
- button_container->AddChildView(signout_);
- button_container->AddChildView(lock_);
-
- shutdown_->set_border(NULL);
- signout_->set_border(views::Border::CreateSolidSidedBorder(
- 0, 1, 0, 1, SkColorSetARGB(25, 0, 0, 0)));
- lock_->set_border(NULL);
-
- AddChildView(button_container);
- }
-
- private:
- // Overridden from views::ButtonListener.
- virtual void ButtonPressed(views::Button* sender,
- const views::Event& event) OVERRIDE {
- ash::SystemTrayDelegate* tray = ash::Shell::GetInstance()->tray_delegate();
- if (sender == shutdown_)
- tray->ShutDown();
- else if (sender == signout_)
- tray->SignOut();
- else if (sender == lock_)
- tray->LockScreen();
- }
-
- views::Label* username_;
- views::Label* email_;
-
- TrayButton* shutdown_;
- TrayButton* signout_;
- TrayButton* lock_;
-
- DISALLOW_COPY_AND_ASSIGN(UserView);
-};
-
-} // namespace
-
-namespace ash {
-namespace internal {
-
-TrayUser::TrayUser() {
-}
-
-TrayUser::~TrayUser() {
-}
-
-views::View* TrayUser::CreateTrayView() {
- views::ImageView* avatar = new views::ImageView;
- avatar->SetImage(ash::Shell::GetInstance()->tray_delegate()->GetUserImage());
- avatar->SetImageSize(gfx::Size(32, 32));
- return avatar;
-}
-
-views::View* TrayUser::CreateDefaultView() {
- return new UserView;
-}
-
-views::View* TrayUser::CreateDetailedView() {
- return NULL;
-}
-
-void TrayUser::DestroyTrayView() {
-}
-
-void TrayUser::DestroyDefaultView() {
-}
-
-void TrayUser::DestroyDetailedView() {
-}
-
-} // namespace internal
-} // namespace ash
diff --git a/ash/system/tray_user.h b/ash/system/tray_user.h
deleted file mode 100644
index 2baede7..0000000
--- a/ash/system/tray_user.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_TRAY_USER_H_
-#define ASH_SYSTEM_TRAY_USER_H_
-#pragma once
-
-#include "ash/system/tray/system_tray_item.h"
-
-namespace ash {
-namespace internal {
-
-class TrayUser : public SystemTrayItem {
- public:
- TrayUser();
- virtual ~TrayUser();
-
- private:
- // Overridden from SystemTrayItem
- virtual views::View* CreateTrayView() OVERRIDE;
- virtual views::View* CreateDefaultView() OVERRIDE;
- virtual views::View* CreateDetailedView() OVERRIDE;
- virtual void DestroyTrayView() OVERRIDE;
- virtual void DestroyDefaultView() OVERRIDE;
- virtual void DestroyDetailedView() OVERRIDE;
-
- DISALLOW_COPY_AND_ASSIGN(TrayUser);
-};
-
-} // namespace internal
-} // namespace ash
-
-#endif // ASH_SYSTEM_TRAY_USER_H_