/* void onStateChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in unsigned long aStateFlags, in nsresult aStatus); */ NS_IMETHODIMP CDlgPrintListener::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags, nsresult aStatus) { if (m_PrintDlg) { if (aStateFlags == (nsIWebProgressListener::STATE_START|nsIWebProgressListener::STATE_IS_DOCUMENT)) { return m_PrintDlg->OnStartPrinting(); } else if (aStateFlags == (nsIWebProgressListener::STATE_STOP|nsIWebProgressListener::STATE_IS_DOCUMENT)) { return m_PrintDlg->OnEndPrinting(aStatus); } } return NS_OK; }
/* void onProgressChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aCurSelfProgress, in long aMaxSelfProgress, in long aCurTotalProgress, in long aMaxTotalProgress); */ NS_IMETHODIMP CDlgPrintListener::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRInt32 aCurSelfProgress, PRInt32 aMaxSelfProgress, PRInt32 aCurTotalProgress, PRInt32 aMaxTotalProgress) { if (m_PrintDlg) { return m_PrintDlg->OnProgressPrinting(aCurSelfProgress, aMaxSelfProgress); } return NS_OK; }
/* void onProgressChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aCurSelfProgress, in long aMaxSelfProgress, in long aCurTotalProgress, in long aMaxTotalProgress); */ NS_IMETHODIMP CPrintingPromptService::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRInt32 aCurSelfProgress, PRInt32 aMaxSelfProgress, PRInt32 aCurTotalProgress, PRInt32 aMaxTotalProgress) { if (m_PPDlg) { m_PPDlg->OnProgressPrinting(aCurTotalProgress, aMaxTotalProgress); } return NS_OK; }
/* void showProgress (in nsIDOMWindow parent, in nsIWebBrowserPrint webBrowserPrint, in nsIPrintSettings printSettings, in nsIObserver openDialogObserver, in boolean isForPrinting, out nsIWebProgressListener webProgressListener, out nsIPrintProgressParams printProgressParams, out boolean notifyOnOpen); */ NS_IMETHODIMP CPrintingPromptService::ShowProgress(nsIDOMWindow* parent, nsIWebBrowserPrint* webBrowserPrint, // ok to be null nsIPrintSettings* printSettings, // ok to be null nsIObserver* openDialogObserver, // ok to be null PRBool isForPrinting, nsIWebProgressListener** webProgressListener, nsIPrintProgressParams** printProgressParams, PRBool* notifyOnOpen) { NS_ENSURE_ARG(webProgressListener); NS_ENSURE_ARG(printProgressParams); NS_ENSURE_ARG(notifyOnOpen); ResourceState setState; nsresult rv; nsPrintProgressParams* prtProgressParams = new nsPrintProgressParams(); rv = prtProgressParams->QueryInterface(NS_GET_IID(nsIPrintProgressParams), (void**)printProgressParams); NS_ENSURE_SUCCESS(rv, rv); mObserver = openDialogObserver; *notifyOnOpen = PR_FALSE; if (printProgressParams) { CWnd *wnd = CWndForDOMWindow(parent); m_PPDlg = new CPrintProgressDialog(wnd, isForPrinting, *printProgressParams, webBrowserPrint, printSettings); m_PPDlg->Create(IDD_PRINT_PROGRESS_DIALOG); m_PPDlg->ShowWindow(SW_SHOW); m_PPDlg->UpdateWindow(); *notifyOnOpen = FirePauseEvent(); } *webProgressListener = NS_STATIC_CAST(nsIWebProgressListener*, this); NS_ADDREF(*webProgressListener); return rv; }
/* void onStateChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aStateFlags, in nsresult aStatus); */ NS_IMETHODIMP CPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags, nsresult aStatus) { if (aStateFlags & STATE_START) { if (m_PPDlg) { m_PPDlg->OnStartPrinting(); } } if (aStateFlags & STATE_STOP) { if (m_PPDlg) { m_PPDlg->OnProgressPrinting(100, 100); m_PPDlg->DestroyWindow(); m_PPDlg = NULL; } } return NS_OK; }