Chromium Code Reviews| Index: chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| diff --git a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| index d165ab2bc79cf1c131071e2543ffd3f7c7a2417b..0f102af581bacc3408d54fbd7fceb5ab5d9aa78f 100644 |
| --- a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| +++ b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| @@ -12,10 +12,12 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/time/time.h" |
| #include "chrome/browser/ui/views/payments/payment_request_dialog_view.h" |
| +#include "chrome/browser/ui/views/payments/payment_request_views_util.h" |
| #include "chrome/browser/ui/views/payments/preselected_combobox_model.h" |
| #include "chrome/browser/ui/views/payments/validating_combobox.h" |
| #include "chrome/browser/ui/views/payments/validating_textfield.h" |
| #include "chrome/grit/generated_resources.h" |
| +#include "components/autofill/core/browser/autofill_data_util.h" |
| #include "components/autofill/core/browser/autofill_type.h" |
| #include "components/autofill/core/browser/credit_card.h" |
| #include "components/autofill/core/browser/field_types.h" |
| @@ -23,8 +25,16 @@ |
| #include "components/autofill/core/common/autofill_clock.h" |
| #include "components/autofill/core/common/autofill_constants.h" |
| #include "components/payments/payment_request.h" |
| +#include "components/strings/grit/components_strings.h" |
| #include "ui/base/l10n/l10n_util.h" |
| +#include "ui/base/resource/resource_bundle.h" |
| +#include "ui/native_theme/native_theme.h" |
| +#include "ui/views/border.h" |
| +#include "ui/views/controls/image_view.h" |
| +#include "ui/views/controls/label.h" |
| #include "ui/views/controls/textfield/textfield.h" |
| +#include "ui/views/layout/box_layout.h" |
| +#include "ui/views/view.h" |
| namespace payments { |
| @@ -73,6 +83,69 @@ CreditCardEditorViewController::CreditCardEditorViewController( |
| CreditCardEditorViewController::~CreditCardEditorViewController() {} |
| +// Creates the "Cards accepted" view with a row of icons at the top of the |
| +// credit card editor. |
| +// +----------------------------------------------+ |
| +// | Cards Accepted | |
| +// | | |
| +// | | VISA | | MC | | AMEX | | |
| +// +----------------------------------------------+ |
| +views::View* CreditCardEditorViewController::CreateHeaderView() { |
|
please use gerrit instead
2017/02/16 22:16:07
std::unique_ptr<views::View>
Mathieu
2017/02/17 15:06:47
Done.
|
| + views::View* view = new views::View(); |
|
please use gerrit instead
2017/02/16 22:16:06
Ditto
Mathieu
2017/02/17 15:06:47
Done.
|
| + |
| + // 9dp is required between the first and second row. |
| + constexpr int kRowVerticalInset = 9; |
| + views::BoxLayout* layout = new views::BoxLayout( |
|
please use gerrit instead
2017/02/16 22:16:07
Would be nice to use std::unique_ptr<views::BoxLay
Mathieu
2017/02/17 15:06:46
I've kept "new" for the layouts, to follow convent
|
| + views::BoxLayout::kVertical, payments::kPaymentRequestRowHorizontalInsets, |
| + payments::kPaymentRequestRowVerticalInsets, kRowVerticalInset); |
| + layout->set_main_axis_alignment(views::BoxLayout::MAIN_AXIS_ALIGNMENT_START); |
| + layout->set_cross_axis_alignment( |
| + views::BoxLayout::CROSS_AXIS_ALIGNMENT_START); |
| + view->SetLayoutManager(layout); |
| + |
| + // "Cards accepted" label is "disabled" grey. |
| + views::Label* label = new views::Label( |
|
please use gerrit instead
2017/02/16 22:16:07
uniqe_ptr...
Mathieu
2017/02/17 15:06:47
Done.
|
| + l10n_util::GetStringUTF16(IDS_PAYMENTS_ACCEPTED_CARDS_LABEL)); |
| + label->SetDisabledColor(label->GetNativeTheme()->GetSystemColor( |
| + ui::NativeTheme::kColorId_LabelDisabledColor)); |
| + label->SetEnabled(false); |
| + view->AddChildView(label); |
| + |
| + // 8dp padding is required between icons. |
| + constexpr int kPaddingBetweenCardIcons = 8; |
| + views::View* icons_row = new views::View(); |
|
please use gerrit instead
2017/02/16 22:16:08
unique_ptr?
Mathieu
2017/02/17 15:06:47
Done.
|
| + views::BoxLayout* icons_layout = new views::BoxLayout( |
|
please use gerrit instead
2017/02/16 22:16:08
unique_ptr!
Mathieu
2017/02/17 15:06:46
Done.
|
| + views::BoxLayout::kHorizontal, 0, 0, kPaddingBetweenCardIcons); |
| + icons_row->SetLayoutManager(icons_layout); |
| + |
| + constexpr gfx::Size kCardIconSize = gfx::Size(30, 18); |
| + for (const std::string& supported_network : |
| + request()->supported_card_networks()) { |
| + views::ImageView* card_icon_view = new views::ImageView(); |
|
please use gerrit instead
2017/02/16 22:16:07
.
Mathieu
2017/02/17 15:06:46
Done.
|
| + |
| + card_icon_view->set_interactive(false); |
| + const std::string autofill_card_type = |
| + autofill::data_util::GetCardTypeForBasicCardPaymentType( |
| + supported_network); |
| + card_icon_view->SetImage( |
| + ResourceBundle::GetSharedInstance() |
| + .GetImageNamed( |
| + autofill::data_util::GetPaymentRequestData(autofill_card_type) |
| + .icon_resource_id) |
| + .AsImageSkia()); |
| + card_icon_view->SetTooltipText( |
| + autofill::CreditCard::TypeForDisplay(autofill_card_type)); |
| + card_icon_view->SetBorder( |
| + views::CreateRoundedRectBorder(1, 3, SK_ColorLTGRAY)); |
| + card_icon_view->SetImageSize(kCardIconSize); |
| + |
| + icons_row->AddChildView(card_icon_view); |
| + } |
| + view->AddChildView(icons_row); |
| + |
| + return view; |
| +} |
| + |
| std::vector<EditorField> CreditCardEditorViewController::GetFieldDefinitions() { |
| return std::vector<EditorField>{ |
| {autofill::CREDIT_CARD_NAME_FULL, |