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

Side by Side Diff: chrome/browser/chromeos/login/user_controller.cc

Issue 5552003: Login pod visual enhancements. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome/browser/chromeos/login
Patch Set: nits Created 10 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/login/user_controller.h" 5 #include "chrome/browser/chromeos/login/user_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
11 #include "app/resource_bundle.h" 11 #include "app/resource_bundle.h"
12 #include "base/stringprintf.h" 12 #include "base/stringprintf.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "chrome/browser/chromeos/user_cros_settings_provider.h" 14 #include "chrome/browser/chromeos/user_cros_settings_provider.h"
15 #include "chrome/browser/chromeos/login/existing_user_view.h" 15 #include "chrome/browser/chromeos/login/existing_user_view.h"
16 #include "chrome/browser/chromeos/login/guest_user_view.h" 16 #include "chrome/browser/chromeos/login/guest_user_view.h"
17 #include "chrome/browser/chromeos/login/helper.h" 17 #include "chrome/browser/chromeos/login/helper.h"
18 #include "chrome/browser/chromeos/login/rounded_rect_painter.h" 18 #include "chrome/browser/chromeos/login/rounded_rect_painter.h"
19 #include "chrome/browser/chromeos/login/rounded_view.h"
20 #include "chrome/browser/chromeos/login/user_view.h" 19 #include "chrome/browser/chromeos/login/user_view.h"
21 #include "chrome/browser/chromeos/login/username_view.h" 20 #include "chrome/browser/chromeos/login/username_view.h"
22 #include "chrome/browser/chromeos/login/wizard_controller.h" 21 #include "chrome/browser/chromeos/login/wizard_controller.h"
23 #include "chrome/common/notification_service.h" 22 #include "chrome/common/notification_service.h"
24 #include "chrome/common/notification_type.h" 23 #include "chrome/common/notification_type.h"
25 #include "cros/chromeos_wm_ipc_enums.h" 24 #include "cros/chromeos_wm_ipc_enums.h"
26 #include "gfx/canvas.h" 25 #include "gfx/canvas.h"
27 #include "grit/generated_resources.h" 26 #include "grit/generated_resources.h"
28 #include "grit/theme_resources.h" 27 #include "grit/theme_resources.h"
29 #include "views/background.h" 28 #include "views/background.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 DISALLOW_COPY_AND_ASSIGN(ClickNotifyingWidget); 79 DISALLOW_COPY_AND_ASSIGN(ClickNotifyingWidget);
81 }; 80 };
82 81
83 void CloseWindow(views::WidgetGtk* window) { 82 void CloseWindow(views::WidgetGtk* window) {
84 if (!window) 83 if (!window)
85 return; 84 return;
86 window->SetWidgetDelegate(NULL); 85 window->SetWidgetDelegate(NULL);
87 window->Close(); 86 window->Close();
88 } 87 }
89 88
90 // Class that sets up half rounded rectangle (only the bottom corners are
91 // rounded) as a clip region of the view.
92 // For more info see the file "chrome/browser/chromeos/login/rounded_view.h".
93 template<typename C>
94 class HalfRoundedView : public chromeos::RoundedView<C> {
95 public:
96 explicit HalfRoundedView(const std::wstring &text): RoundedView<C>(text) {
97 }
98
99 protected:
100 // Overrides ViewFilter.
101 virtual void DrawFrame(gfx::Canvas* canvas) {
102 // No frame is needed.
103 }
104
105 virtual SkRect GetViewRect() const {
106 gfx::Rect bounds = C::GetLocalBounds(false);
107 SkRect view_rect;
108 // The rectangle will be intersected with the bounds, so the correct half
109 // of the round rectangle will be obtained.
110 view_rect.iset(bounds.x(), bounds.y() - bounds.width(),
111 bounds.x() + bounds.width(),
112 bounds.y() + bounds.height());
113 view_rect.inset(2 * rounded_view::kStrokeWidth,
114 2 * rounded_view::kStrokeWidth);
115 return view_rect;
116 }
117 };
118
119 } // namespace 89 } // namespace
120 90
121 using login::kBackgroundColor; 91 using login::kBackgroundColor;
122 using login::kBorderSize; 92 using login::kBorderSize;
123 using login::kTextColor; 93 using login::kTextColor;
124 using login::kUserImageSize; 94 using login::kUserImageSize;
125 95
126 // static 96 // static
127 const int UserController::kPadding = 30; 97 const int UserController::kPadding = 30;
128 98
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 text = l10n_util::GetString(IDS_GUEST); 458 text = l10n_util::GetString(IDS_GUEST);
489 } else if (is_new_user_) { 459 } else if (is_new_user_) {
490 // Add user should have label only in activated state. 460 // Add user should have label only in activated state.
491 // When new user is the only, label is not needed. 461 // When new user is the only, label is not needed.
492 if (type == WM_IPC_WINDOW_LOGIN_LABEL && index != 0) 462 if (type == WM_IPC_WINDOW_LOGIN_LABEL && index != 0)
493 text = l10n_util::GetString(IDS_ADD_USER); 463 text = l10n_util::GetString(IDS_ADD_USER);
494 } else { 464 } else {
495 text = UTF8ToWide(user_.GetDisplayName()); 465 text = UTF8ToWide(user_.GetDisplayName());
496 } 466 }
497 467
498 views::Label *label = is_new_user_ ? 468 views::Label *label = NULL;
499 new views::Label(text) : new HalfRoundedView<UsernameView>(text); 469
470 if (is_new_user_) {
471 label = new views::Label(text);
472 } else if (type == WM_IPC_WINDOW_LOGIN_LABEL) {
473 label = UsernameView::CreateShapedUsernameView(text, false);
474 } else {
475 DCHECK(type == WM_IPC_WINDOW_LOGIN_UNSELECTED_LABEL);
476 // TODO(altimofeev): switch to the rounded username view.
477 label = UsernameView::CreateShapedUsernameView(text, true);
478 }
500 479
501 label->SetColor(kTextColor); 480 label->SetColor(kTextColor);
502 label->SetFont(font); 481 label->SetFont(font);
503 482
504 if (type == WM_IPC_WINDOW_LOGIN_LABEL) 483 if (type == WM_IPC_WINDOW_LOGIN_LABEL)
505 label_view_ = label; 484 label_view_ = label;
506 else 485 else
507 unselected_label_view_ = label; 486 unselected_label_view_ = label;
508 487
509 int width = (type == WM_IPC_WINDOW_LOGIN_LABEL) ? 488 int width = (type == WM_IPC_WINDOW_LOGIN_LABEL) ?
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 550
572 void UserController::SelectUser(int index) { 551 void UserController::SelectUser(int index) {
573 delegate_->SelectUser(index); 552 delegate_->SelectUser(index);
574 } 553 }
575 554
576 void UserController::FocusPasswordField() { 555 void UserController::FocusPasswordField() {
577 existing_user_view_->FocusPasswordField(); 556 existing_user_view_->FocusPasswordField();
578 } 557 }
579 558
580 } // namespace chromeos 559 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/screen_lock_view.cc ('k') | chrome/browser/chromeos/login/user_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698