| Index: chrome/browser/ui/views/payments/payment_request_sheet_controller.h
|
| diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h
|
| index 655c91d21aa7432a387273901fd5454e77c72c8f..fcfea7c7c7202296e880d0e647a8e67933dc5d88 100644
|
| --- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h
|
| +++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h
|
| @@ -31,9 +31,9 @@ class PaymentRequestSheetController : public views::ButtonListener {
|
| PaymentRequestSheetController(PaymentRequestSpec* spec,
|
| PaymentRequestState* state,
|
| PaymentRequestDialogView* dialog);
|
| - ~PaymentRequestSheetController() override {}
|
| + ~PaymentRequestSheetController() override;
|
|
|
| - virtual std::unique_ptr<views::View> CreateView() = 0;
|
| + std::unique_ptr<views::View> CreateView();
|
|
|
| PaymentRequestSpec* spec() { return spec_; }
|
| PaymentRequestState* state() { return state_; }
|
| @@ -43,6 +43,10 @@ class PaymentRequestSheetController : public views::ButtonListener {
|
| PaymentRequestDialogView* dialog() { return dialog_; }
|
|
|
| protected:
|
| + // Clears the content part of the view represented by this view controller and
|
| + // calls FillContentView again to re-populate it with updated views.
|
| + void UpdateContentView();
|
| +
|
| // Creates and returns the primary action button for this sheet. It's
|
| // typically a blue button with the "Pay" or "Done" labels. Subclasses may
|
| // return an empty std::unique_ptr (nullptr) to indicate that no primary
|
| @@ -52,6 +56,19 @@ class PaymentRequestSheetController : public views::ButtonListener {
|
| // enabled state).
|
| virtual std::unique_ptr<views::Button> CreatePrimaryButton();
|
|
|
| + // Returns whether this sheet should display a back arrow in the header next
|
| + // to the title.
|
| + virtual bool ShouldShowHeaderBackArrow();
|
| +
|
| + // Returns the title to be displayed in this sheet's header.
|
| + virtual base::string16 GetSheetTitle() = 0;
|
| +
|
| + // Implemented by subclasses to populate |content_view| with the views that
|
| + // should be displayed in their content area (between the header and the
|
| + // footer). This may be called at view creation time as well as anytime
|
| + // UpdateContentView is called.
|
| + virtual void FillContentView(views::View* content_view) = 0;
|
| +
|
| // Creates and returns the view to be displayed next to the "Pay" and "Cancel"
|
| // buttons. May return an empty std::unique_ptr (nullptr) to indicate that no
|
| // extra view is to be displayed.The caller takes ownership of the view but
|
| @@ -67,6 +84,11 @@ class PaymentRequestSheetController : public views::ButtonListener {
|
| // views::ButtonListener:
|
| void ButtonPressed(views::Button* sender, const ui::Event& event) override;
|
|
|
| + // Creates the row of button containing the Pay, cancel, and extra buttons.
|
| + // |controller| is installed as the listener for button events.
|
| + std::unique_ptr<views::View> CreateFooterView();
|
| +
|
| + private:
|
| // Creates a view to be displayed in the PaymentRequestDialog.
|
| // |header_view| is the view displayed on top of the dialog, containing title,
|
| // (optional) back button, and close buttons.
|
| @@ -82,20 +104,16 @@ class PaymentRequestSheetController : public views::ButtonListener {
|
| // +---------------------------+
|
| // | EXTRA VIEW | PAY | CANCEL | <-- footer
|
| // +---------------------------+
|
| - std::unique_ptr<views::View> CreatePaymentView(
|
| - std::unique_ptr<views::View> header_view,
|
| - std::unique_ptr<views::View> content_view);
|
| + std::unique_ptr<views::View> CreatePaymentView();
|
|
|
| - // Creates the row of button containing the Pay, cancel, and extra buttons.
|
| - // |controller| is installed as the listener for button events.
|
| - std::unique_ptr<views::View> CreateFooterView();
|
| -
|
| - private:
|
| // All these are not owned. Will outlive this.
|
| PaymentRequestSpec* spec_;
|
| PaymentRequestState* state_;
|
| PaymentRequestDialogView* dialog_;
|
|
|
| + // This view is owned by its encompassing ScrollView.
|
| + views::View* content_view_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PaymentRequestSheetController);
|
| };
|
|
|
|
|