Chromium Code Reviews| Index: chrome/browser/ui/views/autofill/autofill_dialog_views.cc | 
| diff --git a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc | 
| index a1c94197e229f9989f9f6498e3fc7695a12d0deb..27796a02efe6b196235feb3557eea6ada9a04b96 100644 | 
| --- a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc | 
| +++ b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc | 
| @@ -93,6 +93,22 @@ void AutofillDialogViews::Show() { | 
| // Ownership of |contents_| is handed off by this call. The ConstrainedWindow | 
| // will take care of deleting itself after calling DeleteDelegate(). | 
| window_ = new ConstrainedWindowViews(controller_->web_contents(), this); | 
| + window_->GetFocusManager()->AddFocusChangeListener(this); | 
| 
 
Ilya Sherman
2012/12/20 21:57:42
This diff is not part of this CL.
 
Evan Stade
2012/12/20 23:04:00
please ignore the parts that are part of my previo
 
 | 
| +} | 
| + | 
| +void AutofillDialogViews::UpdateSection(DialogSection section) { | 
| + const DetailInputs& updated_inputs = | 
| + controller_->RequestedFieldsForSection(section); | 
| + DetailsGroup* group = GroupForSection(section); | 
| + | 
| + for (DetailInputs::const_iterator iter = updated_inputs.begin(); | 
| + iter != updated_inputs.end(); ++iter) { | 
| + TextfieldMap::iterator input = group->textfields.find(&(*iter)); | 
| + if (input == group->textfields.end()) | 
| + continue; | 
| + | 
| + input->second->SetText(iter->autofilled_value); | 
| + } | 
| } | 
| int AutofillDialogViews::GetSuggestionSelection(DialogSection section) { | 
| @@ -123,6 +139,10 @@ string16 AutofillDialogViews::GetWindowTitle() const { | 
| return controller_->DialogTitle(); | 
| } | 
| +void AutofillDialogViews::WindowClosing() { | 
| + window_->GetFocusManager()->RemoveFocusChangeListener(this); | 
| +} | 
| + | 
| void AutofillDialogViews::DeleteDelegate() { | 
| window_ = NULL; | 
| // |this| belongs to |controller_|. | 
| @@ -179,6 +199,38 @@ void AutofillDialogViews::OnSelectedIndexChanged(views::Combobox* combobox) { | 
| GetWidget()->SetSize(GetWidget()->non_client_view()->GetPreferredSize()); | 
| } | 
| +void AutofillDialogViews::ContentsChanged(views::Textfield* sender, | 
| + const string16& new_contents) { | 
| + // TODO(estade): work for not billing. | 
| + for (TextfieldMap::iterator iter = billing_.textfields.begin(); | 
| + iter != billing_.textfields.end(); | 
| + ++iter) { | 
| + if (iter->second == sender) { | 
| + controller_->UserEditedInput(iter->first, | 
| + GetWidget()->GetNativeView(), | 
| + sender->GetBoundsInScreen(), | 
| + new_contents); | 
| + break; | 
| + } | 
| + } | 
| +} | 
| + | 
| +bool AutofillDialogViews::HandleKeyEvent(views::Textfield* sender, | 
| + const ui::KeyEvent& key_event) { | 
| + // TODO(estade): implement. | 
| + return false; | 
| +} | 
| + | 
| +void AutofillDialogViews::OnWillChangeFocus( | 
| + views::View* focused_before, | 
| + views::View* focused_now) { | 
| + controller_->FocusMoved(); | 
| +} | 
| + | 
| +void AutofillDialogViews::OnDidChangeFocus( | 
| + views::View* focused_before, | 
| + views::View* focused_now) {} | 
| + | 
| void AutofillDialogViews::InitChildViews() { | 
| contents_ = new views::View(); | 
| views::GridLayout* layout = new views::GridLayout(contents_); | 
| @@ -372,7 +424,7 @@ views::View* AutofillDialogViews::InitInputsView(DialogSection section) { | 
| layout->AddView(combobox); | 
| for (int i = 0; i < input_model->GetItemCount(); ++i) { | 
| - if (input.starting_value == input_model->GetItemAt(i)) { | 
| + if (input.autofilled_value == input_model->GetItemAt(i)) { | 
| combobox->SetSelectedIndex(i); | 
| break; | 
| } | 
| @@ -380,7 +432,8 @@ views::View* AutofillDialogViews::InitInputsView(DialogSection section) { | 
| } else { | 
| views::Textfield* field = new views::Textfield(); | 
| field->set_placeholder_text(ASCIIToUTF16(input.placeholder_text)); | 
| - field->SetText(input.starting_value); | 
| + field->SetText(input.autofilled_value); | 
| + field->SetController(this); | 
| textfields->insert(std::make_pair(&input, field)); | 
| layout->AddView(field); | 
| } |