1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_JAVASCRIPT_DIALOGS_VIEWS_APP_MODAL_DIALOG_VIEW_VIEWS_H_ 6 #define COMPONENTS_JAVASCRIPT_DIALOGS_VIEWS_APP_MODAL_DIALOG_VIEW_VIEWS_H_ 7 8 #include <memory> 9 10 #include "base/macros.h" 11 #include "components/javascript_dialogs/app_modal_dialog_view.h" 12 #include "ui/views/window/dialog_delegate.h" 13 14 namespace views { 15 class MessageBoxView; 16 } 17 18 namespace javascript_dialogs { 19 20 class AppModalDialogController; 21 22 class AppModalDialogViewViews : public AppModalDialogView, 23 public views::DialogDelegate { 24 public: 25 explicit AppModalDialogViewViews(AppModalDialogController* controller); 26 ~AppModalDialogViewViews() override; 27 28 // AppModalDialogView: 29 void ShowAppModalDialog() override; 30 void ActivateAppModalDialog() override; 31 void CloseAppModalDialog() override; 32 void AcceptAppModalDialog() override; 33 void CancelAppModalDialog() override; 34 bool IsShowing() const override; 35 36 // views::DialogDelegate: 37 base::string16 GetWindowTitle() const override; 38 ui::ModalType GetModalType() const override; 39 views::View* GetContentsView() override; 40 views::View* GetInitiallyFocusedView() override; 41 views::Widget* GetWidget() override; 42 const views::Widget* GetWidget() const override; 43 bool ShouldShowCloseButton() const override; 44 void WindowClosing() override; 45 46 private: 47 std::unique_ptr<AppModalDialogController> controller_; 48 49 // The message box view whose commands we handle. 50 views::MessageBoxView* message_box_view_; 51 52 DISALLOW_COPY_AND_ASSIGN(AppModalDialogViewViews); 53 }; 54 55 } // namespace javascript_dialogs 56 57 #endif // COMPONENTS_JAVASCRIPT_DIALOGS_VIEWS_APP_MODAL_DIALOG_VIEW_VIEWS_H_ 58