Chromium Code Reviews| Index: chrome/browser/ui/views/payments/payment_request_dialog.cc |
| diff --git a/chrome/browser/ui/views/payments/payment_request_dialog.cc b/chrome/browser/ui/views/payments/payment_request_dialog.cc |
| index 04f6d69fd020e445bfc09fdaf5db74f6eecfc172..60a5a770b712b2a16da1290eba39b2583b808036 100644 |
| --- a/chrome/browser/ui/views/payments/payment_request_dialog.cc |
| +++ b/chrome/browser/ui/views/payments/payment_request_dialog.cc |
| @@ -2,9 +2,13 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include "chrome/browser/ui/views/payments/payment_request_dialog.h" |
| + |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/payments/payment_request_impl.h" |
| -#include "chrome/browser/ui/views/payments/payment_request_dialog.h" |
| +#include "chrome/browser/ui/views/payments/order_summary_state.h" |
| +#include "chrome/browser/ui/views/payments/payment_sheet_state.h" |
| +#include "chrome/browser/ui/views/payments/view_stack.h" |
| #include "components/constrained_window/constrained_window_views.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "ui/views/layout/fill_layout.h" |
| @@ -21,11 +25,16 @@ void ShowPaymentRequestDialog(payments::PaymentRequestImpl* impl) { |
| namespace payments { |
| PaymentRequestDialog::PaymentRequestDialog(PaymentRequestImpl* impl) |
| - : impl_(impl), |
| - label_(new views::Label(base::ASCIIToUTF16("Payments dialog"))) { |
| + : impl_(impl) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| SetLayoutManager(new views::FillLayout()); |
| - AddChildView(label_.get()); |
| + |
| + std::unique_ptr<PaymentSheetState> initial_state = |
| + base::MakeUnique<PaymentSheetState>(); |
| + initial_state->AddObserver(this); |
| + view_stack_.reset(new ViewStack(std::move(initial_state))); |
|
sky
2016/12/12 01:54:32
Can you elaborate on why ViewStack can't operate s
anthonyvd
2016/12/12 17:01:56
I felt like encapsulating event handling in the st
|
| + view_stack_->set_owned_by_client(); |
| + AddChildView(view_stack_.get()); |
| } |
| PaymentRequestDialog::~PaymentRequestDialog() {} |
| @@ -35,9 +44,7 @@ ui::ModalType PaymentRequestDialog::GetModalType() const { |
| } |
| gfx::Size PaymentRequestDialog::GetPreferredSize() const { |
| - gfx::Size ps = label_->GetPreferredSize(); |
| - ps.Enlarge(200, 200); |
| - return ps; |
| + return gfx::Size(300, 300); |
| } |
| bool PaymentRequestDialog::Cancel() { |
| @@ -46,4 +53,15 @@ bool PaymentRequestDialog::Cancel() { |
| return true; |
| } |
| +void PaymentRequestDialog::OnOrderSummaryClicked() { |
| + std::unique_ptr<OrderSummaryState> order_summary = |
| + base::MakeUnique<OrderSummaryState>(); |
| + order_summary->AddObserver(this); |
| + view_stack_->PushState(std::move(order_summary)); |
| +} |
| + |
| +void PaymentRequestDialog::OnBackClicked() { |
| + view_stack_->PopState(); |
| +} |
| + |
| } // namespace payments |