OLD | NEW |
---|---|
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/guest_user_view.h" | 5 #include "chrome/browser/chromeos/login/guest_user_view.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "chrome/browser/chromeos/login/helper.h" | 8 #include "chrome/browser/chromeos/login/helper.h" |
9 #include "chrome/browser/chromeos/login/user_controller.h" | 9 #include "chrome/browser/chromeos/login/user_controller.h" |
10 #include "chrome/browser/chromeos/login/wizard_accessibility_helper.h" | 10 #include "chrome/browser/chromeos/login/wizard_accessibility_helper.h" |
11 #include "grit/generated_resources.h" | 11 #include "grit/generated_resources.h" |
12 | 12 |
13 namespace chromeos { | 13 namespace chromeos { |
14 | 14 |
15 // Button with custom processing for Tab/Shift+Tab to select entries. | 15 // Button with custom processing for Tab/Shift+Tab to select entries. |
16 class UserEntryButton : public login::WideButton { | 16 class UserEntryButton : public login::WideButton { |
17 public: | 17 public: |
18 UserEntryButton(UserController* controller, | 18 UserEntryButton(views::ButtonListener* button_listener, |
19 UserController* user_controller, | |
19 const std::wstring& label) | 20 const std::wstring& label) |
20 : WideButton(controller, label), | 21 : WideButton(button_listener, label), |
21 controller_(controller) {} | 22 user_controller_(user_controller) {} |
22 | 23 |
23 // Overridden from views::View: | 24 // Overridden from views::View: |
24 virtual bool OnKeyPressed(const views::KeyEvent& e) { | 25 virtual bool OnKeyPressed(const views::KeyEvent& e) { |
25 if (e.GetKeyCode() == app::VKEY_TAB) { | 26 if (e.GetKeyCode() == app::VKEY_TAB) { |
26 int index = controller_->user_index() + (e.IsShiftDown() ? -1 : 1); | 27 user_controller_->SelectUserRelative(e.IsShiftDown() ? -1 : 1); |
27 controller_->SelectUser(index); | |
28 return true; | 28 return true; |
29 } | 29 } |
30 return WideButton::OnKeyPressed(e); | 30 return WideButton::OnKeyPressed(e); |
31 } | 31 } |
32 | 32 |
33 virtual bool SkipDefaultKeyEventProcessing(const views::KeyEvent& e) { | 33 virtual bool SkipDefaultKeyEventProcessing(const views::KeyEvent& e) { |
34 if (e.GetKeyCode() == app::VKEY_TAB) | 34 if (e.GetKeyCode() == app::VKEY_TAB) |
35 return true; | 35 return true; |
36 return WideButton::SkipDefaultKeyEventProcessing(e); | 36 return WideButton::SkipDefaultKeyEventProcessing(e); |
37 } | 37 } |
38 | 38 |
39 private: | 39 private: |
40 UserController* controller_; | 40 UserController* user_controller_; |
41 | 41 |
42 DISALLOW_COPY_AND_ASSIGN(UserEntryButton); | 42 DISALLOW_COPY_AND_ASSIGN(UserEntryButton); |
43 }; | 43 }; |
44 | 44 |
45 | 45 |
46 GuestUserView::GuestUserView(UserController* uc) | 46 GuestUserView::GuestUserView(UserController* uc) |
47 : submit_button_(NULL), | 47 : submit_button_(NULL), |
48 user_controller_(uc), | 48 user_controller_(uc), |
49 accel_enable_accessibility_( | 49 accel_enable_accessibility_( |
50 WizardAccessibilityHelper::GetAccelerator()), | 50 WizardAccessibilityHelper::GetAccelerator()), |
51 accel_login_off_the_record_( | 51 accel_login_off_the_record_( |
52 views::Accelerator(app::VKEY_B, false, false, true)), | 52 views::Accelerator(app::VKEY_B, false, false, true)), |
53 accel_previous_pod_by_arrow_( | 53 accel_previous_pod_by_arrow_( |
54 views::Accelerator(app::VKEY_LEFT, false, false, false)), | 54 views::Accelerator(app::VKEY_LEFT, false, false, false)), |
55 accel_next_pod_by_arrow_( | 55 accel_next_pod_by_arrow_( |
56 views::Accelerator(app::VKEY_RIGHT, false, false, false)) { | 56 views::Accelerator(app::VKEY_RIGHT, false, false, false)) { |
57 AddAccelerator(accel_enable_accessibility_); | 57 AddAccelerator(accel_enable_accessibility_); |
58 AddAccelerator(accel_login_off_the_record_); | 58 AddAccelerator(accel_login_off_the_record_); |
59 AddAccelerator(accel_previous_pod_by_arrow_); | 59 AddAccelerator(accel_previous_pod_by_arrow_); |
60 AddAccelerator(accel_next_pod_by_arrow_); | 60 AddAccelerator(accel_next_pod_by_arrow_); |
61 } | 61 } |
62 | 62 |
63 void GuestUserView::RecreateFields() { | 63 void GuestUserView::RecreateFields() { |
64 delete submit_button_; | 64 delete submit_button_; |
65 submit_button_ = new UserEntryButton( | 65 submit_button_ = new UserEntryButton( |
66 this, | |
66 user_controller_, | 67 user_controller_, |
67 l10n_util::GetString(IDS_ENTER_GUEST_SESSION_BUTTON)); | 68 l10n_util::GetString(IDS_ENTER_GUEST_SESSION_BUTTON)); |
68 AddChildView(submit_button_); | 69 AddChildView(submit_button_); |
69 Layout(); | 70 Layout(); |
70 SchedulePaint(); | 71 SchedulePaint(); |
71 } | 72 } |
72 | 73 |
73 void GuestUserView::FocusSignInButton() { | 74 void GuestUserView::FocusSignInButton() { |
74 if (GetFocusManager()) | 75 submit_button_->RequestFocus(); |
75 submit_button_->RequestFocus(); | |
76 } | 76 } |
77 | 77 |
78 bool GuestUserView::AcceleratorPressed( | 78 bool GuestUserView::AcceleratorPressed( |
79 const views::Accelerator& accelerator) { | 79 const views::Accelerator& accelerator) { |
80 if (accelerator == accel_login_off_the_record_) | 80 if (accelerator == accel_login_off_the_record_) |
81 user_controller_->OnLoginOffTheRecord(); | 81 user_controller_->OnLoginOffTheRecord(); |
82 else if (accelerator == accel_enable_accessibility_) | 82 else if (accelerator == accel_enable_accessibility_) |
83 WizardAccessibilityHelper::GetInstance()->EnableAccessibility(this); | 83 WizardAccessibilityHelper::GetInstance()->EnableAccessibility(this); |
84 else if (accelerator == accel_previous_pod_by_arrow_) | 84 else if (accelerator == accel_previous_pod_by_arrow_) |
85 user_controller_->SelectUser(user_controller_->user_index() - 1); | 85 user_controller_->SelectUserRelative(-1); |
86 else if (accelerator == accel_next_pod_by_arrow_) | 86 else if (accelerator == accel_next_pod_by_arrow_) |
87 user_controller_->SelectUser(user_controller_->user_index() + 1); | 87 user_controller_->SelectUserRelative(1); |
88 else | 88 else |
89 return false; | 89 return false; |
90 return true; | 90 return true; |
91 } | 91 } |
92 | 92 |
93 void GuestUserView::ButtonPressed( | |
94 views::Button* sender, const views::Event& event) { | |
95 user_controller_->OnLoginOffTheRecord(); | |
whywhat
2010/12/09 16:20:18
DCHECK or maybe even CHECK for button being what w
altimofeev
2010/12/10 16:37:40
DCHECK has been added.
| |
96 } | |
97 | |
98 void GuestUserView::EnableInputControls(bool enabled) { | |
99 submit_button_->SetEnabled(enabled); | |
100 } | |
101 | |
93 void GuestUserView::ViewHierarchyChanged(bool is_add, | 102 void GuestUserView::ViewHierarchyChanged(bool is_add, |
94 views::View* parent, | 103 views::View* parent, |
95 views::View* child) { | 104 views::View* child) { |
96 if (is_add && this == child) | 105 if (is_add && this == child) |
97 WizardAccessibilityHelper::GetInstance()->MaybeEnableAccessibility(this); | 106 WizardAccessibilityHelper::GetInstance()->MaybeEnableAccessibility(this); |
98 } | 107 } |
99 | 108 |
100 void GuestUserView::OnLocaleChanged() { | 109 void GuestUserView::OnLocaleChanged() { |
101 RecreateFields(); | 110 RecreateFields(); |
102 } | 111 } |
103 | 112 |
104 void GuestUserView::Layout() { | 113 void GuestUserView::Layout() { |
105 gfx::Size submit_button_size = submit_button_->GetPreferredSize(); | 114 gfx::Size submit_button_size = submit_button_->GetPreferredSize(); |
106 int submit_button_x = (width() - submit_button_size.width()) / 2; | 115 int submit_button_x = (width() - submit_button_size.width()) / 2; |
107 int submit_button_y = (height() - submit_button_size.height()) / 2; | 116 int submit_button_y = (height() - submit_button_size.height()) / 2; |
108 submit_button_->SetBounds(submit_button_x, | 117 submit_button_->SetBounds(submit_button_x, |
109 submit_button_y, | 118 submit_button_y, |
110 submit_button_size.width(), | 119 submit_button_size.width(), |
111 submit_button_size.height()); | 120 submit_button_size.height()); |
112 } | 121 } |
113 | 122 |
123 void GuestUserView::ClearAndFocusControls() { | |
124 } | |
125 | |
126 void GuestUserView::ClearAndFocusPassword() { | |
127 } | |
128 | |
129 gfx::Rect GuestUserView::GetControlWithErrorBounds() const { | |
130 NOTREACHED(); | |
131 return gfx::Rect(); | |
132 } | |
133 | |
134 bool GuestUserView::UseCustomBoundsForThrobber ( | |
135 const gfx::Size& /*throbber*/, gfx::Rect* /*bounds*/) const { | |
136 return false; | |
137 } | |
138 | |
114 } // namespace chromeos | 139 } // namespace chromeos |
OLD | NEW |