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

Unified Diff: chrome/browser/ui/views/payments/payment_request_item_list.cc

Issue 2872623002: [Web Payments] Add "pencil" edit button to lists. (Closed)
Patch Set: Address comments. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/payments/payment_request_item_list.cc
diff --git a/chrome/browser/ui/views/payments/payment_request_item_list.cc b/chrome/browser/ui/views/payments/payment_request_item_list.cc
index cef163242e9fdfa808184dc5bbd4a3782cd40a5f..d6884b838a627a535355d52613a3a7043548876b 100644
--- a/chrome/browser/ui/views/payments/payment_request_item_list.cc
+++ b/chrome/browser/ui/views/payments/payment_request_item_list.cc
@@ -9,6 +9,9 @@
#include "chrome/browser/ui/views/payments/payment_request_views_util.h"
#include "components/payments/content/payment_request_state.h"
#include "ui/gfx/paint_vector_icon.h"
+#include "ui/vector_icons/vector_icons.h"
+#include "ui/views/controls/button/image_button.h"
+#include "ui/views/controls/button/image_button_factory.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/grid_layout.h"
@@ -26,8 +29,13 @@ const SkColor kCheckmarkColor = 0xFF609265;
PaymentRequestItemList::Item::Item(PaymentRequestSpec* spec,
PaymentRequestState* state,
PaymentRequestItemList* list,
- bool selected)
- : spec_(spec), state_(state), list_(list), selected_(selected) {}
+ bool selected,
+ bool show_edit_button)
+ : spec_(spec),
+ state_(state),
+ list_(list),
+ selected_(selected),
+ show_edit_button_(show_edit_button) {}
PaymentRequestItemList::Item::~Item() {}
@@ -94,9 +102,29 @@ std::unique_ptr<views::View> PaymentRequestItemList::Item::CreateItemView() {
columns->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER, 0,
views::GridLayout::USE_PREF, 0, 0);
- // Add a column for the extra_view, which comes after the checkmark.
- columns->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER, 0,
- views::GridLayout::USE_PREF, 0, 0);
+ constexpr int kExtraViewSpacing = 10;
mathp 2017/05/08 14:50:28 Nit: I would add a comment such as // This is th
anthonyvd 2017/05/08 15:02:10 Done.
+ std::unique_ptr<views::View> extra_view = CreateExtraView();
+ if (extra_view) {
+ columns->AddPaddingColumn(0, kExtraViewSpacing);
+ // Add a column for the extra_view, which comes after the checkmark.
+ columns->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER,
+ 0, views::GridLayout::USE_PREF, 0, 0);
+ }
+
+ if (show_edit_button_) {
+ edit_button_.reset(views::CreateVectorImageButton(this));
+ edit_button_->set_owned_by_client();
+ views::SetImageFromVectorIcon(edit_button_.get(), ui::kEditPencilIcon);
+ constexpr int kEditPencilIcon = 16;
+ edit_button_->SetSize(gfx::Size(kEditPencilIcon, kEditPencilIcon));
+ edit_button_->SetFocusBehavior(views::View::FocusBehavior::ALWAYS);
+ edit_button_->set_id(static_cast<int>(DialogViewID::EDIT_ITEM_BUTTON));
+
+ columns->AddPaddingColumn(0, kExtraViewSpacing);
+ // Add a column for the edit_button if it exists.
+ columns->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER,
+ 0, views::GridLayout::USE_PREF, 0, 0);
+ }
layout->StartRow(0, 0);
content->set_can_process_events_within_subtree(false);
@@ -105,16 +133,20 @@ std::unique_ptr<views::View> PaymentRequestItemList::Item::CreateItemView() {
checkmark_ = CreateCheckmark(selected());
layout->AddView(checkmark_.get());
- std::unique_ptr<views::View> extra_view = CreateExtraView();
if (extra_view)
layout->AddView(extra_view.release());
+ if (edit_button_)
+ layout->AddView(edit_button_.get());
+
return std::move(row);
}
void PaymentRequestItemList::Item::ButtonPressed(views::Button* sender,
const ui::Event& event) {
- if (CanBeSelected()) {
+ if (sender == edit_button_.get()) {
+ EditButtonPressed();
+ } else if (CanBeSelected()) {
list()->SelectItem(this);
} else {
PerformSelectionFallback();

Powered by Google App Engine
This is Rietveld 408576698