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); };