| Index: chrome/browser/js_modal_dialog.h
|
| ===================================================================
|
| --- chrome/browser/js_modal_dialog.h (revision 0)
|
| +++ chrome/browser/js_modal_dialog.h (revision 0)
|
| @@ -0,0 +1,102 @@
|
| +// 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_JS_MODAL_DIALOG_H_
|
| +#define CHROME_BROWSER_JS_MODAL_DIALOG_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "build/build_config.h"
|
| +#include "chrome/browser/app_modal_dialog.h"
|
| +#include "chrome/common/notification_observer.h"
|
| +#include "chrome/common/notification_registrar.h"
|
| +#include "net/base/cookie_monster.h"
|
| +
|
| +class ExtensionHost;
|
| +class JavaScriptMessageBoxClient;
|
| +
|
| +// A controller+model class for JavaScript alert, confirm, prompt, and
|
| +// onbeforeunload dialog boxes.
|
| +class JavaScriptAppModalDialog : public AppModalDialog,
|
| + public NotificationObserver {
|
| + public:
|
| + // A union of data necessary to determine the type of message box to
|
| + // show. |dialog_flags| is a MessageBox flag.
|
| + JavaScriptAppModalDialog(JavaScriptMessageBoxClient* client,
|
| + 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);
|
| + virtual ~JavaScriptAppModalDialog();
|
| +
|
| + // AppModalDialog overrides.
|
| +#if defined(OS_LINUX) || defined(OS_MACOSX)
|
| + virtual void CreateAndShowDialog();
|
| +#endif
|
| +#if defined(OS_LINUX)
|
| + virtual void HandleDialogResponse(GtkDialog* dialog, gint response_id);
|
| +#endif
|
| + virtual int GetDialogButtons();
|
| + virtual void AcceptWindow();
|
| + virtual void CancelWindow();
|
| +
|
| + /////////////////////////////////////////////////////////////////////////////
|
| + // Getters so NativeDialog can get information about the message box.
|
| + JavaScriptMessageBoxClient* client() {
|
| + return client_;
|
| + }
|
| + int dialog_flags() {
|
| + return dialog_flags_;
|
| + }
|
| + 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);
|
| + void OnClose();
|
| +
|
| + protected:
|
| + // AppModalDialog overrides.
|
| + virtual void Cleanup();
|
| + virtual NativeDialog CreateNativeDialog();
|
| +
|
| + private:
|
| + // NotificationObserver implementation.
|
| + virtual void Observe(NotificationType type,
|
| + const NotificationSource& source,
|
| + const NotificationDetails& details);
|
| +
|
| + // Initializes for notifications to listen.
|
| + void InitNotifications();
|
| +
|
| + NotificationRegistrar registrar_;
|
| +
|
| + // An implementation of the client interface to provide supporting methods
|
| + // and receive results.
|
| + JavaScriptMessageBoxClient* client_;
|
| +
|
| + // The client_ as an ExtensionHost, cached for use during notifications that
|
| + // may arrive after the client has entered its destructor (and is thus
|
| + // treated as a base JavaScriptMessageBoxClient). This will be NULL if the
|
| + // client is not an ExtensionHost.
|
| + ExtensionHost* extension_host_;
|
| +
|
| + // Information about the message box is held in the following variables.
|
| + 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_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(JavaScriptAppModalDialog);
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_JS_MODAL_DIALOG_H_
|
| +
|
|
|
| Property changes on: chrome/browser/js_modal_dialog.h
|
| ___________________________________________________________________
|
| Name: svn:eol-style
|
| + LF
|
|
|
|
|