1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 #ifndef __nsPrintProgress_h
7 #define __nsPrintProgress_h
8 
9 #include "nsIPrintProgress.h"
10 
11 #include "nsCOMArray.h"
12 #include "nsCOMPtr.h"
13 #include "nsString.h"
14 
15 class nsIDOMWindow;
16 class nsIObserver;
17 class nsIPrintSettings;
18 
19 class nsPrintProgress : public nsIPrintProgress {
20  public:
21   NS_DECL_THREADSAFE_ISUPPORTS
22   NS_DECL_NSIPRINTPROGRESS
23   NS_DECL_NSIWEBPROGRESSLISTENER
24 
25   explicit nsPrintProgress(nsIPrintSettings* aPrintSettings);
26 
27  protected:
28   virtual ~nsPrintProgress();
29 
30  private:
31   nsresult ReleaseListeners();
32 
33   bool m_closeProgress;
34   bool m_processCanceled;
35   nsString m_pendingStatus;
36   int32_t m_pendingStateFlags;
37   nsresult m_pendingStateValue;
38   nsCOMPtr<nsIDOMWindow> m_dialog;
39   nsCOMArray<nsIWebProgressListener> m_listenerList;
40   nsCOMPtr<nsIObserver> m_observer;
41   nsCOMPtr<nsIPrintSettings> m_PrintSetting;
42 };
43 
44 #endif
45