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

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

Issue 2768133002: [Web Payments] Refactor sheet display to allow updating view content (Closed)
Patch Set: Created 3 years, 9 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_sheet_controller.cc
diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc
index 88ff8bc579dc8397011cfed0205379903d521f52..9708d7d2ee62f7feb868423654a7788f655ff9d0 100644
--- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc
+++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc
@@ -13,6 +13,7 @@
#include "ui/views/controls/button/md_text_button.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/layout/box_layout.h"
+#include "ui/views/layout/fill_layout.h"
#include "ui/views/layout/grid_layout.h"
namespace payments {
@@ -23,11 +24,33 @@ PaymentRequestSheetController::PaymentRequestSheetController(
PaymentRequestDialogView* dialog)
: spec_(spec), state_(state), dialog_(dialog) {}
+PaymentRequestSheetController::~PaymentRequestSheetController() {}
+
+std::unique_ptr<views::View> PaymentRequestSheetController::CreateView() {
+ content_view_ = base::MakeUnique<views::View>();
+ content_view_->set_owned_by_client();
+ content_view_->SetLayoutManager(new views::FillLayout);
+
+ FillContentView(content_view_.get());
+
+ return CreatePaymentView();
+}
+
+void PaymentRequestSheetController::UpdateContentView() {
Mathieu 2017/03/23 11:36:45 very neat!
anthonyvd 2017/03/23 16:18:11 Thanks!
+ content_view_->RemoveAllChildViews(true);
+ FillContentView(content_view_.get());
+ content_view_->Layout();
+}
+
std::unique_ptr<views::Button>
PaymentRequestSheetController::CreatePrimaryButton() {
return nullptr;
}
+bool PaymentRequestSheetController::ShouldShowHeaderBackArrow() {
+ return true;
+}
+
std::unique_ptr<views::View>
PaymentRequestSheetController::CreateExtraFooterView() {
return nullptr;
@@ -51,9 +74,8 @@ void PaymentRequestSheetController::ButtonPressed(
}
}
-std::unique_ptr<views::View> PaymentRequestSheetController::CreatePaymentView(
- std::unique_ptr<views::View> header_view,
- std::unique_ptr<views::View> content_view) {
+std::unique_ptr<views::View>
+PaymentRequestSheetController::CreatePaymentView() {
std::unique_ptr<views::View> view = base::MakeUnique<views::View>();
view->set_background(views::Background::CreateSolidBackground(SK_ColorWHITE));
@@ -71,19 +93,21 @@ std::unique_ptr<views::View> PaymentRequestSheetController::CreatePaymentView(
layout->StartRow(0, 0);
// |header_view| will be deleted when |view| is.
- layout->AddView(header_view.release());
+ layout->AddView(
+ CreateSheetHeaderView(ShouldShowHeaderBackArrow(), GetSheetTitle(), this)
+ .release());
layout->StartRow(1, 0);
// |content_view| will go into a views::ScrollView so it needs to be sized now
// otherwise it'll be sized to the ScrollView's viewport height, preventing
// the scroll bar from ever being shown.
- content_view->SizeToPreferredSize();
+ content_view_->SizeToPreferredSize();
std::unique_ptr<views::ScrollView> scroll =
base::MakeUnique<views::ScrollView>();
scroll->EnableViewPortLayer();
scroll->set_hide_horizontal_scrollbar(true);
- scroll->SetContents(content_view.release());
+ scroll->SetContents(content_view_.get());
layout->AddView(scroll.release());
layout->StartRow(0, 0);

Powered by Google App Engine
This is Rietveld 408576698