| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/ui/views/payments/editor_view_controller.h" | 5 #include "chrome/browser/ui/views/payments/editor_view_controller.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 // A very long label will wrap. Value picked so that left + right label | 197 // A very long label will wrap. Value picked so that left + right label |
| 198 // padding bring the label to half-way in the dialog (~225). | 198 // padding bring the label to half-way in the dialog (~225). |
| 199 constexpr int kMaximumLabelWidth = 192; | 199 constexpr int kMaximumLabelWidth = 192; |
| 200 label->SetMultiLine(true); | 200 label->SetMultiLine(true); |
| 201 label->SetMaximumWidth(kMaximumLabelWidth); | 201 label->SetMaximumWidth(kMaximumLabelWidth); |
| 202 layout->AddView(label.release()); | 202 layout->AddView(label.release()); |
| 203 | 203 |
| 204 if (field.control_type == EditorField::ControlType::TEXTFIELD) { | 204 if (field.control_type == EditorField::ControlType::TEXTFIELD) { |
| 205 ValidatingTextfield* text_field = | 205 ValidatingTextfield* text_field = |
| 206 new ValidatingTextfield(CreateValidationDelegate(field)); | 206 new ValidatingTextfield(CreateValidationDelegate(field)); |
| 207 text_field->SetText(GetInitialValueForType(field.type)); |
| 207 text_field->set_controller(this); | 208 text_field->set_controller(this); |
| 208 // Using autofill field type as a view ID (for testing). | 209 // Using autofill field type as a view ID (for testing). |
| 209 text_field->set_id(static_cast<int>(field.type)); | 210 text_field->set_id(static_cast<int>(field.type)); |
| 210 text_field->set_default_width_in_chars( | 211 text_field->set_default_width_in_chars( |
| 211 field.length_hint == EditorField::LengthHint::HINT_SHORT | 212 field.length_hint == EditorField::LengthHint::HINT_SHORT |
| 212 ? kNumCharactersInShortField | 213 ? kNumCharactersInShortField |
| 213 : kNumCharactersInLongField); | 214 : kNumCharactersInLongField); |
| 214 | 215 |
| 215 text_fields_.insert(std::make_pair(text_field, field)); | 216 text_fields_.insert(std::make_pair(text_field, field)); |
| 216 // |text_field| will now be owned by |row|. | 217 // |text_field| will now be owned by |row|. |
| 217 layout->AddView(text_field); | 218 layout->AddView(text_field); |
| 218 } else if (field.control_type == EditorField::ControlType::COMBOBOX) { | 219 } else if (field.control_type == EditorField::ControlType::COMBOBOX) { |
| 219 ValidatingCombobox* combobox = new ValidatingCombobox( | 220 ValidatingCombobox* combobox = new ValidatingCombobox( |
| 220 GetComboboxModelForType(field.type), CreateValidationDelegate(field)); | 221 GetComboboxModelForType(field.type), CreateValidationDelegate(field)); |
| 222 combobox->SelectValue(GetInitialValueForType(field.type)); |
| 221 // Using autofill field type as a view ID (for testing). | 223 // Using autofill field type as a view ID (for testing). |
| 222 combobox->set_id(static_cast<int>(field.type)); | 224 combobox->set_id(static_cast<int>(field.type)); |
| 223 combobox->set_listener(this); | 225 combobox->set_listener(this); |
| 224 comboboxes_.insert(std::make_pair(combobox, field)); | 226 comboboxes_.insert(std::make_pair(combobox, field)); |
| 225 // |combobox| will now be owned by |row|. | 227 // |combobox| will now be owned by |row|. |
| 226 layout->AddView(combobox); | 228 layout->AddView(combobox); |
| 227 } else { | 229 } else { |
| 228 NOTREACHED(); | 230 NOTREACHED(); |
| 229 } | 231 } |
| 230 | 232 |
| 231 // This is the vertical space between the input field and its error label. | 233 // This is the vertical space between the input field and its error label. |
| 232 constexpr int kInputErrorLabelPadding = 6; | 234 constexpr int kInputErrorLabelPadding = 6; |
| 233 layout->StartRowWithPadding(0, 0, 0, kInputErrorLabelPadding); | 235 layout->StartRowWithPadding(0, 0, 0, kInputErrorLabelPadding); |
| 234 layout->SkipColumns(1); | 236 layout->SkipColumns(1); |
| 235 // Error label is initially empty. | 237 // Error label is initially empty. |
| 236 std::unique_ptr<views::Label> error_label = | 238 std::unique_ptr<views::Label> error_label = |
| 237 base::MakeUnique<views::Label>(base::ASCIIToUTF16("")); | 239 base::MakeUnique<views::Label>(base::ASCIIToUTF16("")); |
| 238 error_label->set_id(static_cast<int>(DialogViewID::ERROR_LABEL_OFFSET) + | 240 error_label->set_id(static_cast<int>(DialogViewID::ERROR_LABEL_OFFSET) + |
| 239 field.type); | 241 field.type); |
| 240 error_label->SetFontList( | 242 error_label->SetFontList( |
| 241 error_label->GetDefaultFontList().DeriveWithSizeDelta(-1)); | 243 error_label->GetDefaultFontList().DeriveWithSizeDelta(-1)); |
| 242 error_label->SetEnabledColor(error_label->GetNativeTheme()->GetSystemColor( | 244 error_label->SetEnabledColor(error_label->GetNativeTheme()->GetSystemColor( |
| 243 ui::NativeTheme::kColorId_AlertSeverityHigh)); | 245 ui::NativeTheme::kColorId_AlertSeverityHigh)); |
| 244 error_labels_[field] = error_label.get(); | 246 error_labels_[field] = error_label.get(); |
| 245 | 247 |
| 246 layout->AddView(error_label.release()); | 248 layout->AddView(error_label.release()); |
| 247 } | 249 } |
| 248 | 250 |
| 249 } // namespace payments | 251 } // namespace payments |
| OLD | NEW |