| Index: chrome/browser/app_modal_dialog.h
|
| diff --git a/chrome/browser/app_modal_dialog.h b/chrome/browser/app_modal_dialog.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2f09a7eb4116b72375cfff2f00f2b09edd2d3a15
|
| --- /dev/null
|
| +++ b/chrome/browser/app_modal_dialog.h
|
| @@ -0,0 +1,109 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_BROWSER_APP_MODAL_DIALOG_H_
|
| +#define CHROME_BROWSER_APP_MODAL_DIALOG_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "build/build_config.h"
|
| +#include "chrome/common/notification_observer.h"
|
| +#include "chrome/common/notification_registrar.h"
|
| +
|
| +#if defined(OS_WIN)
|
| +class JavascriptMessageBoxDialog;
|
| +typedef JavascriptMessageBoxDialog* NativeDialog;
|
| +#elif defined(OS_LINUX)
|
| +typedef void* NativeDialog;
|
| +#elif defined(OS_MACOSX)
|
| +typedef void* NativeDialog;
|
| +#endif
|
| +
|
| +class WebContents;
|
| +namespace IPC {
|
| +class Message;
|
| +}
|
| +
|
| +// A controller+model class for javascript alert, confirm, prompt, and
|
| +// onbeforeunload dialog boxes. |NativeDialog| is a platform specific
|
| +// view.
|
| +class AppModalDialog : public NotificationObserver {
|
| + public:
|
| + // A union of data necessary to determine the type of message box to
|
| + // show. |dialog_flags| is a MessageBox flag.
|
| + AppModalDialog(WebContents* web_contents,
|
| + const std::wstring& title,
|
| + int dialog_flags,
|
| + const std::wstring& message_text,
|
| + const std::wstring& default_prompt_text,
|
| + bool display_suppress_checkbox,
|
| + bool is_before_unload_dialog,
|
| + IPC::Message* reply_msg);
|
| + ~AppModalDialog();
|
| +
|
| + // Called by the app modal window queue when it is time to show this window.
|
| + void ShowModalDialog();
|
| +
|
| + /////////////////////////////////////////////////////////////////////////////
|
| + // The following methods are platform specific and should be implemented in
|
| + // the platform specific .cc files.
|
| + // Create the platform specific NativeDialog and display it.
|
| + void CreateAndShowDialog();
|
| +
|
| + // Close the dialog if it is showing.
|
| + void CloseModalDialog();
|
| +
|
| + // Called by the app modal window queue to activate the window.
|
| + void ActivateModalDialog();
|
| +
|
| + /////////////////////////////////////////////////////////////////////////////
|
| + // Getters so NativeDialog can get information about the message box.
|
| + WebContents* web_contents() {
|
| + return web_contents_;
|
| + }
|
| + int dialog_flags() {
|
| + return dialog_flags_;
|
| + }
|
| + std::wstring title() {
|
| + return title_;
|
| + }
|
| + bool is_before_unload_dialog() {
|
| + return is_before_unload_dialog_;
|
| + }
|
| +
|
| + // Callbacks from NativeDialog when the user accepts or cancels the dialog.
|
| + void OnCancel();
|
| + void OnAccept(const std::wstring& prompt_text, bool suppress_js_messages);
|
| +
|
| + // Helper methods used to query or control the dialog. This is used by
|
| + // automation.
|
| + int GetDialogButtons();
|
| + void AcceptWindow();
|
| + void CancelWindow();
|
| +
|
| + private:
|
| + void InitNotifications();
|
| +
|
| + // NotificationObserver implementation.
|
| + virtual void Observe(NotificationType type,
|
| + const NotificationSource& source,
|
| + const NotificationDetails& details);
|
| +
|
| + NotificationRegistrar registrar_;
|
| +
|
| + // A reference to the platform native dialog box.
|
| + NativeDialog dialog_;
|
| +
|
| + // Information about the message box is held in the following variables.
|
| + WebContents* web_contents_;
|
| + std::wstring title_;
|
| + int dialog_flags_;
|
| + std::wstring message_text_;
|
| + std::wstring default_prompt_text_;
|
| + bool display_suppress_checkbox_;
|
| + bool is_before_unload_dialog_;
|
| + IPC::Message* reply_msg_;
|
| +};
|
| +
|
| +#endif // #ifndef CHROME_BROWSER_APP_MODAL_DIALOG_H_
|
|
|