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