Bug 128926 - Add printing support to PPEmbed. r=pink/sr=beard/a=asa

git-svn-id: svn://10.0.0.236/trunk@117862 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
ccarlen%netscape.com
2002-04-01 15:35:57 +00:00
parent a36e397ab1
commit d0ca31b6d3
9 changed files with 101 additions and 8 deletions

View File

@@ -1194,6 +1194,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>ContextMenus.r</PATH>
@@ -1466,6 +1473,11 @@
<PATH>CWebBrowserCMAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>ContextMenus.r</PATH>
@@ -2664,6 +2676,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>ContextMenus.r</PATH>
@@ -2926,6 +2945,11 @@
<PATH>CWebBrowserCMAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>ContextMenus.r</PATH>
@@ -4078,6 +4102,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>ContextMenus.r</PATH>
@@ -4308,6 +4339,11 @@
<PATH>CWebBrowserCMAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>ContextMenus.r</PATH>
@@ -5440,6 +5476,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>ContextMenus.r</PATH>
@@ -5585,6 +5628,11 @@
<PATH>CWebBrowserCMAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>CAppFileLocationProvider.cpp</PATH>
@@ -5816,6 +5864,12 @@
<PATH>CWebBrowserCMAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>PPEmbedDebug</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>CPrintAttachment.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>PPEmbedDebug</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>

View File

@@ -54,8 +54,12 @@ enum {
dlog_ConfirmCheck = 1284,
dlog_Prompt = 1285,
dlog_PromptNameAndPass = 1286,
dlog_PromptPassword = 1287,
dlog_Universal = 1288
dlog_PromptPassword = 1287
};
// Printing
enum {
dlog_OS9PrintProgress = 1290
};
// Profile Mgmt

View File

@@ -394,7 +394,7 @@ void CBrowserApp::HandleAppleEvent(const AppleEvent& inAppleEvent,
else
chromeFlags = nsIWebBrowserChrome::CHROME_DEFAULT;
LWindow *theWindow = CWindowCreator::CreateWindowInternal(chromeFlags, -1, -1);
LWindow *theWindow = CWindowCreator::CreateWindowInternal(chromeFlags, PR_TRUE, -1, -1);
ThrowIfNil_(theWindow);
CBrowserShell *theBrowser = dynamic_cast<CBrowserShell*>(theWindow->FindPaneByID(CBrowserShell::paneID_MainBrowser));
ThrowIfNil_(theBrowser);
@@ -429,7 +429,7 @@ CBrowserApp::ObeyCommand(
case PP_PowerPlant::cmd_New:
{
LWindow *theWindow = CWindowCreator::CreateWindowInternal(nsIWebBrowserChrome::CHROME_DEFAULT, -1, -1);
LWindow *theWindow = CWindowCreator::CreateWindowInternal(nsIWebBrowserChrome::CHROME_DEFAULT, PR_TRUE, -1, -1);
ThrowIfNil_(theWindow);
CBrowserShell *theBrowser = dynamic_cast<CBrowserShell*>(theWindow->FindPaneByID(CBrowserShell::paneID_MainBrowser));
ThrowIfNil_(theBrowser);
@@ -455,7 +455,7 @@ CBrowserApp::ObeyCommand(
rv = NS_GetURLSpecFromFile(macFile, urlSpec);
ThrowIfError_(NS_ERROR_GET_CODE(rv));
LWindow *theWindow = CWindowCreator::CreateWindowInternal(nsIWebBrowserChrome::CHROME_DEFAULT, -1, -1);
LWindow *theWindow = CWindowCreator::CreateWindowInternal(nsIWebBrowserChrome::CHROME_DEFAULT, PR_TRUE, -1, -1);
ThrowIfNil_(theWindow);
CBrowserShell *theBrowser = dynamic_cast<CBrowserShell*>(theWindow->FindPaneByID(CBrowserShell::paneID_MainBrowser));
ThrowIfNil_(theBrowser);

View File

@@ -59,6 +59,7 @@
#include "nsWeakReference.h"
#include "nsIChannel.h"
#include "nsIWidget.h"
#include "nsIWebBrowserPrint.h"
// Local
#include "ApplIDs.h"
@@ -877,6 +878,25 @@ NS_METHOD CBrowserShell::GetContentViewer(nsIContentViewer** aViewer)
}
NS_METHOD CBrowserShell::GetPrintSettings(nsIPrintSettings** aSettings)
{
NS_ENSURE_ARG_POINTER(aSettings);
*aSettings = nsnull;
if (!mPrintSettings) {
// If we don't have print settings yet, make new ones.
nsCOMPtr<nsIWebBrowserPrint> wbPrint(do_GetInterface(mWebBrowser));
NS_ENSURE_TRUE(wbPrint, NS_ERROR_NO_INTERFACE);
wbPrint->GetNewPrintSettings(getter_AddRefs(mPrintSettings));
}
if (mPrintSettings) {
*aSettings = mPrintSettings;
NS_ADDREF(*aSettings);
return NS_OK;
}
return NS_ERROR_FAILURE;
}
//*****************************************************************************
//*** CBrowserShell: Navigation
//*****************************************************************************

View File

@@ -38,6 +38,7 @@
#include "nsIEventSink.h"
#include "nsIWebProgress.h"
#include "nsIDragHelperService.h"
#include "nsIPrintSettings.h"
class CBrowserChrome;
class CBrowserShellProgressListener;
@@ -122,6 +123,8 @@ public:
NS_METHOD GetContentViewer(nsIContentViewer** aViewer);
NS_METHOD GetPrintSettings(nsIPrintSettings** aSettings);
Boolean IsBusy();
Boolean CanGoBack();
Boolean CanGoForward();
@@ -210,6 +213,8 @@ protected:
// during OnShowContextMenu.
PRUint32 mContextMenuContext;
nsIDOMNode *mContextMenuDOMNode;
nsCOMPtr<nsIPrintSettings> mPrintSettings;
};

View File

@@ -17,7 +17,7 @@
* Copyright (C) 1999, Mozilla. All Rights Reserved.
*
* Contributor(s):
* Conrad Carlen <conrad@ingress.com>
* Conrad Carlen <ccarlen@netscape.com>
*/
#include "nsString.h"

View File

@@ -44,6 +44,7 @@
#include "CBrowserShell.h"
#include "CBrowserWindow.h"
#include "CPrintAttachment.h"
#include "ApplIDs.h"
// ---------------------------------------------------------------------------
@@ -71,7 +72,7 @@ NS_IMETHODIMP CWindowCreator::CreateChromeWindow(nsIWebBrowserChrome *aParent,
// we're ignoring aParent,
// but since windows on the Mac don't have parents anyway...
try {
LWindow *theWindow = CreateWindowInternal(aChromeFlags, -1, -1);
LWindow *theWindow = CreateWindowInternal(aChromeFlags, PR_FALSE, -1, -1);
CBrowserShell *browser = dynamic_cast<CBrowserShell*>(theWindow->FindPaneByID(CBrowserShell::paneID_MainBrowser));
ThrowIfNil_(browser);
browser->GetWebBrowserChrome(_retval);
@@ -105,6 +106,7 @@ nsresult CWindowCreator::Initialize()
}
LWindow* CWindowCreator::CreateWindowInternal(PRUint32 inChromeFlags,
PRBool enablePrinting,
PRInt32 width, PRInt32 height)
{
const SInt16 kStatusBarHeight = 16;
@@ -233,7 +235,14 @@ LWindow* CWindowCreator::CreateWindowInternal(PRUint32 inChromeFlags,
statusView->PlaceInSuperFrameAt(0, windowSize.height - kStatusBarHeight + 1, false);
statusView->ResizeFrameTo(windowSize.width - 15, kStatusBarHeight, false);
}
if (enablePrinting)
{
CPrintAttachment *printAttachment = new CPrintAttachment(CBrowserShell::paneID_MainBrowser);
ThrowIfNil_(printAttachment);
theWindow->AddAttachment(printAttachment);
}
// Now the window is constructed...
theWindow->FinishCreate();

View File

@@ -59,6 +59,7 @@ class CWindowCreator : public nsIWindowCreator
static nsresult Initialize();
static LWindow* CreateWindowInternal(PRUint32 inChromeFlags,
PRBool enablePrinting,
PRInt32 width, PRInt32 height);
};