[WRTjs] Refactor popup
[platform/framework/web/chromium-efl.git] / wrt / src / browser / wrt_javascript_dialog_manager.h
1 // Copyright 2019 Samsung Electronics. 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 BROWSER_WRT_JAVASCRIPT_DIALOG_MANAGER_H_
6 #define BROWSER_WRT_JAVASCRIPT_DIALOG_MANAGER_H_
7
8 #include "electron/shell/browser/electron_javascript_dialog_manager.h"
9 #include "electron/shell/browser/native_window_observer.h"
10
11 namespace content {
12 class JavaScriptModalDialog;
13 }
14
15 namespace wrt {
16
17 class WRTJavaScriptDialogManager
18     : public electron::ElectronJavaScriptDialogManager,
19       public electron::NativeWindowObserver {
20  public:
21   explicit WRTJavaScriptDialogManager();
22   virtual ~WRTJavaScriptDialogManager();
23
24   WRTJavaScriptDialogManager(const WRTJavaScriptDialogManager&) = delete;
25   WRTJavaScriptDialogManager& operator=(const WRTJavaScriptDialogManager&)
26       = delete;
27
28   bool IsShowing();
29   void SetPopupSize(int width, int height);
30
31  private:
32   // content::JavaScriptDialogManager implementations.
33   void RunJavaScriptDialog(content::WebContents* web_contents,
34                            content::RenderFrameHost* render_frame_host,
35                            content::JavaScriptDialogType dialog_type,
36                            const std::u16string& message_text,
37                            const std::u16string& default_prompt_text,
38                            DialogClosedCallback callback,
39                            bool* did_suppress_message) override;
40   void RunBeforeUnloadDialog(content::WebContents* web_contents,
41                              content::RenderFrameHost* render_frame_host,
42                              bool is_reload,
43                              DialogClosedCallback callback) override;
44
45   // electron::NativeWindowObserver
46   void OnWindowHide() override;
47   void OnWindowShow() override;
48
49 #if BUILDFLAG(IS_TIZEN_TV)
50   void CancelDialogs(content::WebContents* web_contents,
51                      bool reset_state) override;
52   void OnDialogClosed(content::WebContents* web_contents) override;
53 #endif
54
55   std::unique_ptr<content::JavaScriptModalDialog> dialog_;
56 };
57
58 }  // namespace wrt
59
60 #endif  // BROWSER_WRT_JAVASCRIPT_DIALOG_MANAGER_H_