1 // Copyright 2013 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 CONTENT_SHELL_BROWSER_SHELL_JAVASCRIPT_DIALOG_H_ 6 #define CONTENT_SHELL_BROWSER_SHELL_JAVASCRIPT_DIALOG_H_ 7 8 #include "content/public/browser/javascript_dialog_manager.h" 9 10 #if defined(OS_MACOSX) 11 #if __OBJC__ 12 @class ShellJavaScriptDialogHelper; 13 #else 14 class ShellJavaScriptDialogHelper; 15 #endif // __OBJC__ 16 #endif // defined(OS_MACOSX) 17 18 namespace content { 19 20 class ShellJavaScriptDialogManager; 21 22 class ShellJavaScriptDialog { 23 public: 24 ShellJavaScriptDialog( 25 ShellJavaScriptDialogManager* manager, 26 gfx::NativeWindow parent_window, 27 JavaScriptMessageType message_type, 28 const base::string16& message_text, 29 const base::string16& default_prompt_text, 30 const JavaScriptDialogManager::DialogClosedCallback& callback); 31 ~ShellJavaScriptDialog(); 32 33 // Called to cancel a dialog mid-flight. 34 void Cancel(); 35 36 private: 37 ShellJavaScriptDialogManager* manager_; 38 JavaScriptDialogManager::DialogClosedCallback callback_; 39 40 #if defined(OS_MACOSX) 41 ShellJavaScriptDialogHelper* helper_; // owned 42 #elif defined(OS_WIN) 43 JavaScriptMessageType message_type_; 44 HWND dialog_win_; 45 base::string16 message_text_; 46 base::string16 default_prompt_text_; 47 static INT_PTR CALLBACK DialogProc(HWND dialog, UINT message, WPARAM wparam, 48 LPARAM lparam); 49 #endif 50 51 DISALLOW_COPY_AND_ASSIGN(ShellJavaScriptDialog); 52 }; 53 54 } // namespace content 55 56 #endif // CONTENT_SHELL_BROWSER_SHELL_JAVASCRIPT_DIALOG_H_ 57