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

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

Issue 8221027: Make views::Label and views::Link auto-color themselves to be readable over their background colo... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/new_user_view.h" 5 #include "chrome/browser/chromeos/login/new_user_view.h"
6 6
7 #include <signal.h> 7 #include <signal.h>
8 #include <sys/types.h> 8 #include <sys/types.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/chromeos/user_cros_settings_provider.h" 25 #include "chrome/browser/chromeos/user_cros_settings_provider.h"
26 #include "chrome/browser/chromeos/views/copy_background.h" 26 #include "chrome/browser/chromeos/views/copy_background.h"
27 #include "chrome/browser/prefs/pref_service.h" 27 #include "chrome/browser/prefs/pref_service.h"
28 #include "chrome/common/pref_names.h" 28 #include "chrome/common/pref_names.h"
29 #include "grit/chromium_strings.h" 29 #include "grit/chromium_strings.h"
30 #include "grit/generated_resources.h" 30 #include "grit/generated_resources.h"
31 #include "grit/ui_resources.h" 31 #include "grit/ui_resources.h"
32 #include "ui/base/keycodes/keyboard_codes.h" 32 #include "ui/base/keycodes/keyboard_codes.h"
33 #include "ui/base/l10n/l10n_util.h" 33 #include "ui/base/l10n/l10n_util.h"
34 #include "ui/base/resource/resource_bundle.h" 34 #include "ui/base/resource/resource_bundle.h"
35 #include "ui/gfx/color_utils.h"
35 #include "ui/gfx/font.h" 36 #include "ui/gfx/font.h"
36 #include "views/controls/button/menu_button.h" 37 #include "views/controls/button/menu_button.h"
37 #include "views/controls/button/text_button.h" 38 #include "views/controls/button/text_button.h"
38 #include "views/controls/label.h" 39 #include "views/controls/label.h"
39 #include "views/controls/link.h" 40 #include "views/controls/link.h"
40 #include "views/controls/textfield/textfield.h" 41 #include "views/controls/textfield/textfield.h"
41 #include "views/controls/throbber.h" 42 #include "views/controls/throbber.h"
42 43
43 using views::View; 44 using views::View;
44 45
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 97
97 private: 98 private:
98 chromeos::NewUserView* controller_; 99 chromeos::NewUserView* controller_;
99 DISALLOW_COPY_AND_ASSIGN(UsernameField); 100 DISALLOW_COPY_AND_ASSIGN(UsernameField);
100 }; 101 };
101 102
102 } // namespace 103 } // namespace
103 104
104 namespace chromeos { 105 namespace chromeos {
105 106
106 NewUserView::NewUserView(Delegate* delegate, 107 NewUserView::NewUserView(Delegate* delegate, bool need_guest_link)
107 bool need_border,
108 bool need_guest_link)
109 : username_field_(NULL), 108 : username_field_(NULL),
110 password_field_(NULL), 109 password_field_(NULL),
111 title_label_(NULL), 110 title_label_(NULL),
112 title_hint_label_(NULL), 111 title_hint_label_(NULL),
113 splitter_up1_(NULL), 112 splitter_up1_(NULL),
114 splitter_up2_(NULL), 113 splitter_up2_(NULL),
115 splitter_down1_(NULL), 114 splitter_down1_(NULL),
116 splitter_down2_(NULL), 115 splitter_down2_(NULL),
117 sign_in_button_(NULL), 116 sign_in_button_(NULL),
118 guest_link_(NULL), 117 guest_link_(NULL),
119 create_account_link_(NULL), 118 create_account_link_(NULL),
120 languages_menubutton_(NULL), 119 languages_menubutton_(NULL),
121 accel_focus_pass_(ui::VKEY_P, false, false, true), 120 accel_focus_pass_(ui::VKEY_P, false, false, true),
122 accel_focus_user_(ui::VKEY_U, false, false, true), 121 accel_focus_user_(ui::VKEY_U, false, false, true),
123 accel_enterprise_enrollment_(ui::VKEY_E, false, true, true), 122 accel_enterprise_enrollment_(ui::VKEY_E, false, true, true),
124 accel_login_off_the_record_(ui::VKEY_B, false, false, true), 123 accel_login_off_the_record_(ui::VKEY_B, false, false, true),
125 accel_toggle_accessibility_(WizardAccessibilityHelper::GetAccelerator()), 124 accel_toggle_accessibility_(WizardAccessibilityHelper::GetAccelerator()),
126 delegate_(delegate), 125 delegate_(delegate),
127 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), 126 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
128 login_in_process_(false), 127 login_in_process_(false),
129 need_border_(need_border),
130 need_guest_link_(false), 128 need_guest_link_(false),
131 need_create_account_(false), 129 need_create_account_(false),
132 languages_menubutton_order_(-1), 130 languages_menubutton_order_(-1),
133 sign_in_button_order_(-1) { 131 sign_in_button_order_(-1) {
134 if (UserCrosSettingsProvider::cached_allow_guest()) { 132 if (UserCrosSettingsProvider::cached_allow_guest()) {
135 need_create_account_ = true; 133 need_create_account_ = true;
136 if (need_guest_link) 134 if (need_guest_link)
137 need_guest_link_ = true; 135 need_guest_link_ = true;
138 } 136 }
139 } 137 }
140 138
141 NewUserView::~NewUserView() { 139 NewUserView::~NewUserView() {
142 } 140 }
143 141
144 void NewUserView::Init() { 142 void NewUserView::Init() {
145 if (need_border_) { 143 // Use rounded rect background.
146 // Use rounded rect background. 144 set_border(CreateWizardBorder(&BorderDefinition::kUserBorder));
147 set_border(CreateWizardBorder(&BorderDefinition::kUserBorder)); 145 views::Painter* painter = CreateWizardPainter(&BorderDefinition::kUserBorder);
148 views::Painter* painter = CreateWizardPainter( 146 set_background(views::Background::CreateBackgroundPainter(true, painter));
149 &BorderDefinition::kUserBorder); 147 SkColor background_color = color_utils::AlphaBlend(
150 set_background(views::Background::CreateBackgroundPainter(true, painter)); 148 BorderDefinition::kUserBorder.top_color,
151 } 149 BorderDefinition::kUserBorder.bottom_color, 128);
152 150
153 title_label_ = new views::Label(); 151 title_label_ = new views::Label();
152 title_label_->SetBackgroundColor(background_color);
154 title_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); 153 title_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
155 title_label_->SetMultiLine(true); 154 title_label_->SetMultiLine(true);
156 AddChildView(title_label_); 155 AddChildView(title_label_);
157 156
158 title_hint_label_ = new views::Label(); 157 title_hint_label_ = new views::Label();
158 title_hint_label_->SetBackgroundColor(background_color);
159 title_hint_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); 159 title_hint_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
160 title_hint_label_->SetColor(SK_ColorGRAY); 160 title_hint_label_->SetEnabledColor(SK_ColorGRAY);
161 title_hint_label_->SetMultiLine(true); 161 title_hint_label_->SetMultiLine(true);
162 AddChildView(title_hint_label_); 162 AddChildView(title_hint_label_);
163 163
164 splitter_up1_ = CreateSplitter(kSplitterUp1Color); 164 splitter_up1_ = CreateSplitter(kSplitterUp1Color);
165 splitter_up2_ = CreateSplitter(kSplitterUp2Color); 165 splitter_up2_ = CreateSplitter(kSplitterUp2Color);
166 splitter_down1_ = CreateSplitter(kSplitterDown1Color); 166 splitter_down1_ = CreateSplitter(kSplitterDown1Color);
167 splitter_down2_ = CreateSplitter(kSplitterDown2Color); 167 splitter_down2_ = CreateSplitter(kSplitterDown2Color);
168 168
169 username_field_ = new UsernameField(this); 169 username_field_ = new UsernameField(this);
170 username_field_->set_background(new CopyBackground(this)); 170 username_field_->set_background(new CopyBackground(this));
171 username_field_->SetAccessibleName( 171 username_field_->SetAccessibleName(
172 l10n_util::GetStringUTF16(IDS_CHROMEOS_ACC_USERNAME_LABEL)); 172 l10n_util::GetStringUTF16(IDS_CHROMEOS_ACC_USERNAME_LABEL));
173 AddChildView(username_field_); 173 AddChildView(username_field_);
174 174
175 password_field_ = new TextfieldWithMargin(views::Textfield::STYLE_PASSWORD); 175 password_field_ = new TextfieldWithMargin(views::Textfield::STYLE_PASSWORD);
176 password_field_->set_background(new CopyBackground(this)); 176 password_field_->set_background(new CopyBackground(this));
177 AddChildView(password_field_); 177 AddChildView(password_field_);
178 178
179 language_switch_menu_.InitLanguageMenu(); 179 language_switch_menu_.InitLanguageMenu();
180 180
181 RecreatePeculiarControls(); 181 RecreatePeculiarControls();
182 182
183 AddChildView(sign_in_button_); 183 AddChildView(sign_in_button_);
184 if (need_guest_link_) { 184 if (need_guest_link_)
185 InitLink(&guest_link_); 185 guest_link_ = InitLink(background_color);
186 } 186 if (need_create_account_)
187 if (need_create_account_) { 187 create_account_link_ = InitLink(background_color);
188 InitLink(&create_account_link_);
189 }
190 AddChildView(languages_menubutton_); 188 AddChildView(languages_menubutton_);
191 189
192 // Set up accelerators. 190 // Set up accelerators.
193 AddAccelerator(accel_focus_user_); 191 AddAccelerator(accel_focus_user_);
194 AddAccelerator(accel_focus_pass_); 192 AddAccelerator(accel_focus_pass_);
195 AddAccelerator(accel_enterprise_enrollment_); 193 AddAccelerator(accel_enterprise_enrollment_);
196 AddAccelerator(accel_login_off_the_record_); 194 AddAccelerator(accel_login_off_the_record_);
197 AddAccelerator(accel_toggle_accessibility_); 195 AddAccelerator(accel_toggle_accessibility_);
198 196
199 OnLocaleChanged(); 197 OnLocaleChanged();
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 if (need_guest_link_) { 552 if (need_guest_link_) {
555 guest_link_->SetEnabled(enabled); 553 guest_link_->SetEnabled(enabled);
556 } 554 }
557 if (need_create_account_) { 555 if (need_create_account_) {
558 create_account_link_->SetEnabled(enabled); 556 create_account_link_->SetEnabled(enabled);
559 } 557 }
560 UpdateSignInButtonState(); 558 UpdateSignInButtonState();
561 } 559 }
562 560
563 bool NewUserView::NavigateAway() { 561 bool NewUserView::NavigateAway() {
564 if (username_field_->text().empty() && 562 if (!username_field_->text().empty() ||
565 password_field_->text().empty()) { 563 !password_field_->text().empty())
566 delegate_->NavigateAway();
567 return true;
568 } else {
569 return false; 564 return false;
570 } 565 delegate_->NavigateAway();
566 return true;
571 } 567 }
572 568
573 void NewUserView::InitLink(views::Link** link) { 569 views::Link* NewUserView::InitLink(SkColor background_color) {
574 *link = new views::Link(string16()); 570 views::Link* link = new views::Link(string16());
575 (*link)->set_listener(this); 571 link->set_listener(this);
576 (*link)->SetNormalColor(login::kLinkColor); 572 link->SetBackgroundColor(background_color);
577 (*link)->SetHighlightedColor(login::kLinkColor); 573 link->SetEnabledColor(login::kLinkColor);
578 AddChildView(*link); 574 link->SetPressedColor(login::kLinkColor);
575 AddChildView(link);
576 return link;
579 } 577 }
580 578
581 } // namespace chromeos 579 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/new_user_view.h ('k') | chrome/browser/chromeos/login/screen_lock_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698