#ifndef CONTENT_SHELL_SHELL_JAVASCRIPT_DIALOG_H_
#define CONTENT_SHELL_SHELL_JAVASCRIPT_DIALOG_H_
#include "content/public/browser/javascript_dialogs.h"
#if defined(TOOLKIT_GTK)
#include "ui/base/gtk/gtk_signal.h"
#endif
#if defined(OS_MACOSX)
#if __OBJC__
@class ShellJavaScriptDialogHelper;
#else
class ShellJavaScriptDialogHelper;
#endif
#endif
namespace content {
class ShellJavaScriptDialogCreator;
class ShellJavaScriptDialog {
public:
ShellJavaScriptDialog(
ShellJavaScriptDialogCreator* creator,
gfx::NativeWindow parent_window,
JavaScriptMessageType message_type,
const string16& message_text,
const string16& default_prompt_text,
const JavaScriptDialogCreator::DialogClosedCallback& callback);
~ShellJavaScriptDialog();
void Cancel();
private:
ShellJavaScriptDialogCreator* creator_;
JavaScriptDialogCreator::DialogClosedCallback callback_;
#if defined(OS_MACOSX)
ShellJavaScriptDialogHelper* helper_;
#elif defined(OS_WIN)
JavaScriptMessageType message_type_;
HWND dialog_win_;
string16 message_text_;
string16 default_prompt_text_;
static INT_PTR CALLBACK DialogProc(HWND dialog, UINT message, WPARAM wparam,
LPARAM lparam);
#elif defined(TOOLKIT_GTK)
GtkWidget* gtk_dialog_;
gfx::NativeWindow parent_window_;
CHROMEGTK_CALLBACK_1(ShellJavaScriptDialog, void, OnResponse, int);
#endif
DISALLOW_COPY_AND_ASSIGN(ShellJavaScriptDialog);
};
}
#endif