13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifndef CONTENT_SHELL_BROWSER_SHELL_JAVASCRIPT_DIALOG_H_ 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define CONTENT_SHELL_BROWSER_SHELL_JAVASCRIPT_DIALOG_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/javascript_dialog_manager.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if __OBJC__ 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@class ShellJavaScriptDialogHelper; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ShellJavaScriptDialogHelper; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // __OBJC__ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // defined(OS_MACOSX) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ShellJavaScriptDialogManager; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ShellJavaScriptDialog { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ShellJavaScriptDialog( 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ShellJavaScriptDialogManager* manager, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::NativeWindow parent_window, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) JavaScriptMessageType message_type, 28a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const base::string16& message_text, 29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const base::string16& default_prompt_text, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const JavaScriptDialogManager::DialogClosedCallback& callback); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~ShellJavaScriptDialog(); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called to cancel a dialog mid-flight. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void Cancel(); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ShellJavaScriptDialogManager* manager_; 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JavaScriptDialogManager::DialogClosedCallback callback_; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ShellJavaScriptDialogHelper* helper_; // owned 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_WIN) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) JavaScriptMessageType message_type_; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HWND dialog_win_; 45a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 message_text_; 46a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 default_prompt_text_; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static INT_PTR CALLBACK DialogProc(HWND dialog, UINT message, WPARAM wparam, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LPARAM lparam); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ShellJavaScriptDialog); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif // CONTENT_SHELL_BROWSER_SHELL_JAVASCRIPT_DIALOG_H_ 57