diff --git a/mozilla/embedding/browser/powerplant/PPBrowser.xml b/mozilla/embedding/browser/powerplant/PPBrowser.xml
index e29d4838c47..0e4fa239c6b 100644
--- a/mozilla/embedding/browser/powerplant/PPBrowser.xml
+++ b/mozilla/embedding/browser/powerplant/PPBrowser.xml
@@ -1194,6 +1194,13 @@
Text
Debug
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+ Text
+ Debug
+
Name
ContextMenus.r
@@ -1466,6 +1473,11 @@
CWebBrowserCMAttachment.cpp
MacOS
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+
Name
ContextMenus.r
@@ -2664,6 +2676,13 @@
Text
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+ Text
+
+
Name
ContextMenus.r
@@ -2926,6 +2945,11 @@
CWebBrowserCMAttachment.cpp
MacOS
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+
Name
ContextMenus.r
@@ -4078,6 +4102,13 @@
Text
Debug
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+ Text
+ Debug
+
Name
ContextMenus.r
@@ -4308,6 +4339,11 @@
CWebBrowserCMAttachment.cpp
MacOS
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+
Name
ContextMenus.r
@@ -5440,6 +5476,13 @@
Text
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+ Text
+
+
Name
ContextMenus.r
@@ -5585,6 +5628,11 @@
CWebBrowserCMAttachment.cpp
MacOS
+
+ Name
+ CPrintAttachment.cpp
+ MacOS
+
Name
CAppFileLocationProvider.cpp
@@ -5816,6 +5864,12 @@
CWebBrowserCMAttachment.cpp
MacOS
+
+ PPEmbedDebug
+ Name
+ CPrintAttachment.cpp
+ MacOS
+
PPEmbedDebug
Name
diff --git a/mozilla/embedding/browser/powerplant/resources/Browser.ppob b/mozilla/embedding/browser/powerplant/resources/Browser.ppob
index f483174086d..804a54bea41 100644
Binary files a/mozilla/embedding/browser/powerplant/resources/Browser.ppob and b/mozilla/embedding/browser/powerplant/resources/Browser.ppob differ
diff --git a/mozilla/embedding/browser/powerplant/source/ApplIDs.h b/mozilla/embedding/browser/powerplant/source/ApplIDs.h
index ab1f4042130..caaeb57839c 100644
--- a/mozilla/embedding/browser/powerplant/source/ApplIDs.h
+++ b/mozilla/embedding/browser/powerplant/source/ApplIDs.h
@@ -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
diff --git a/mozilla/embedding/browser/powerplant/source/CBrowserApp.cp b/mozilla/embedding/browser/powerplant/source/CBrowserApp.cp
index 21a4993e223..da27bef1b30 100644
--- a/mozilla/embedding/browser/powerplant/source/CBrowserApp.cp
+++ b/mozilla/embedding/browser/powerplant/source/CBrowserApp.cp
@@ -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(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(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(theWindow->FindPaneByID(CBrowserShell::paneID_MainBrowser));
ThrowIfNil_(theBrowser);
diff --git a/mozilla/embedding/browser/powerplant/source/CBrowserShell.cpp b/mozilla/embedding/browser/powerplant/source/CBrowserShell.cpp
index d025807b90f..b2b5b560819 100644
--- a/mozilla/embedding/browser/powerplant/source/CBrowserShell.cpp
+++ b/mozilla/embedding/browser/powerplant/source/CBrowserShell.cpp
@@ -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 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
//*****************************************************************************
diff --git a/mozilla/embedding/browser/powerplant/source/CBrowserShell.h b/mozilla/embedding/browser/powerplant/source/CBrowserShell.h
index b371fc6d2d1..761cddbd9eb 100644
--- a/mozilla/embedding/browser/powerplant/source/CBrowserShell.h
+++ b/mozilla/embedding/browser/powerplant/source/CBrowserShell.h
@@ -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 mPrintSettings;
};
diff --git a/mozilla/embedding/browser/powerplant/source/CBrowserWindow.cp b/mozilla/embedding/browser/powerplant/source/CBrowserWindow.cp
index 6450ed84d26..14fd868ccc5 100644
--- a/mozilla/embedding/browser/powerplant/source/CBrowserWindow.cp
+++ b/mozilla/embedding/browser/powerplant/source/CBrowserWindow.cp
@@ -17,7 +17,7 @@
* Copyright (C) 1999, Mozilla. All Rights Reserved.
*
* Contributor(s):
- * Conrad Carlen
+ * Conrad Carlen
*/
#include "nsString.h"
diff --git a/mozilla/embedding/browser/powerplant/source/CWindowCreator.cpp b/mozilla/embedding/browser/powerplant/source/CWindowCreator.cpp
index a1099fa18ce..b91395e95cf 100644
--- a/mozilla/embedding/browser/powerplant/source/CWindowCreator.cpp
+++ b/mozilla/embedding/browser/powerplant/source/CWindowCreator.cpp
@@ -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(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();
diff --git a/mozilla/embedding/browser/powerplant/source/CWindowCreator.h b/mozilla/embedding/browser/powerplant/source/CWindowCreator.h
index 8415b7b6c26..96fe447ac6a 100644
--- a/mozilla/embedding/browser/powerplant/source/CWindowCreator.h
+++ b/mozilla/embedding/browser/powerplant/source/CWindowCreator.h
@@ -59,6 +59,7 @@ class CWindowCreator : public nsIWindowCreator
static nsresult Initialize();
static LWindow* CreateWindowInternal(PRUint32 inChromeFlags,
+ PRBool enablePrinting,
PRInt32 width, PRInt32 height);
};