/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
#include "domstubs.idl"
#include "nsIPrompt.idl"
#include "nsIWebProgressListener.idl"

interface nsIDOMWindow;
interface nsIMsgWindow;

[scriptable, uuid(5aae7f1b-95f1-422e-86d5-2b1d599e2ccf)]
interface nsIMsgProgress: nsIWebProgressListener {

  /** 
   * Open the progress dialog, you can specify parameters through an xpcom object
   */
  void openProgressDialog(in nsIDOMWindow parent, 
                          in nsIMsgWindow aMsgWindow, 
                          in string dialogURL, 
                          in boolean inDisplayModal,
                          in nsISupports parameters);

  /* Close the progress dialog */
  void closeProgressDialog(in boolean forceClose);
  
  /* Register a Web Progress Listener */
  void registerListener(in nsIWebProgressListener listener);

  /* Unregister a Web Progress Listener */
  void unregisterListener(in nsIWebProgressListener listener);
  
  /* Indicated if the user asked to cancel the current process */
  attribute boolean processCanceledByUser;

  attribute nsIMsgWindow msgWindow;
};


