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

Unified Diff: ash/system/user/tray_user.cc

Issue 10918215: Refresh Guest session UI (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 8 years, 3 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/system/user/tray_user.h ('k') | chrome/app/theme/default_100_percent/guest_icon.png » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/user/tray_user.cc
diff --git a/ash/system/user/tray_user.cc b/ash/system/user/tray_user.cc
index cfe8dfa895ac413e08d4b3b1a6b3bfeac4f3da1d..9c0f984a5ab32d0e272637065679cc02537f4f14 100644
--- a/ash/system/user/tray_user.cc
+++ b/ash/system/user/tray_user.cc
@@ -251,7 +251,8 @@ class UserView : public views::View,
TrayUser::TrayUser()
: user_(NULL),
- avatar_(NULL) {
+ avatar_(NULL),
+ label_(NULL) {
}
TrayUser::~TrayUser() {
@@ -259,9 +260,18 @@ TrayUser::~TrayUser() {
views::View* TrayUser::CreateTrayView(user::LoginStatus status) {
CHECK(avatar_ == NULL);
- avatar_ = new tray::RoundedImageView(kTrayRoundedBorderRadius);
+ CHECK(label_ == NULL);
+ if (status == user::LOGGED_IN_GUEST) {
+ label_ = new views::Label;
+ ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
+ label_->SetText(bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_GUEST_LABEL));
+ SetupLabelForTray(label_);
+ } else {
+ avatar_ = new tray::RoundedImageView(kTrayRoundedBorderRadius);
+ }
UpdateAfterLoginStatusChange(status);
- return avatar_;
+ return avatar_ ? static_cast<views::View*>(avatar_)
+ : static_cast<views::View*>(label_);
sadrul 2012/09/13 17:11:32 Do you need the cast here?
Dmitry Polukhin 2012/09/13 17:24:16 Unfortunately, yes. Without these casts compiler r
}
views::View* TrayUser::CreateDefaultView(user::LoginStatus status) {
@@ -279,6 +289,7 @@ views::View* TrayUser::CreateDetailedView(user::LoginStatus status) {
void TrayUser::DestroyTrayView() {
avatar_ = NULL;
+ label_ = NULL;
}
void TrayUser::DestroyDefaultView() {
@@ -289,19 +300,43 @@ void TrayUser::DestroyDetailedView() {
}
void TrayUser::UpdateAfterLoginStatusChange(user::LoginStatus status) {
- if (status != user::LOGGED_IN_NONE && status != user::LOGGED_IN_KIOSK &&
- status != user::LOGGED_IN_GUEST) {
- avatar_->SetImage(
- ash::Shell::GetInstance()->tray_delegate()->GetUserImage(),
- gfx::Size(kUserIconSize, kUserIconSize));
- avatar_->SetVisible(true);
- } else {
- avatar_->SetVisible(false);
+ switch (status) {
+ case user::LOGGED_IN_LOCKED:
+ case user::LOGGED_IN_USER:
+ case user::LOGGED_IN_OWNER:
+ avatar_->SetImage(
+ ash::Shell::GetInstance()->tray_delegate()->GetUserImage(),
+ gfx::Size(kUserIconSize, kUserIconSize));
+ avatar_->SetVisible(true);
+ break;
+
+ case user::LOGGED_IN_GUEST:
+ label_->SetVisible(true);
+ break;
+
+ case user::LOGGED_IN_KIOSK:
+ case user::LOGGED_IN_NONE:
+ avatar_->SetVisible(false);
+ break;
}
}
void TrayUser::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {
- SetTrayImageItemBorder(avatar_, alignment);
+ if (avatar_) {
+ SetTrayImageItemBorder(avatar_, alignment);
+ } else {
+ if (alignment == SHELF_ALIGNMENT_BOTTOM) {
+ label_->set_border(views::Border::CreateEmptyBorder(
+ 0, kTrayLabelItemHorizontalPaddingBottomAlignment,
+ 0, kTrayLabelItemHorizontalPaddingBottomAlignment));
+ } else {
+ label_->set_border(views::Border::CreateEmptyBorder(
+ kTrayLabelItemVerticalPaddingVeriticalAlignment,
+ kTrayLabelItemHorizontalPaddingBottomAlignment,
+ kTrayLabelItemVerticalPaddingVeriticalAlignment,
+ kTrayLabelItemHorizontalPaddingBottomAlignment));
+ }
+ }
}
void TrayUser::OnUserUpdate() {
« no previous file with comments | « ash/system/user/tray_user.h ('k') | chrome/app/theme/default_100_percent/guest_icon.png » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698