summaryrefslogtreecommitdiffstats
path: root/embedding/components/printingui/win/nsPrintingPromptService.h
blob: 76bc7a804066e13036a427f89c79356490b9f17b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* -*- Mode: C++; tab-width: 2; 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/. */

#ifndef __nsPrintingPromptService_h
#define __nsPrintingPromptService_h

#include <windows.h>

// {E042570C-62DE-4bb6-A6E0-798E3C07B4DF}
#define NS_PRINTINGPROMPTSERVICE_CID \
 {0xe042570c, 0x62de, 0x4bb6, { 0xa6, 0xe0, 0x79, 0x8e, 0x3c, 0x7, 0xb4, 0xdf}}
#define NS_PRINTINGPROMPTSERVICE_CONTRACTID \
 "@mozilla.org/embedcomp/printingprompt-service;1"

#include "nsCOMPtr.h"
#include "nsIPrintingPromptService.h"
#include "nsPIPromptService.h"
#include "nsIWindowWatcher.h"

// Printing Progress Includes
#include "nsPrintProgress.h"
#include "nsPrintProgressParams.h"
#include "nsIWebProgressListener.h"

class nsIDOMWindow;
class nsIDialogParamBlock;

class nsPrintingPromptService: public nsIPrintingPromptService,
                               public nsIWebProgressListener
{
    virtual ~nsPrintingPromptService();

public:
    nsPrintingPromptService();

    nsresult Init();

    NS_DECL_ISUPPORTS
    NS_DECL_NSIPRINTINGPROMPTSERVICE
    NS_DECL_NSIWEBPROGRESSLISTENER

private:
    HWND GetHWNDForDOMWindow(mozIDOMWindowProxy *parent);
    nsresult DoDialog(mozIDOMWindowProxy *aParent,
                      nsIDialogParamBlock *aParamBlock, 
                      nsIPrintSettings* aPS,
                      const char *aChromeURL);

    nsCOMPtr<nsIWindowWatcher> mWatcher;
    nsCOMPtr<nsIPrintProgress> mPrintProgress;
    nsCOMPtr<nsIWebProgressListener> mWebProgressListener;

};

#endif