2) Adds a couple of new methods and an attr to nsIWebBrowserPrint (navigate, is frameset, & exitPP) 3) Removes all but one method from nsIContentViewerFile.idl/h the remaining call is for print regression testing 4) Removes the "static" implementation of nsIContentViewerFile.h 5) Fixed up nsIContentViewerFile.idl and turned it back on so it is now generating the header file 6) Removed all uses of nsIContentViewerFile.h except for the WebCrawler (uses it for Printing Regression testing) 7) nsDocumentViewer.cpp now implements nsIWebBrowserPrint.idl this makes it easier to add new print functionality in one place 8) You can now ask an instance of the ContentViewer for a nsIWebBrowserPrint to do printing (it retruns the nsIWebBrowserPrint interface implemented by the nsDocumentViewer) 9) Anybody who was using nsIContentViewerFile to print will now use nsIWebBrowserPrint 10) You can now do a "GetInterface()" on a GlobalWindow for a nsIWebBrowserPrint 11) The browser UI now uses the GetInterface on the GlobalWindow to get a nsIWebBrowserPrint object to do printing and this can be used for all printing functionality Bug 120622 r=dcone sr=waterson git-svn-id: svn://10.0.0.236/trunk@113419 18797224-902f-48f8-a5cc-f745e15eee43
166 lines
4.9 KiB
C++
166 lines
4.9 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is the Mozilla browser.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape
|
|
* Communications, Inc. Portions created by Netscape are
|
|
* Copyright (C) 1999, Mozilla. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Travis Bogard <travis@netscape.com>
|
|
*/
|
|
|
|
#ifndef nsWebBrowser_h__
|
|
#define nsWebBrowser_h__
|
|
|
|
// Local Includes
|
|
#include "nsDocShellTreeOwner.h"
|
|
|
|
// Core Includes
|
|
#include "nsCOMPtr.h"
|
|
|
|
// Interfaces needed
|
|
#include "nsCWebBrowser.h"
|
|
#include "nsIBaseWindow.h"
|
|
#include "nsIDocShell.h"
|
|
#include "nsIDocShellTreeItem.h"
|
|
#include "nsIInterfaceRequestor.h"
|
|
#include "nsIInterfaceRequestorUtils.h"
|
|
#include "nsIScrollable.h"
|
|
#include "nsISHistory.h"
|
|
#include "nsITextScroll.h"
|
|
#include "nsIWidget.h"
|
|
#include "nsIWebProgress.h"
|
|
#include "nsISecureBrowserUI.h"
|
|
#include "nsIWebBrowser.h"
|
|
#include "nsIWebNavigation.h"
|
|
#include "nsIWebBrowserSetup.h"
|
|
#include "nsIWebBrowserPersist.h"
|
|
#include "nsIWebBrowserFocus.h"
|
|
#include "nsIWindowWatcher.h"
|
|
#include "nsIPrintSettings.h"
|
|
|
|
#include "nsVoidArray.h"
|
|
#include "nsWeakPtr.h"
|
|
|
|
class nsIContentViewerFile;
|
|
|
|
class nsWebBrowserInitInfo
|
|
{
|
|
public:
|
|
//nsIBaseWindow Stuff
|
|
PRInt32 x;
|
|
PRInt32 y;
|
|
PRInt32 cx;
|
|
PRInt32 cy;
|
|
PRBool visible;
|
|
nsCOMPtr<nsISHistory> sessionHistory;
|
|
nsString name;
|
|
};
|
|
|
|
class nsWebBrowserListenerState
|
|
{
|
|
public:
|
|
PRBool Equals(nsIWeakReference *aListener, const nsIID& aID) {
|
|
if (mWeakPtr.get() == aListener && mID.Equals(aID)) return PR_TRUE;
|
|
return PR_FALSE;
|
|
};
|
|
|
|
nsWeakPtr mWeakPtr;
|
|
nsIID mID;
|
|
};
|
|
|
|
class nsWebBrowser : public nsIWebBrowser,
|
|
public nsIWebNavigation,
|
|
public nsIWebBrowserSetup,
|
|
public nsIDocShellTreeItem,
|
|
public nsIBaseWindow,
|
|
public nsIScrollable,
|
|
public nsITextScroll,
|
|
public nsIInterfaceRequestor,
|
|
public nsIWebBrowserPersist,
|
|
public nsIWebBrowserFocus,
|
|
public nsIWebProgressListener,
|
|
public nsSupportsWeakReference
|
|
{
|
|
friend class nsDocShellTreeOwner;
|
|
public:
|
|
nsWebBrowser();
|
|
|
|
NS_DECL_ISUPPORTS
|
|
|
|
NS_DECL_NSIBASEWINDOW
|
|
NS_DECL_NSIDOCSHELLTREEITEM
|
|
NS_DECL_NSIINTERFACEREQUESTOR
|
|
NS_DECL_NSISCROLLABLE
|
|
NS_DECL_NSITEXTSCROLL
|
|
NS_DECL_NSIWEBBROWSER
|
|
NS_DECL_NSIWEBNAVIGATION
|
|
NS_DECL_NSIWEBBROWSERSETUP
|
|
NS_DECL_NSIWEBBROWSERPERSIST
|
|
NS_DECL_NSIWEBBROWSERFOCUS
|
|
NS_DECL_NSIWEBPROGRESSLISTENER
|
|
|
|
protected:
|
|
virtual ~nsWebBrowser();
|
|
NS_IMETHOD InternalDestroy();
|
|
|
|
NS_IMETHOD SetDocShell(nsIDocShell* aDocShell);
|
|
NS_IMETHOD EnsureDocShellTreeOwner();
|
|
NS_IMETHOD GetPrimaryContentWindow(nsIDOMWindowInternal **aDomWindow);
|
|
NS_IMETHOD BindListener(nsISupports *aListener, const nsIID& aIID);
|
|
NS_IMETHOD UnBindListener(nsISupports *aListener, const nsIID& aIID);
|
|
NS_IMETHOD EnableGlobalHistory(PRBool aEnable);
|
|
|
|
static nsEventStatus PR_CALLBACK HandleEvent(nsGUIEvent *aEvent);
|
|
|
|
protected:
|
|
nsDocShellTreeOwner* mDocShellTreeOwner;
|
|
nsCOMPtr<nsIDocShell> mDocShell;
|
|
nsCOMPtr<nsIInterfaceRequestor> mDocShellAsReq;
|
|
nsCOMPtr<nsIBaseWindow> mDocShellAsWin;
|
|
nsCOMPtr<nsIDocShellTreeItem> mDocShellAsItem;
|
|
nsCOMPtr<nsIWebNavigation> mDocShellAsNav;
|
|
nsCOMPtr<nsIScrollable> mDocShellAsScrollable;
|
|
nsCOMPtr<nsITextScroll> mDocShellAsTextScroll;
|
|
nsCOMPtr<nsIWidget> mInternalWidget;
|
|
nsCOMPtr<nsIWindowWatcher> mWWatch;
|
|
nsWebBrowserInitInfo* mInitInfo;
|
|
PRUint32 mContentType;
|
|
nativeWindow mParentNativeWindow;
|
|
nsIWebProgressListener *mProgressListener;
|
|
nsCOMPtr<nsIWebProgress> mWebProgress;
|
|
nsCOMPtr<nsISecureBrowserUI> mSecurityUI;
|
|
|
|
nsCOMPtr<nsIPrintSettings> mPrintSettings;
|
|
|
|
// cached background color
|
|
nscolor mBackgroundColor;
|
|
|
|
// persistence object
|
|
nsCOMPtr<nsIWebBrowserPersist> mPersist;
|
|
PRUint32 mPersistCurrentState;
|
|
PRUint32 mPersistResult;
|
|
PRUint32 mPersistFlags;
|
|
|
|
//Weak Reference interfaces...
|
|
nsIWidget* mParentWidget;
|
|
nsIDocShellTreeItem* mParent;
|
|
nsVoidArray * mListenerArray;
|
|
|
|
};
|
|
|
|
#endif /* nsWebBrowser_h__ */
|
|
|
|
|