From 40889d01ed4e11b005a4cdea2ab1dfc8e173bed9 Mon Sep 17 00:00:00 2001 From: "rods%netscape.com" Date: Fri, 15 Mar 2002 14:49:09 +0000 Subject: [PATCH] Backing out changes - just as well, I forgot to but the bug # and r/sr/a anyway git-svn-id: svn://10.0.0.236/trunk@116643 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/base/src/nsDocumentViewer.cpp | 57 +- .../activex/src/control/MozillaBrowser.cpp | 23 +- .../browser/webBrowser/nsIWebBrowserPrint.idl | 45 +- mozilla/gfx/idl/nsIPrintOptions.idl | 184 +- mozilla/gfx/idl/nsIPrintSettings.idl | 31 - mozilla/gfx/src/nsPrintOptionsImpl.cpp | 1727 ++++++++++------- mozilla/gfx/src/nsPrintOptionsImpl.h | 50 +- mozilla/gfx/src/nsPrintSettingsImpl.cpp | 48 +- mozilla/gfx/src/nsPrintSettingsImpl.h | 3 +- .../src/windows/nsDeviceContextSpecWin.cpp | 5 +- mozilla/layout/base/nsDocumentViewer.cpp | 57 +- mozilla/modules/libpref/src/init/all.js | 7 +- mozilla/modules/libpref/src/unix/unix.js | 1 + .../plugin/base/src/nsPluginViewer.cpp | 26 +- .../global/resources/content/printdialog.js | 34 +- .../resources/content/unix/printjoboptions.js | 29 +- 16 files changed, 1368 insertions(+), 959 deletions(-) diff --git a/mozilla/content/base/src/nsDocumentViewer.cpp b/mozilla/content/base/src/nsDocumentViewer.cpp index d27d54b3e0f..af04ece56b0 100644 --- a/mozilla/content/base/src/nsDocumentViewer.cpp +++ b/mozilla/content/base/src/nsDocumentViewer.cpp @@ -3828,7 +3828,7 @@ DocumentViewerImpl::FindXMostFrameInList(nsIPresContext* aPresContext, rect.y += aY; nscoord xMost = rect.XMost(); -#ifdef DEBUG_PRINTING // keep this here but leave it turned off +#ifdef DEBUG_PRINTING_X // keep this here but leave it turned off nsAutoString tmp; nsIFrameDebug* frameDebug; if (NS_SUCCEEDED(CallQueryInterface(child, &frameDebug))) { @@ -3839,7 +3839,7 @@ DocumentViewerImpl::FindXMostFrameInList(nsIPresContext* aPresContext, if (xMost > aMaxWidth) { aMaxWidth = xMost; -#ifdef DEBUG_PRINTING // keep this here but leave it turned off +#ifdef DEBUG_PRINTING_X // keep this here but leave it turned off printf("%p - %d %s ", child, aMaxWidth, NS_LossyConvertUCS2toASCII(tmp).get()); if (aList == nsLayoutAtoms::overflowList) printf(" nsLayoutAtoms::overflowList\n"); if (aList == nsLayoutAtoms::floaterList) printf(" nsLayoutAtoms::floaterList\n"); @@ -7354,6 +7354,36 @@ DocumentViewerImpl::GetCurrentPrintSettings(nsIPrintSettings * *aCurrentPrintSet return NS_OK; } +/* attribute nsIPrintSettings globalPrintSettingsValues; */ +NS_IMETHODIMP +DocumentViewerImpl::GetGlobalPrintSettingsValues(nsIPrintSettings * *aGlobalPrintSettingsValues) +{ + NS_ENSURE_ARG_POINTER(aGlobalPrintSettingsValues); + NS_ENSURE_ARG_POINTER(*aGlobalPrintSettingsValues); + + nsresult rv = NS_ERROR_FAILURE; + if (aGlobalPrintSettingsValues && *aGlobalPrintSettingsValues) { + nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); + if (NS_SUCCEEDED(rv)) { + rv = printService->GetPrintSettingsValues(aGlobalPrintSettingsValues); + } + } + return rv; +} + +NS_IMETHODIMP +DocumentViewerImpl::SetGlobalPrintSettingsValues(nsIPrintSettings * aGlobalPrintSettingsValues) +{ + NS_ENSURE_ARG_POINTER(aGlobalPrintSettingsValues); + + nsresult rv = NS_ERROR_FAILURE; + nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); + if (NS_SUCCEEDED(rv)) { + rv = printService->SetPrintSettingsValues(aGlobalPrintSettingsValues); + } + return rv; +} + /* void cancel (); */ NS_IMETHODIMP DocumentViewerImpl::Cancel() @@ -7366,29 +7396,6 @@ DocumentViewerImpl::Cancel() return NS_OK; } -/* void initPrintSettingsFromPrefs (in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); */ -NS_IMETHODIMP -DocumentViewerImpl::InitPrintSettingsFromPrefs(nsIPrintSettings *aPrintSettings, PRBool aUsePrinterNamePrefix, PRUint32 aFlags) -{ - nsresult rv; - nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); - if (NS_SUCCEEDED(rv) && printService) { - return printService->InitPrintSettingsFromPrefs(aPrintSettings, aUsePrinterNamePrefix, aFlags); - } - return NS_OK; -} - -/* void savePrintSettingsToPrefs (in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); */ -NS_IMETHODIMP -DocumentViewerImpl::SavePrintSettingsToPrefs(nsIPrintSettings *aPrintSettings, PRBool aUsePrinterNamePrefix, PRUint32 aFlags) -{ - nsresult rv; - nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); - if (NS_SUCCEEDED(rv) && printService) { - return printService->SavePrintSettingsToPrefs(aPrintSettings, aUsePrinterNamePrefix, aFlags); - } - return NS_OK; -} /** --------------------------------------------------- * Get the Focused Frame for a documentviewer diff --git a/mozilla/embedding/browser/activex/src/control/MozillaBrowser.cpp b/mozilla/embedding/browser/activex/src/control/MozillaBrowser.cpp index 4ed4537787c..20f4cab4037 100644 --- a/mozilla/embedding/browser/activex/src/control/MozillaBrowser.cpp +++ b/mozilla/embedding/browser/activex/src/control/MozillaBrowser.cpp @@ -76,6 +76,7 @@ static HANDLE s_hHackedNonReentrancy = NULL; {0xa2112d6a, 0x0e28, 0x421f, {0xb4, 0x6a, 0x25, 0xc0, 0xb3, 0x8, 0xcb, 0xd0}} static NS_DEFINE_CID(kPromptServiceCID, NS_PROMPTSERVICE_CID); +static NS_DEFINE_CID(kPrintOptionsCID, NS_PRINTOPTIONS_CID); // Macros to return errors from bad calls to the automation // interfaces and sets a descriptive string on IErrorInfo so VB programmers @@ -1433,27 +1434,27 @@ HRESULT CMozillaBrowser::UnloadBrowserHelpers() // Print document HRESULT CMozillaBrowser::PrintDocument(BOOL promptUser) { - // Print the contents - nsCOMPtr browserAsPrint = do_GetInterface(mWebBrowser); - NS_ASSERTION(browserAsPrint, "No nsIWebBrowserPrint!"); + nsresult rv; PRBool oldPrintSilent = PR_FALSE; - nsCOMPtr printSettings; - browserAsPrint->GetGlobalPrintSettings(getter_AddRefs(printSettings)); - if (printSettings) + nsCOMPtr printService = + do_GetService(kPrintOptionsCID, &rv); + if (printService) { - printSettings->GetPrintSilent(&oldPrintSilent); - printSettings->SetPrintSilent(promptUser ? PR_FALSE : PR_TRUE); + printService->GetPrintSilent(&oldPrintSilent); + printService->SetPrintSilent(promptUser ? PR_FALSE : PR_TRUE); } + // Print the contents + nsCOMPtr browserAsPrint = do_GetInterface(mWebBrowser); PrintListener *listener = new PrintListener; nsCOMPtr printListener = do_QueryInterface(listener); - browserAsPrint->Print(printSettings, nsnull); + browserAsPrint->Print(nsnull, nsnull); listener->WaitForComplete(); - if (printSettings) + if (printService) { - printSettings->SetPrintSilent(oldPrintSilent); + printService->SetPrintSilent(oldPrintSilent); } return S_OK; diff --git a/mozilla/embedding/browser/webBrowser/nsIWebBrowserPrint.idl b/mozilla/embedding/browser/webBrowser/nsIWebBrowserPrint.idl index 3a5db6f9698..f63dbcded6b 100644 --- a/mozilla/embedding/browser/webBrowser/nsIWebBrowserPrint.idl +++ b/mozilla/embedding/browser/webBrowser/nsIWebBrowserPrint.idl @@ -97,44 +97,15 @@ interface nsIWebBrowserPrint : nsISupports void initPrintSettingsFromPrinter(in wstring aPrinterName, in nsIPrintSettings aPrintSettings); /** - * Reads PrintSettings values from Prefs, - * the values to be read are indicated by the "flags" arg. - * - * First it reads in the "generic" set of PrintSetings not associated with any printer - * then it uses the PrinterName in the PrinterSettings to read any settings that were saved - * just for that printer. - * - * aPS - PrintSettings to have its settings read - * aUsePrinterNamePrefix - indicates whether to use the printer name as a prefix - * aFlags - indicates which prefs to read, see nsIPrintSettings.idl for the const values. - * - * Items not read: - * startPageRange, endPageRange, scaling, printRange, title - * docURL, howToEnableFrameUI, isCancelled, printFrameTypeUsage - * printFrameType, printSilent, shrinkToFit, numCopies - * + * Use this to Set and Get the current values of the last print invocation + * of "print" or "printpreview". The print engine always sets the PrintSettings + * from whoever is printing (or printpreview'ing) into the global settings. + * + * It is the responsibilitity of those implementing page setup + * to set their setting into the global settings if they want those new value + * to available to other callers of "globalPrintSettingsValues" */ - void initPrintSettingsFromPrefs(in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); - - /** - * Writes PrintSettings values to Prefs, - * the values to be written are indicated by the "flags" arg. - * - * If there is no PrinterName in the PrinterSettings - * the values are saved as the "generic" values not associated with any printer. - * If a PrinterName is there, then it saves the items qualified for that Printer - * - * aPS - PrintSettings to have its settings saved - * aUsePrinterNamePrefix - indicates whether to use the printer name as a prefix - * aFlags - indicates which prefs to save, see nsIPrintSettings.idl for the const values. - * - * Items not written: - * startPageRange, endPageRange, scaling, printRange, title - * docURL, howToEnableFrameUI, isCancelled, printFrameTypeUsage - * printFrameType, printSilent, shrinkToFit, numCopies - * - */ - void savePrintSettingsToPrefs(in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); + attribute nsIPrintSettings globalPrintSettingsValues; /** * This returns whether the current document is a frameset document diff --git a/mozilla/gfx/idl/nsIPrintOptions.idl b/mozilla/gfx/idl/nsIPrintOptions.idl index 2b201a9d981..ed88186a1e4 100644 --- a/mozilla/gfx/idl/nsIPrintOptions.idl +++ b/mozilla/gfx/idl/nsIPrintOptions.idl @@ -62,11 +62,100 @@ interface nsISimpleEnumerator; interface nsIPrintOptions : nsISupports { + /* Print Option Flags for Bit Field*/ + const long kOptPrintOddPages = 0x00000001; + const long kOptPrintEvenPages = 0x00000002; + const long kPrintOptionsEnableSelectionRB = 0x00000004; + + /* Print Range Enums */ + const long kRangeAllPages = 0; + const long kRangeSpecifiedPageRange = 1; + const long kRangeSelection = 2; + const long kRangeFocusFrame = 3; + + /* Justification Enums */ + const long kJustLeft = 0; + const long kJustCenter = 1; + const long kJustRight = 2; + + /** + * Page Size Constants (NOTE: These have been deprecated!); + */ + const short kLetterPaperSize = 0; + const short kLegalPaperSize = 1; + const short kExecutivePaperSize = 2; + const short kA4PaperSize = 3; + const short kA3PaperSize = 4; + + /** + * FrameSet Default Type Constants + */ + const short kUseInternalDefault = 0; + const short kUseSettingWhenPossible = 1; + + /** + * Page Size Type Constants + */ + const short kPaperSizeNativeData = 0; + const short kPaperSizeDefined = 1; + + /** + * Page Size Unit Constants + */ + const short kPaperSizeInches = 0; + const short kPaperSizeMillimeters = 1; + + /** + * Orientation Constants + */ + const short kPortraitOrientation = 0; + const short kLandscapeOrientation = 1; + + /** + * Print Frame Constants + */ + const short kNoFrames = 0; + const short kFramesAsIs = 1; + const short kSelectedFrame = 2; + const short kEachFrameSep = 3; + + /** + * How to Enable Frame Set Printing Constants + */ + const short kFrameEnableNone = 0; + const short kFrameEnableAll = 1; + const short kFrameEnableAsIsAndEach = 2; + /** * Show Native Print Options dialog, this may not be supported on all platforms */ void ShowPrintSetupDialog(in nsIPrintSettings aThePrintSettings); + /** + * Set PrintOptions + */ + void SetPrintOptions(in PRInt32 aType, in PRBool aTurnOnOff); + + /** + * Get PrintOptions + */ + PRBool GetPrintOptions(in PRInt32 aType); + + /** + * Set PrintOptions Bit field + */ + PRInt32 GetPrintOptionsBits(); + + /** + * Read Prefs + */ + void ReadPrefs(); + + /** + * Write Prefs + */ + void WritePrefs(); + /** * Creates a new PrintSettnigs Object * and initializes it from prefs @@ -82,20 +171,79 @@ interface nsIPrintOptions : nsISupports /** * Initialize the values in the PrintSettings from Prefs - * aPS - PrintSettings to have its settings read - * aUsePrinterNamePrefix - indicates whether to use the printer name as a prefix */ - void initPrintSettingsFromPrefs(in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); + void InitPrintSettingsFromPrefs(in nsIPrintSettings aPO); /** - * Save all the PrintSettings to Prefs. - * This is on a printer by printer basis - * Or saved generically if the printer name is null or empty - * - * aPS - PrintSettings to have its settings saved - * aUsePrinterNamePrefix - indicates whether to use the printer name as a prefix + * Data Members */ - void savePrintSettingsToPrefs(in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); + attribute long startPageRange; + attribute long endPageRange; + + attribute double marginTop; /* these are in inches */ + attribute double marginLeft; + attribute double marginBottom; + attribute double marginRight; + + attribute double scaling; /* values 0.0 - 1.0 */ + attribute boolean printBGColors; /* Print Background Colors */ + attribute boolean printBGImages; /* Print Background Images */ + + attribute short printRange; + + attribute wstring title; + attribute wstring docURL; + + attribute wstring headerStrLeft; + attribute wstring headerStrCenter; + attribute wstring headerStrRight; + + attribute wstring footerStrLeft; + attribute wstring footerStrCenter; + attribute wstring footerStrRight; + + attribute short howToEnableFrameUI; + attribute boolean isCancelled; + attribute short printFrameTypeUsage; /* indicates whether to use the interal value or not*/ + attribute short printFrameType; + attribute boolean printSilent; /* print without putting up the dialog */ + + attribute nsIPrintSettings printSettingsValues; /* used copy the values to/from the settings obj*/ + attribute nsIPrintSettings printSettings; /* used to set and get the current object */ + + /* Additional XP Related */ + attribute short paperSizeType; /* use native data or is defined here */ + attribute short paperData; /* native data value */ + attribute double paperWidth; /* width of the paper in inches or mm */ + attribute double paperHeight; /* height of the paper in inches or mm */ + attribute short paperSizeUnit; /* paper is in inches or mm */ + + attribute long paperSize; /* This has been deprecated */ + + attribute boolean printReversed; + attribute boolean printInColor; /* a false means grayscale */ + attribute long orientation; /* see orientation consts */ + attribute wstring printCommand; + attribute long numCopies; + attribute wstring printerName; + attribute boolean printToFile; + attribute wstring toFileName; + + attribute long printPageDelay; /* in milliseconds */ + + /* No Script Methods */ + + [noscript] void SetFontNamePointSize(in nsNativeStringRef aName, in PRInt32 aPointSize); + + [noscript] void SetMarginInTwips(in nsNativeMarginRef aMargin); + /* Purposely made this an "in" arg */ + [noscript] void GetMarginInTwips(in nsNativeMarginRef aMargin); + + [noscript] void SetDefaultFont(in nsNativeFontRef aMargin); + /* Purposely made this an "in" arg */ + [noscript] void GetDefaultFont(in nsNativeFontRef aMargin); + + [noscript] void GetPageSizeInTwips(out long aWidth, out long aHeight); /** * available Printers @@ -107,22 +255,6 @@ interface nsIPrintOptions : nsISupports */ void displayJobProperties (in wstring aPrinter, in nsIPrintSettings aPrintSettings, out boolean aDisplayed); - // Attributes - attribute boolean isCancelled; - - attribute wstring title; - attribute wstring docURL; - - attribute boolean printToFile; - attribute wstring toFileName; - - // no script methods - [noscript] void SetFontNamePointSize(in nsNativeStringRef aName, in PRInt32 aPointSize); - - [noscript] void SetDefaultFont(in nsNativeFontRef aFont); - /* Purposely made this an "in" arg */ - [noscript] void GetDefaultFont(in nsNativeFontRef aFont); - /** * Native data constants */ diff --git a/mozilla/gfx/idl/nsIPrintSettings.idl b/mozilla/gfx/idl/nsIPrintSettings.idl index 4447f24c225..929e0d06e94 100644 --- a/mozilla/gfx/idl/nsIPrintSettings.idl +++ b/mozilla/gfx/idl/nsIPrintSettings.idl @@ -59,36 +59,6 @@ interface nsIPrintSettings : nsISupports { - /** - * PrintSettings to be Saved Navigation Constants - */ - const unsigned long kInitSaveOddEvenPages = 0x00000001; - const unsigned long kInitSaveHeaderLeft = 0x00000002; - const unsigned long kInitSaveHeaderCenter = 0x00000004; - const unsigned long kInitSaveHeaderRight = 0x00000008; - const unsigned long kInitSaveFooterLeft = 0x00000010; - const unsigned long kInitSaveFooterCenter = 0x00000020; - const unsigned long kInitSaveFooterRight = 0x00000040; - const unsigned long kInitSaveBGColors = 0x00000080; - const unsigned long kInitSaveBGImages = 0x00000100; - const unsigned long kInitSavePaperSize = 0x00000200; - const unsigned long kInitSavePaperName = 0x00000400; - const unsigned long kInitSavePaperSizeUnit = 0x00000800; - const unsigned long kInitSavePaperSizeType = 0x00001000; - const unsigned long kInitSavePaperData = 0x00002000; - const unsigned long kInitSavePaperWidth = 0x00004000; - const unsigned long kInitSavePaperHeight = 0x00008000; - - const unsigned long kInitSaveReversed = 0x00010000; - const unsigned long kInitSaveInColor = 0x00020000; - const unsigned long kInitSaveOrientation = 0x00040000; - const unsigned long kInitSavePrintCommand = 0x00080000; - const unsigned long kInitSavePrinterName = 0x00100000; - const unsigned long kInitSavePrintToFile = 0x00200000; - const unsigned long kInitSaveToFileName = 0x00400000; - const unsigned long kInitSavePageDelay = 0x00800000; - const unsigned long kInitSaveMargins = 0x01000000; - const unsigned long kInitSaveAll = 0xFFFFFFFF; /* Print Option Flags for Bit Field*/ const long kPrintOddPages = 0x00000001; @@ -201,7 +171,6 @@ interface nsIPrintSettings : nsISupports attribute boolean shrinkToFit; /* shrinks content to fit on page */ /* Additional XP Related */ - attribute wstring paperName; /* name of paper */ attribute short paperSizeType; /* use native data or is defined here */ attribute short paperData; /* native data value */ attribute double paperWidth; /* width of the paper in inches or mm */ diff --git a/mozilla/gfx/src/nsPrintOptionsImpl.cpp b/mozilla/gfx/src/nsPrintOptionsImpl.cpp index fc2a1efcd72..f9209250b44 100644 --- a/mozilla/gfx/src/nsPrintOptionsImpl.cpp +++ b/mozilla/gfx/src/nsPrintOptionsImpl.cpp @@ -65,44 +65,48 @@ static NS_DEFINE_IID(kCPrinterEnumerator, NS_PRINTER_ENUMERATOR_CID); NS_IMPL_ISUPPORTS1(nsPrintOptions, nsIPrintOptions) // Pref Constants -const char kMarginTop[] = "print_margin_top"; -const char kMarginLeft[] = "print_margin_left"; -const char kMarginBottom[] = "print_margin_bottom"; -const char kMarginRight[] = "print_margin_right"; +const char kMarginTop[] = "print.print_margin_top"; +const char kMarginLeft[] = "print.print_margin_left"; +const char kMarginBottom[] = "print.print_margin_bottom"; +const char kMarginRight[] = "print.print_margin_right"; // Prefs for Print Options -const char kPrintEvenPages[] = "print_evenpages"; -const char kPrintOddPages[] = "print_oddpages"; -const char kPrintHeaderStrLeft[] = "print_headerleft"; -const char kPrintHeaderStrCenter[] = "print_headercenter"; -const char kPrintHeaderStrRight[] = "print_headerright"; -const char kPrintFooterStrLeft[] = "print_footerleft"; -const char kPrintFooterStrCenter[] = "print_footercenter"; -const char kPrintFooterStrRight[] = "print_footerright"; +const char kPrintEvenPages[] = "print.print_evenpages"; +const char kPrintOddPages[] = "print.print_oddpages"; +const char kPrintHeaderStr1[] = "print.print_headerleft"; +const char kPrintHeaderStr2[] = "print.print_headercenter"; +const char kPrintHeaderStr3[] = "print.print_headerright"; +const char kPrintFooterStr1[] = "print.print_footerleft"; +const char kPrintFooterStr2[] = "print.print_footercenter"; +const char kPrintFooterStr3[] = "print.print_footerright"; // Additional Prefs -const char kPrintPaperSize[] = "print_paper_size"; // this has been deprecated +const char kPrintPaperSize[] = "print.print_paper_size"; // this has been deprecated -const char kPrintReversed[] = "print_reversed"; -const char kPrintInColor[] = "print_in_color"; -const char kPrintPaperName[] = "print_paper_name"; -const char kPrintPaperSizeType[] = "print_paper_size_type"; -const char kPrintPaperData[] = "print_paper_data"; -const char kPrintPaperSizeUnit[] = "print_paper_size_unit"; -const char kPrintPaperWidth[] = "print_paper_width"; -const char kPrintPaperHeight[] = "print_paper_height"; -const char kPrintOrientation[] = "print_orientation"; -const char kPrintCommand[] = "print_command"; -const char kPrinterName[] = "print_printer"; -const char kPrintToFile[] = "print_to_file"; -const char kPrintToFileName[] = "print_to_filename"; -const char kPrintPageDelay[] = "print_pagedelay"; -const char kPrintBGColors[] = "print_bgcolor"; -const char kPrintBGImages[] = "print_bgimages"; +const char kPrintReversed[] = "print.print_reversed"; +const char kPrintColor[] = "print.print_color"; +const char kPrintPaperSizeType[] = "print.print_paper_size_type"; +const char kPrintPaperData[] = "print.print_paper_data"; +const char kPrintPaperSizeUnit[] = "print.print_paper_size_unit"; +const char kPrintPaperWidth[] = "print.print_paper_width"; +const char kPrintPaperHeight[]= "print.print_paper_height"; +const char kPrintOrientation[]= "print.print_orientation"; +const char kPrintCommand[] = "print.print_command"; +const char kPrinter[] = "print.print_printer"; +const char kPrintFile[] = "print.print_file"; +const char kPrintToFile[] = "print.print_tofile"; +const char kPrintPageDelay[] = "print.print_pagedelay"; -const char kJustLeft[] = "left"; -const char kJustCenter[] = "center"; -const char kJustRight[] = "right"; +// There are currently NOT supported +//const char kPrintBevelLines[] = "print.print_bevellines"; +//const char kPrintBlackText[] = "print.print_blacktext"; +//const char kPrintBlackLines[] = "print.print_blacklines"; +//const char kPrintLastPageFirst[] = "print.print_lastpagefirst"; +//const char kPrintBackgrounds[] = "print.print_backgrounds"; + +const char kLeftJust[] = "left"; +const char kCenterJust[] = "center"; +const char kRightJust[] = "right"; nsFont* nsPrintOptions::sDefaultFont = nsnull; @@ -111,16 +115,51 @@ nsFont* nsPrintOptions::sDefaultFont = nsnull; * @update 6/21/00 dwc */ nsPrintOptions::nsPrintOptions() : + mPrintOptions(0L), + mPrintRange(kRangeAllPages), + mStartPageNum(1), + mEndPageNum(1), + mScaling(1.0), + mNumCopies(1), + mPrintFrameTypeUsage(kUseInternalDefault), + mPrintFrameType(kFramesAsIs), + mHowToEnableFrameUI(kFrameEnableNone), mIsCancelled(PR_FALSE), + mPrintSilent(PR_FALSE), + mPrintPageDelay(500), + mPrintSettingsObj(nsnull), + mPaperSizeType(kPaperSizeDefined), + mPaperData(0), + mPaperWidth(8.5), + mPaperHeight(11.0), + mPaperSizeUnit(kPaperSizeInches), + mPaperSize(kLetterPaperSize), /* this has been deprecated */ + mPrintReversed(PR_FALSE), + mPrintInColor(PR_TRUE), + mOrientation(kPortraitOrientation), mPrintToFile(PR_FALSE) { NS_INIT_ISUPPORTS(); /* member initializers and constructor code */ + nscoord halfInch = NS_INCHES_TO_TWIPS(0.5); + mMargin.SizeTo(halfInch, halfInch, halfInch, halfInch); + + mPrintOptions = kOptPrintOddPages | kOptPrintEvenPages; + if (sDefaultFont == nsnull) { sDefaultFont = new nsFont("Times", NS_FONT_STYLE_NORMAL,NS_FONT_VARIANT_NORMAL, NS_FONT_WEIGHT_NORMAL,0,NSIntPointsToTwips(10)); } + + mHeaderStrs[0].Assign(NS_LITERAL_STRING("&T")); + mHeaderStrs[2].Assign(NS_LITERAL_STRING("&U")); + + mFooterStrs[0].Assign(NS_LITERAL_STRING("&PT")); // Use &P (Page Num Only) or &PT (Page Num of Page Total) + mFooterStrs[2].Assign(NS_LITERAL_STRING("&D")); + + ReadPrefs(); + } /** --------------------------------------------------- @@ -258,6 +297,46 @@ nsPrintOptions::GetDefaultFont(nsFont &aFont) return NS_OK; } +/** --------------------------------------------------- + * See documentation in nsPrintOptionsImpl.h + * @update 6/21/00 dwc + * @update 1/12/01 rods + */ +NS_IMETHODIMP +nsPrintOptions::SetMarginInTwips(nsMargin& aMargin) +{ + mMargin = aMargin; + return NS_OK; +} + +/** --------------------------------------------------- + * See documentation in nsPrintOptionsImpl.h + * @update 6/21/00 dwc + */ +NS_IMETHODIMP +nsPrintOptions::GetMarginInTwips(nsMargin& aMargin) +{ + aMargin = mMargin; + return NS_OK; +} + +/** --------------------------------------------------- + * See documentation in nsPrintOptionsImpl.h + * @update 6/21/00 dwc + */ +NS_IMETHODIMP +nsPrintOptions::GetPageSizeInTwips(PRInt32 *aWidth, PRInt32 *aHeight) +{ + if (mPaperSizeUnit == kPaperSizeInches) { + *aWidth = NS_INCHES_TO_TWIPS(float(mPaperWidth)); + *aHeight = NS_INCHES_TO_TWIPS(float(mPaperHeight)); + } else { + *aWidth = NS_MILLIMETERS_TO_TWIPS(float(mPaperWidth)); + *aHeight = NS_MILLIMETERS_TO_TWIPS(float(mPaperHeight)); + } + return NS_OK; +} + /** --------------------------------------------------- * See documentation in nsPrintOptionsImpl.h * @update 6/21/00 dwc @@ -307,54 +386,18 @@ nsPrintOptions::ShowPrintSetupDialog(nsIPrintSettings *aPS) } /** --------------------------------------------------- - * Helper function - Creates the "prefix" for the pref - * It is either "print." - * or "print.printer_." + * See documentation in nsPrintOptionsImpl.h + * @update 1/12/01 rods */ -const char* nsPrintOptions::GetPrefName(const char * aPrefName, - const nsString& aPrinterName) +NS_IMETHODIMP +nsPrintOptions::SetPrintOptions(PRInt32 aType, PRBool aTurnOnOff) { - if (!aPrefName || !*aPrefName) { - NS_ASSERTION(0, "Must have a valid pref name!"); - return aPrefName; - } - - mPrefName.AssignWithConversion(NS_LITERAL_STRING("print.")); - - if (aPrinterName.Length()) { - mPrefName.AppendWithConversion(NS_LITERAL_STRING("printer_")); - mPrefName.AppendWithConversion(aPrinterName); - mPrefName.AppendWithConversion(NS_LITERAL_STRING(".")); - } - mPrefName += aPrefName; - - return mPrefName.get(); - -} - -/** --------------------------------------------------- - * Helper function - Returns either the name or sets the length to zero - */ -static void GetAdjustedPrinterName(nsIPrintSettings* aPS, PRBool aUsePNP, nsString& aPrinterName) -{ - aPrinterName.SetLength(0); - - // Get the Printer Name from the PtinerSettings - // to use as a prefix for Pref Names - PRUnichar* prtName = nsnull; - if (aUsePNP && NS_SUCCEEDED(aPS->GetPrinterName(&prtName))) { - if (prtName && !*prtName) { - nsMemory::Free(prtName); - prtName = nsnull; - } - } - - if (prtName) { - aPrinterName = prtName; - PRUnichar uc = '_'; - PRUnichar space = ' '; - aPrinterName.ReplaceChar(space, uc); + if (aTurnOnOff) { + mPrintOptions |= aType; + } else { + mPrintOptions &= ~aType; } + return NS_OK; } /** --------------------------------------------------- @@ -362,503 +405,339 @@ static void GetAdjustedPrinterName(nsIPrintSettings* aPS, PRBool aUsePNP, nsStri * @update 1/12/01 rods */ NS_IMETHODIMP -nsPrintOptions::InitPrintSettingsFromPrefs(nsIPrintSettings* aPS, PRBool aUsePNP, PRUint32 aFlags) +nsPrintOptions::GetPrintOptions(PRInt32 aType, PRBool *aTurnOnOff) { - nsString prtName; - // read any non printer specific prefs - // with empty printer name - nsresult rv = ReadPrefs(aPS, prtName, aFlags); - NS_ENSURE_SUCCESS(rv, rv); - - // Get the Printer Name from the PtinerSettings - // to use as a prefix for Pref Names - GetAdjustedPrinterName(aPS, aUsePNP, prtName); - if (prtName.Length()) { - // Now read any printer specific prefs - return ReadPrefs(aPS, prtName, aFlags); - } + NS_ENSURE_ARG_POINTER(aTurnOnOff); + *aTurnOnOff = mPrintOptions & aType; return NS_OK; } -//---------------------------------------------------------------------- -// Testing of read/write prefs -// This define controls debug output -#ifdef DEBUG_rods_X -static void WriteDebugStr(const char* aArg1, const char* aArg2, const PRUnichar* aStr) -{ - nsString str(aStr); - PRUnichar s = '&'; - PRUnichar r = '_'; - str.ReplaceChar(s, r); - - printf("%s %s = %s \n", aArg1, aArg2, ToNewUTF8String(str)); -} -const char* kWriteStr = "Write Pref:"; -const char* kReadStr = "Read Pref:"; -#define DUMP_STR(_a1, _a2, _a3) WriteDebugStr((_a1), GetPrefName((_a2), aPrefName), (_a3)); -#define DUMP_BOOL(_a1, _a2, _a3) printf("%s %s = %s \n", (_a1), GetPrefName((_a2), aPrefName), (_a3)?"T":"F"); -#define DUMP_INT(_a1, _a2, _a3) printf("%s %s = %d \n", (_a1), GetPrefName((_a2), aPrefName), (_a3)); -#define DUMP_DBL(_a1, _a2, _a3) printf("%s %s = %10.5f \n", (_a1), GetPrefName((_a2), aPrefName), (_a3)); -#else -#define DUMP_STR(_a1, _a2, _a3) -#define DUMP_BOOL(_a1, _a2, _a3) -#define DUMP_INT(_a1, _a2, _a3) -#define DUMP_DBL(_a1, _a2, _a3) -#endif -//---------------------------------------------------------------------- - -/** --------------------------------------------------- - * This will read in the generic prefs (not specific to a printer) - * or it will it can read the prefs in using the printer name to qualify - * It is either "print.attr_name" - * or "print.printer_HPLasr5.attr_name" - * -*/ -nsresult -nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsString& aPrefName, PRUint32 aFlags) -{ - nsCOMPtr prefs = do_GetService(NS_PREF_CONTRACTID); - if (prefs) { - if (aFlags & nsIPrintSettings::kInitSaveMargins) { - nscoord halfInch = NS_INCHES_TO_TWIPS(0.5); - nsMargin margin; - margin.SizeTo(halfInch, halfInch, halfInch, halfInch); - ReadInchesToTwipsPref(prefs, GetPrefName(kMarginTop, aPrefName), margin.top); - DUMP_INT(kReadStr, kMarginTop, margin.top); - ReadInchesToTwipsPref(prefs, GetPrefName(kMarginLeft, aPrefName), margin.left); - DUMP_INT(kReadStr, kMarginLeft, margin.left); - ReadInchesToTwipsPref(prefs, GetPrefName(kMarginBottom, aPrefName), margin.bottom); - DUMP_INT(kReadStr, kMarginBottom, margin.bottom); - ReadInchesToTwipsPref(prefs, GetPrefName(kMarginRight, aPrefName), margin.right); - DUMP_INT(kReadStr, kMarginRight, margin.right); - aPS->SetMarginInTwips(margin); - } - - PRBool b; - nsString str; - PRInt32 iVal; - double dbl; - - if (aFlags & nsIPrintSettings::kInitSaveOddEvenPages) { - if (NS_SUCCEEDED(prefs->GetBoolPref(GetPrefName(kPrintEvenPages, aPrefName), &b))) { - aPS->SetPrintOptions(nsIPrintSettings::kPrintEvenPages, b); - DUMP_BOOL(kReadStr, kPrintEvenPages, b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveOddEvenPages) { - if (NS_SUCCEEDED(prefs->GetBoolPref(GetPrefName(kPrintOddPages, aPrefName), &b))) { - aPS->SetPrintOptions(nsIPrintSettings::kPrintOddPages, b); - DUMP_BOOL(kReadStr, kPrintOddPages, b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintHeaderStrLeft, aPrefName), str))) { - aPS->SetHeaderStrLeft(str.get()); - DUMP_STR(kReadStr, kPrintHeaderStrLeft, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintHeaderStrCenter, aPrefName), str))) { - aPS->SetHeaderStrCenter(str.get()); - DUMP_STR(kReadStr, kPrintHeaderStrCenter, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintHeaderStrRight, aPrefName), str))) { - aPS->SetHeaderStrRight(str.get()); - DUMP_STR(kReadStr, kPrintHeaderStrRight, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintFooterStrLeft, aPrefName), str))) { - aPS->SetFooterStrLeft(str.get()); - DUMP_STR(kReadStr, kPrintFooterStrLeft, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintFooterStrCenter, aPrefName), str))) { - aPS->SetFooterStrCenter(str.get()); - DUMP_STR(kReadStr, kPrintFooterStrCenter, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveFooterRight) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintFooterStrRight, aPrefName), str))) { - aPS->SetFooterStrRight(str.get()); - DUMP_STR(kReadStr, kPrintFooterStrRight, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveBGColors) { - if (NS_SUCCEEDED(prefs->GetBoolPref(GetPrefName(kPrintBGColors, aPrefName), &b))) { - aPS->SetPrintBGColors(b); - DUMP_BOOL(kReadStr, kPrintBGColors, b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveBGImages) { - if (NS_SUCCEEDED(prefs->GetBoolPref(GetPrefName(kPrintBGImages, aPrefName), &b))) { - aPS->SetPrintBGImages(b); - DUMP_BOOL(kReadStr, kPrintBGImages, b); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperSize) { - if (NS_SUCCEEDED(prefs->GetIntPref(GetPrefName(kPrintPaperSize, aPrefName), &iVal))) { // this has been deprecated - aPS->SetPaperSize(iVal); - DUMP_INT(kReadStr, kPrintPaperSize, iVal); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveReversed) { - if (NS_SUCCEEDED(prefs->GetBoolPref(GetPrefName(kPrintReversed, aPrefName), &b))) { - aPS->SetPrintReversed(b); - DUMP_BOOL(kReadStr, kPrintReversed, b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveInColor) { - if (NS_SUCCEEDED(prefs->GetBoolPref(GetPrefName(kPrintInColor, aPrefName), &b))) { - aPS->SetPrintInColor(b); - DUMP_BOOL(kReadStr, kPrintInColor, b); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperName) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintPaperName, aPrefName), str))) { - aPS->SetPaperName(str.get()); - DUMP_STR(kReadStr, kPrintPaperName, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperSizeUnit) { - if (NS_SUCCEEDED(prefs->GetIntPref(GetPrefName(kPrintPaperSizeUnit, aPrefName), &iVal))) { - aPS->SetPaperSizeUnit(iVal); - DUMP_INT(kReadStr, kPrintPaperSizeUnit, iVal); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperSizeType) { - if (NS_SUCCEEDED(prefs->GetIntPref(GetPrefName(kPrintPaperSizeType, aPrefName), &iVal))) { - aPS->SetPaperSizeType(iVal); - DUMP_INT(kReadStr, kPrintPaperSizeType, iVal); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperData) { - if (NS_SUCCEEDED(prefs->GetIntPref(GetPrefName(kPrintPaperData, aPrefName), &iVal))) { - aPS->SetPaperData(iVal); - DUMP_INT(kReadStr, kPrintPaperData, iVal); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperWidth) { - if (NS_SUCCEEDED(ReadPrefDouble(prefs, GetPrefName(kPrintPaperWidth, aPrefName), dbl))) { - aPS->SetPaperWidth(dbl); - DUMP_DBL(kReadStr, kPrintPaperWidth, dbl); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperHeight) { - if (NS_SUCCEEDED(ReadPrefDouble(prefs, GetPrefName(kPrintPaperHeight, aPrefName), dbl))) { - aPS->SetPaperHeight(dbl); - DUMP_DBL(kReadStr, kPrintPaperHeight, dbl); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveOrientation) { - if (NS_SUCCEEDED(prefs->GetIntPref(GetPrefName(kPrintOrientation, aPrefName), &iVal))) { - aPS->SetOrientation(iVal); - DUMP_INT(kReadStr, kPrintOrientation, iVal); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePrintCommand) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintCommand, aPrefName), str))) { - aPS->SetPrintCommand(str.get()); - DUMP_STR(kReadStr, kPrintCommand, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePrinterName) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrinterName, aPrefName), str))) { - aPS->SetPrinterName(str.get()); - DUMP_STR(kReadStr, kPrinterName, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePrintToFile) { - if (NS_SUCCEEDED(prefs->GetBoolPref(GetPrefName(kPrintToFile, aPrefName), &b))) { - aPS->SetPrintToFile(b); - DUMP_BOOL(kReadStr, kPrintToFile, b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveToFileName) { - if (NS_SUCCEEDED(ReadPrefString(prefs, GetPrefName(kPrintToFileName, aPrefName), str))) { - aPS->SetToFileName(str.get()); - DUMP_STR(kReadStr, kPrintToFileName, str.get()); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePageDelay) { - if (NS_SUCCEEDED(prefs->GetIntPref(GetPrefName(kPrintPageDelay, aPrefName), &iVal))) { - aPS->SetPrintPageDelay(iVal); - DUMP_INT(kReadStr, kPrintPageDelay, iVal); - } - } - - // Not Reading In: - // Scaling - // ShrinkToFit - // Number of Copies - - return NS_OK; - } - return NS_ERROR_FAILURE; -} - -/* void SavePrintSettingsToPrefs (in nsIPrintSettings aPS); */ -/** --------------------------------------------------- - * This will asve into prefs most all the PrintSettings either generically (not specified printer) - * or to a specific printer. - */ -nsresult -nsPrintOptions::SavePrintSettingsToPrefs(nsIPrintSettings *aPS, PRBool aUsePrinterNamePrefix, PRUint32 aFlags) -{ - nsString prtName; - // Get the Printer Name from the PtinerSettings - // to use as a prefix for Pref Names - GetAdjustedPrinterName(aPS, aUsePrinterNamePrefix, prtName); - - // Now write any printer specific prefs - return WritePrefs(aPS, prtName, aFlags); -} - - /** --------------------------------------------------- * See documentation in nsPrintOptionsImpl.h * @update 1/12/01 rods */ -nsresult -nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsString& aPrefName, PRUint32 aFlags) +NS_IMETHODIMP +nsPrintOptions::GetPrintOptionsBits(PRInt32 *aBits) { - NS_ENSURE_ARG_POINTER(aPS); + NS_ENSURE_ARG_POINTER(aBits); + *aBits = mPrintOptions; + return NS_OK; +} +/** --------------------------------------------------- + * See documentation in nsPrintOptionsImpl.h + * @update 1/12/01 rods + */ +NS_IMETHODIMP +nsPrintOptions::ReadPrefs() +{ nsCOMPtr prefs = do_GetService(NS_PREF_CONTRACTID); if (prefs) { - nsMargin margin; - if (aFlags & nsIPrintSettings::kInitSaveMargins) { - if (NS_SUCCEEDED(aPS->GetMarginInTwips(margin))) { - WriteInchesFromTwipsPref(prefs, GetPrefName(kMarginTop, aPrefName), margin.top); - DUMP_INT(kWriteStr, kMarginTop, margin.top); - WriteInchesFromTwipsPref(prefs, GetPrefName(kMarginLeft, aPrefName), margin.left); - DUMP_INT(kWriteStr, kMarginLeft, margin.top); - WriteInchesFromTwipsPref(prefs, GetPrefName(kMarginBottom, aPrefName), margin.bottom); - DUMP_INT(kWriteStr, kMarginBottom, margin.top); - WriteInchesFromTwipsPref(prefs, GetPrefName(kMarginRight, aPrefName), margin.right); - DUMP_INT(kWriteStr, kMarginRight, margin.top); - } - } + ReadInchesToTwipsPref(prefs, kMarginTop, mMargin.top); + ReadInchesToTwipsPref(prefs, kMarginLeft, mMargin.left); + ReadInchesToTwipsPref(prefs, kMarginBottom, mMargin.bottom); + ReadInchesToTwipsPref(prefs, kMarginRight, mMargin.right); - PRBool b; - PRUnichar* uStr; - PRInt32 iVal; - PRInt16 iVal16; - double dbl; + ReadBitFieldPref(prefs, kPrintEvenPages, kOptPrintEvenPages); + ReadBitFieldPref(prefs, kPrintOddPages, kOptPrintOddPages); - if (aFlags & nsIPrintSettings::kInitSaveOddEvenPages) { - if (NS_SUCCEEDED(aPS->GetPrintOptions(nsIPrintSettings::kPrintEvenPages, &b))) { - DUMP_BOOL(kWriteStr, kPrintEvenPages, b); - prefs->SetBoolPref(GetPrefName(kPrintEvenPages, aPrefName), b); - } - } + ReadPrefString(prefs, kPrintHeaderStr1, mHeaderStrs[0]); + ReadPrefString(prefs, kPrintHeaderStr2, mHeaderStrs[1]); + ReadPrefString(prefs, kPrintHeaderStr3, mHeaderStrs[2]); + ReadPrefString(prefs, kPrintFooterStr1, mFooterStrs[0]); + ReadPrefString(prefs, kPrintFooterStr2, mFooterStrs[1]); + ReadPrefString(prefs, kPrintFooterStr3, mFooterStrs[2]); - if (aFlags & nsIPrintSettings::kInitSaveOddEvenPages) { - if (NS_SUCCEEDED(aPS->GetPrintOptions(nsIPrintSettings::kPrintOddPages, &b))) { - DUMP_BOOL(kWriteStr, kPrintOddPages, b); - prefs->SetBoolPref(GetPrefName(kPrintOddPages, aPrefName), b); - } - } + // Read Additional XP Prefs + prefs->GetIntPref(kPrintPaperSize, &mPaperSize); // this has been deprecated - if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) { - if (NS_SUCCEEDED(aPS->GetHeaderStrLeft(&uStr))) { - DUMP_STR(kWriteStr, kPrintHeaderStrLeft, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintHeaderStrLeft, aPrefName)); - } - } + prefs->GetBoolPref(kPrintReversed, &mPrintReversed); + prefs->GetBoolPref(kPrintColor, &mPrintInColor); - if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) { - if (NS_SUCCEEDED(aPS->GetHeaderStrCenter(&uStr))) { - DUMP_STR(kWriteStr, kPrintHeaderStrCenter, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintHeaderStrCenter, aPrefName)); - } - } + PRInt32 iVal = kPaperSizeInches; + prefs->GetIntPref(kPrintPaperSizeUnit, &iVal); + mPaperSizeUnit = PRInt16(iVal); + iVal = kPaperSizeDefined; + prefs->GetIntPref(kPrintPaperSizeType, &iVal); + mPaperSizeType = PRInt16(iVal); + iVal = 0; + prefs->GetIntPref(kPrintPaperData, &iVal); + mPaperData = PRInt16(iVal); + ReadPrefDouble(prefs, kPrintPaperWidth, mPaperWidth); + ReadPrefDouble(prefs, kPrintPaperHeight, mPaperHeight); - if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) { - if (NS_SUCCEEDED(aPS->GetHeaderStrRight(&uStr))) { - DUMP_STR(kWriteStr, kPrintHeaderStrRight, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintHeaderStrRight, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) { - if (NS_SUCCEEDED(aPS->GetFooterStrLeft(&uStr))) { - DUMP_STR(kWriteStr, kPrintFooterStrLeft, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintFooterStrLeft, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) { - if (NS_SUCCEEDED(aPS->GetFooterStrCenter(&uStr))) { - DUMP_STR(kWriteStr, kPrintFooterStrCenter, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintFooterStrCenter, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveFooterRight) { - if (NS_SUCCEEDED(aPS->GetFooterStrRight(&uStr))) { - DUMP_STR(kWriteStr, kPrintFooterStrRight, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintFooterStrRight, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveBGColors) { - if (NS_SUCCEEDED(aPS->GetPrintBGColors(&b))) { - DUMP_BOOL(kWriteStr, kPrintBGColors, b); - prefs->SetBoolPref(GetPrefName(kPrintBGColors, aPrefName), b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveBGImages) { - if (NS_SUCCEEDED(aPS->GetPrintBGImages(&b))) { - DUMP_BOOL(kWriteStr, kPrintBGImages, b); - prefs->SetBoolPref(GetPrefName(kPrintBGImages, aPrefName), b); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperSize) { - if (NS_SUCCEEDED(aPS->GetPaperSize(&iVal))) { - DUMP_INT(kWriteStr, kPrintPaperSize, iVal); - prefs->SetIntPref(GetPrefName(kPrintPaperSize, aPrefName), iVal); // this has been deprecated - } - } - - if (aFlags & nsIPrintSettings::kInitSaveReversed) { - if (NS_SUCCEEDED(aPS->GetPrintReversed(&b))) { - DUMP_BOOL(kWriteStr, kPrintReversed, b); - prefs->SetBoolPref(GetPrefName(kPrintReversed, aPrefName), b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveInColor) { - if (NS_SUCCEEDED(aPS->GetPrintInColor(&b))) { - DUMP_BOOL(kWriteStr, kPrintInColor, b); - prefs->SetBoolPref(GetPrefName(kPrintInColor, aPrefName), b); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperName) { - if (NS_SUCCEEDED(aPS->GetPaperName(&uStr))) { - DUMP_STR(kWriteStr, kPrintPaperName, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintPaperName, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperSizeUnit) { - if (NS_SUCCEEDED(aPS->GetPaperSizeUnit(&iVal16))) { - DUMP_INT(kWriteStr, kPrintPaperSizeUnit, iVal16); - prefs->SetIntPref(GetPrefName(kPrintPaperSizeUnit, aPrefName), PRInt32(iVal16)); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperSizeType) { - if (NS_SUCCEEDED(aPS->GetPaperSizeType(&iVal16))) { - DUMP_INT(kWriteStr, kPrintPaperSizeType, iVal16); - prefs->SetIntPref(GetPrefName(kPrintPaperSizeType, aPrefName), PRInt32(iVal16)); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperData) { - if (NS_SUCCEEDED(aPS->GetPaperData(&iVal16))) { - DUMP_INT(kWriteStr, kPrintPaperData, iVal16); - prefs->SetIntPref(GetPrefName(kPrintPaperData, aPrefName), PRInt32(iVal16)); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperWidth) { - if (NS_SUCCEEDED(aPS->GetPaperWidth(&dbl))) { - DUMP_DBL(kWriteStr, kPrintPaperWidth, dbl); - WritePrefDouble(prefs, GetPrefName(kPrintPaperWidth, aPrefName), dbl); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePaperHeight) { - if (NS_SUCCEEDED(aPS->GetPaperHeight(&dbl))) { - DUMP_DBL(kWriteStr, kPrintPaperHeight, dbl); - WritePrefDouble(prefs, GetPrefName(kPrintPaperHeight, aPrefName), dbl); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveOrientation) { - if (NS_SUCCEEDED(aPS->GetOrientation(&iVal))) { - DUMP_INT(kWriteStr, kPrintOrientation, iVal); - prefs->SetIntPref(GetPrefName(kPrintOrientation, aPrefName), iVal); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePrintCommand) { - if (NS_SUCCEEDED(aPS->GetPrintCommand(&uStr))) { - DUMP_STR(kWriteStr, kPrintCommand, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintCommand, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePrinterName) { - if (NS_SUCCEEDED(aPS->GetPrinterName(&uStr))) { - DUMP_STR(kWriteStr, kPrinterName, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrinterName, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePrintToFile) { - if (NS_SUCCEEDED(aPS->GetPrintToFile(&b))) { - DUMP_BOOL(kWriteStr, kPrintToFile, b); - prefs->SetBoolPref(GetPrefName(kPrintToFile, aPrefName), b); - } - } - - if (aFlags & nsIPrintSettings::kInitSaveToFileName) { - if (NS_SUCCEEDED(aPS->GetToFileName(&uStr))) { - DUMP_STR(kWriteStr, kPrintToFileName, uStr); - WritePrefString(prefs, uStr, GetPrefName(kPrintToFileName, aPrefName)); - } - } - - if (aFlags & nsIPrintSettings::kInitSavePageDelay) { - if (NS_SUCCEEDED(aPS->GetPrintPageDelay(&iVal))) { - DUMP_INT(kWriteStr, kPrintPageDelay, iVal); - prefs->SetIntPref(GetPrefName(kPrintPageDelay, aPrefName), iVal); - } - } - - // Not Writing Out: - // Scaling - // ShrinkToFit - // Number of Copies + prefs->GetIntPref(kPrintOrientation, &mOrientation); + ReadPrefString(prefs, kPrintCommand, mPrintCommand); + ReadPrefString(prefs, kPrinter, mPrinter); + prefs->GetBoolPref(kPrintFile, &mPrintToFile); + ReadPrefString(prefs, kPrintToFile, mToFileName); + prefs->GetIntPref(kPrintPageDelay, &mPrintPageDelay); return NS_OK; } - return NS_ERROR_FAILURE; } +/** --------------------------------------------------- + * See documentation in nsPrintOptionsImpl.h + * @update 1/12/01 rods + */ +NS_IMETHODIMP +nsPrintOptions::InitPrintSettingsFromPrefs(nsIPrintSettings* aPS) +{ + nsCOMPtr prefs = do_GetService(NS_PREF_CONTRACTID); + if (prefs) { + nscoord halfInch = NS_INCHES_TO_TWIPS(0.5); + nsMargin margin; + margin.SizeTo(halfInch, halfInch, halfInch, halfInch); + ReadInchesToTwipsPref(prefs, kMarginTop, margin.top); + ReadInchesToTwipsPref(prefs, kMarginLeft, margin.left); + ReadInchesToTwipsPref(prefs, kMarginBottom, margin.bottom); + ReadInchesToTwipsPref(prefs, kMarginRight, margin.right); + aPS->SetMarginInTwips(margin); + + // Note: Following prefs are not required to be in a pref + // each has a proper default defined here. + // The following two are special in that they set a bit field + // which is initialized in the constructor. + PRBool b; + if (NS_SUCCEEDED(prefs->GetBoolPref(kPrintEvenPages, &b))) + aPS->SetPrintOptions(kOptPrintEvenPages, b); + + if (NS_SUCCEEDED(prefs->GetBoolPref(kPrintOddPages, &b))) + aPS->SetPrintOptions(kOptPrintOddPages, b); + + nsString str; + str.SetLength(0); + ReadPrefString(prefs, kPrintHeaderStr1, str); + aPS->SetHeaderStrLeft(str.get()); + str.SetLength(0); + ReadPrefString(prefs, kPrintHeaderStr2, str); + aPS->SetHeaderStrCenter(str.get()); + str.SetLength(0); + ReadPrefString(prefs, kPrintHeaderStr3, str); + aPS->SetHeaderStrRight(str.get()); + + str.SetLength(0); + ReadPrefString(prefs, kPrintFooterStr1, str); + aPS->SetFooterStrRight(str.get()); + str.SetLength(0); + ReadPrefString(prefs, kPrintFooterStr2, str); + aPS->SetFooterStrCenter(str.get()); + str.SetLength(0); + ReadPrefString(prefs, kPrintFooterStr3, str); + aPS->SetFooterStrRight(str.get()); + + // Read Additional XP Prefs + PRInt32 iVal = kLetterPaperSize; + prefs->GetIntPref(kPrintPaperSize, &iVal); // this has been deprecated + aPS->SetPaperSize(iVal); + + b = PR_FALSE; + prefs->GetBoolPref(kPrintReversed, &b); + aPS->SetPrintReversed(b); + + b = PR_TRUE; + prefs->GetBoolPref(kPrintColor, &b); + aPS->SetPrintInColor(b); + + iVal = kPaperSizeInches; + prefs->GetIntPref(kPrintPaperSizeUnit, &iVal); + aPS->SetPaperSizeUnit(iVal); + + iVal = kPaperSizeDefined; + prefs->GetIntPref(kPrintPaperSizeType, &iVal); + aPS->SetPaperSizeType(iVal); + + iVal = 0; + prefs->GetIntPref(kPrintPaperData, &iVal); + aPS->SetPaperData(iVal); + + double d = 8.5; + ReadPrefDouble(prefs, kPrintPaperWidth, d); + aPS->SetPaperWidth(d); + + d = 11.0; + ReadPrefDouble(prefs, kPrintPaperHeight, d); + aPS->SetPaperHeight(d); + + iVal = kPortraitOrientation; + prefs->GetIntPref(kPrintOrientation, &mOrientation); + aPS->SetOrientation(iVal); + + str.SetLength(0); + ReadPrefString(prefs, kPrintCommand, str); + aPS->SetPrintCommand(str.get()); + + str.SetLength(0); + ReadPrefString(prefs, kPrinter, mPrinter); + aPS->SetPrinterName(str.get()); + + b = PR_FALSE; + prefs->GetBoolPref(kPrintFile, &b); + aPS->SetPrintToFile(b); + + ReadPrefString(prefs, kPrintToFile, mToFileName); + + iVal = 500; + prefs->GetIntPref(kPrintPageDelay, &iVal); + aPS->SetPrintPageDelay(iVal); + + return NS_OK; + } + return NS_ERROR_FAILURE; +} + +/** --------------------------------------------------- + * See documentation in nsPrintOptionsImpl.h + * @update 1/12/01 rods + */ +NS_IMETHODIMP +nsPrintOptions::WritePrefs() +{ + nsCOMPtr prefs = do_GetService(NS_PREF_CONTRACTID); + if (prefs) { + WriteInchesFromTwipsPref(prefs, kMarginTop, mMargin.top); + WriteInchesFromTwipsPref(prefs, kMarginLeft, mMargin.left); + WriteInchesFromTwipsPref(prefs, kMarginBottom, mMargin.bottom); + WriteInchesFromTwipsPref(prefs, kMarginRight, mMargin.right); + + WriteBitFieldPref(prefs, kPrintEvenPages, kOptPrintEvenPages); + WriteBitFieldPref(prefs, kPrintOddPages, kOptPrintOddPages); + + WritePrefString(prefs, kPrintHeaderStr1, mHeaderStrs[0]); + WritePrefString(prefs, kPrintHeaderStr2, mHeaderStrs[1]); + WritePrefString(prefs, kPrintHeaderStr3, mHeaderStrs[2]); + WritePrefString(prefs, kPrintFooterStr1, mFooterStrs[0]); + WritePrefString(prefs, kPrintFooterStr2, mFooterStrs[1]); + WritePrefString(prefs, kPrintFooterStr3, mFooterStrs[2]); + + // Write Additional XP Prefs + prefs->SetIntPref(kPrintPaperSize, mPaperSize); // this has been deprecated + + prefs->SetBoolPref(kPrintReversed, mPrintReversed); + prefs->SetBoolPref(kPrintColor, mPrintInColor); + prefs->SetIntPref(kPrintPaperSizeUnit, PRInt32(mPaperSizeUnit)); + prefs->SetIntPref(kPrintPaperSizeType, PRInt32(mPaperSizeType)); + prefs->SetIntPref(kPrintPaperData, PRInt32(mPaperData)); + WritePrefDouble(prefs, kPrintPaperWidth, mPaperWidth); + WritePrefDouble(prefs, kPrintPaperHeight, mPaperHeight); + prefs->SetIntPref(kPrintOrientation, mOrientation); + WritePrefString(prefs, kPrintCommand, mPrintCommand); + WritePrefString(prefs, kPrinter, mPrinter); + prefs->SetBoolPref(kPrintFile, mPrintToFile); + WritePrefString(prefs, kPrintToFile, mToFileName); + prefs->SetIntPref(kPrintPageDelay, mPrintPageDelay); + + return NS_OK; + } + return NS_ERROR_FAILURE; +} + +/* attribute long startPageRange; */ +NS_IMETHODIMP nsPrintOptions::GetStartPageRange(PRInt32 *aStartPageRange) +{ + //NS_ENSURE_ARG_POINTER(aStartPageRange); + *aStartPageRange = mStartPageNum; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetStartPageRange(PRInt32 aStartPageRange) +{ + mStartPageNum = aStartPageRange; + return NS_OK; +} + +/* attribute long endPageRange; */ +NS_IMETHODIMP nsPrintOptions::GetEndPageRange(PRInt32 *aEndPageRange) +{ + //NS_ENSURE_ARG_POINTER(aEndPageRange); + *aEndPageRange = mEndPageNum; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetEndPageRange(PRInt32 aEndPageRange) +{ + mEndPageNum = aEndPageRange; + return NS_OK; +} + +/* attribute boolean printReversed; */ +NS_IMETHODIMP nsPrintOptions::GetPrintReversed(PRBool *aPrintReversed) +{ + //NS_ENSURE_ARG_POINTER(aPrintReversed); + *aPrintReversed = mPrintReversed; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintReversed(PRBool aPrintReversed) +{ + mPrintReversed = aPrintReversed; + return NS_OK; +} + +/* attribute boolean printInColor; */ +NS_IMETHODIMP nsPrintOptions::GetPrintInColor(PRBool *aPrintInColor) +{ + //NS_ENSURE_ARG_POINTER(aPrintInColor); + *aPrintInColor = mPrintInColor; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintInColor(PRBool aPrintInColor) +{ + mPrintInColor = aPrintInColor; + return NS_OK; +} + +/* attribute wstring printCommand; */ +NS_IMETHODIMP nsPrintOptions::GetPrintCommand(PRUnichar * *aPrintCommand) +{ + //NS_ENSURE_ARG_POINTER(aPrintCommand); + *aPrintCommand = ToNewUnicode(mPrintCommand); + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintCommand(const PRUnichar * aPrintCommand) +{ + mPrintCommand = aPrintCommand; + return NS_OK; +} + +/* attribute short orientation; */ +NS_IMETHODIMP nsPrintOptions::GetOrientation(PRInt32 *aOrientation) +{ + //NS_ENSURE_ARG_POINTER(aOrientation); + *aOrientation = mOrientation; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetOrientation(PRInt32 aOrientation) +{ + mOrientation = aOrientation; + return NS_OK; +} + +/* attribute wstring printer; */ +NS_IMETHODIMP nsPrintOptions::GetPrinterName(PRUnichar * *aPrinter) +{ + //NS_ENSURE_ARG_POINTER(aPrinter); + *aPrinter = ToNewUnicode(mPrinter); + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrinterName(const PRUnichar * aPrinter) +{ + mPrinter = aPrinter; + return NS_OK; +} + +/* attribute long numCopies; */ +NS_IMETHODIMP nsPrintOptions::GetNumCopies(PRInt32 *aNumCopies) +{ + //NS_ENSURE_ARG_POINTER(aNumCopies); + *aNumCopies = mNumCopies; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetNumCopies(PRInt32 aNumCopies) +{ + mNumCopies = aNumCopies; + return NS_OK; +} + /* create and return a new |nsPrinterListEnumerator| */ NS_IMETHODIMP nsPrintOptions::AvailablePrinters(nsISimpleEnumerator **aPrinterEnumerator) { @@ -897,19 +776,6 @@ NS_IMETHODIMP nsPrintOptions::DisplayJobProperties( const PRUnichar *aPrinter, n return NS_OK; } -/* attribute long isCancelled; */ -NS_IMETHODIMP nsPrintOptions::GetIsCancelled(PRBool *aIsCancelled) -{ - NS_ENSURE_ARG_POINTER(aIsCancelled); - *aIsCancelled = mIsCancelled; - return NS_OK; -} -NS_IMETHODIMP nsPrintOptions::SetIsCancelled(PRBool aIsCancelled) -{ - mIsCancelled = aIsCancelled; - return NS_OK; -} - /* attribute boolean printToFile; */ NS_IMETHODIMP nsPrintOptions::GetPrintToFile(PRBool *aPrintToFile) { @@ -936,6 +802,123 @@ NS_IMETHODIMP nsPrintOptions::SetToFileName(const PRUnichar * aToFileName) return NS_OK; } +/* attribute long printPageDelay; */ +NS_IMETHODIMP nsPrintOptions::GetPrintPageDelay(PRInt32 *aPrintPageDelay) +{ + *aPrintPageDelay = mPrintPageDelay; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintPageDelay(PRInt32 aPrintPageDelay) +{ + mPrintPageDelay = aPrintPageDelay; + return NS_OK; +} + +/* attribute double marginTop; */ +NS_IMETHODIMP nsPrintOptions::GetMarginTop(double *aMarginTop) +{ + NS_ENSURE_ARG_POINTER(aMarginTop); + *aMarginTop = NS_TWIPS_TO_INCHES(mMargin.top); + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetMarginTop(double aMarginTop) +{ + mMargin.top = NS_INCHES_TO_TWIPS(float(aMarginTop)); + return NS_OK; +} + +/* attribute double marginLeft; */ +NS_IMETHODIMP nsPrintOptions::GetMarginLeft(double *aMarginLeft) +{ + NS_ENSURE_ARG_POINTER(aMarginLeft); + *aMarginLeft = NS_TWIPS_TO_INCHES(mMargin.left); + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetMarginLeft(double aMarginLeft) +{ + mMargin.left = NS_INCHES_TO_TWIPS(float(aMarginLeft)); + return NS_OK; +} + +/* attribute double marginBottom; */ +NS_IMETHODIMP nsPrintOptions::GetMarginBottom(double *aMarginBottom) +{ + NS_ENSURE_ARG_POINTER(aMarginBottom); + *aMarginBottom = NS_TWIPS_TO_INCHES(mMargin.bottom); + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetMarginBottom(double aMarginBottom) +{ + mMargin.bottom = NS_INCHES_TO_TWIPS(float(aMarginBottom)); + return NS_OK; +} + +/* attribute double marginRight; */ +NS_IMETHODIMP nsPrintOptions::GetMarginRight(double *aMarginRight) +{ + NS_ENSURE_ARG_POINTER(aMarginRight); + *aMarginRight = NS_TWIPS_TO_INCHES(mMargin.right); + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetMarginRight(double aMarginRight) +{ + mMargin.right = NS_INCHES_TO_TWIPS(float(aMarginRight)); + return NS_OK; +} + +/* attribute double scaling; */ +NS_IMETHODIMP nsPrintOptions::GetScaling(double *aScaling) +{ + NS_ENSURE_ARG_POINTER(aScaling); + *aScaling = mScaling; + return NS_OK; +} + +NS_IMETHODIMP nsPrintOptions::SetScaling(double aScaling) +{ + mScaling = aScaling; + return NS_OK; +} + +/* attribute boolean printBGColors; */ +NS_IMETHODIMP nsPrintOptions::GetPrintBGColors(PRBool *aPrintBGColors) +{ + NS_ENSURE_ARG_POINTER(aPrintBGColors); + *aPrintBGColors = mPrintBGColors; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintBGColors(PRBool aPrintBGColors) +{ + mPrintBGColors = aPrintBGColors; + return NS_OK; +} + +/* attribute boolean printBGImages; */ +NS_IMETHODIMP nsPrintOptions::GetPrintBGImages(PRBool *aPrintBGImages) +{ + NS_ENSURE_ARG_POINTER(aPrintBGImages); + *aPrintBGImages = mPrintBGImages; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintBGImages(PRBool aPrintBGImages) +{ + mPrintBGImages = aPrintBGImages; + return NS_OK; +} + +/* attribute long printRange; */ +NS_IMETHODIMP nsPrintOptions::GetPrintRange(PRInt16 *aPrintRange) +{ + NS_ENSURE_ARG_POINTER(aPrintRange); + *aPrintRange = mPrintRange; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintRange(PRInt16 aPrintRange) +{ + mPrintRange = aPrintRange; + return NS_OK; +} + /* attribute wstring docTitle; */ NS_IMETHODIMP nsPrintOptions::GetTitle(PRUnichar * *aTitle) { @@ -970,6 +953,180 @@ NS_IMETHODIMP nsPrintOptions::SetDocURL(const PRUnichar * aDocURL) return NS_OK; } +/* attribute wstring docTitle; */ +nsresult +nsPrintOptions::GetMarginStrs(PRUnichar * *aTitle, + nsHeaderFooterEnum aType, + PRInt16 aJust) +{ + NS_ENSURE_ARG_POINTER(aTitle); + *aTitle = nsnull; + if (aType == eHeader) { + switch (aJust) { + case kJustLeft: *aTitle = ToNewUnicode(mHeaderStrs[0]);break; + case kJustCenter: *aTitle = ToNewUnicode(mHeaderStrs[1]);break; + case kJustRight: *aTitle = ToNewUnicode(mHeaderStrs[2]);break; + } //switch + } else { + switch (aJust) { + case kJustLeft: *aTitle = ToNewUnicode(mFooterStrs[0]);break; + case kJustCenter: *aTitle = ToNewUnicode(mFooterStrs[1]);break; + case kJustRight: *aTitle = ToNewUnicode(mFooterStrs[2]);break; + } //switch + } + return NS_OK; +} + +nsresult +nsPrintOptions::SetMarginStrs(const PRUnichar * aTitle, + nsHeaderFooterEnum aType, + PRInt16 aJust) +{ + NS_ENSURE_ARG_POINTER(aTitle); + if (aType == eHeader) { + switch (aJust) { + case kJustLeft: mHeaderStrs[0] = aTitle;break; + case kJustCenter: mHeaderStrs[1] = aTitle;break; + case kJustRight: mHeaderStrs[2] = aTitle;break; + } //switch + } else { + switch (aJust) { + case kJustLeft: mFooterStrs[0] = aTitle;break; + case kJustCenter: mFooterStrs[1] = aTitle;break; + case kJustRight: mFooterStrs[2] = aTitle;break; + } //switch + } + return NS_OK; +} + +/* attribute wstring Header String Left */ +NS_IMETHODIMP nsPrintOptions::GetHeaderStrLeft(PRUnichar * *aTitle) +{ + return GetMarginStrs(aTitle, eHeader, kJustLeft); +} +NS_IMETHODIMP nsPrintOptions::SetHeaderStrLeft(const PRUnichar * aTitle) +{ + return SetMarginStrs(aTitle, eHeader, kJustLeft); +} + +/* attribute wstring Header String Center */ +NS_IMETHODIMP nsPrintOptions::GetHeaderStrCenter(PRUnichar * *aTitle) +{ + return GetMarginStrs(aTitle, eHeader, kJustCenter); +} +NS_IMETHODIMP nsPrintOptions::SetHeaderStrCenter(const PRUnichar * aTitle) +{ + return SetMarginStrs(aTitle, eHeader, kJustCenter); +} + +/* attribute wstring Header String Right */ +NS_IMETHODIMP nsPrintOptions::GetHeaderStrRight(PRUnichar * *aTitle) +{ + return GetMarginStrs(aTitle, eHeader, kJustRight); +} +NS_IMETHODIMP nsPrintOptions::SetHeaderStrRight(const PRUnichar * aTitle) +{ + return SetMarginStrs(aTitle, eHeader, kJustRight); +} + + +/* attribute wstring Footer String Left */ +NS_IMETHODIMP nsPrintOptions::GetFooterStrLeft(PRUnichar * *aTitle) +{ + return GetMarginStrs(aTitle, eFooter, kJustLeft); +} +NS_IMETHODIMP nsPrintOptions::SetFooterStrLeft(const PRUnichar * aTitle) +{ + return SetMarginStrs(aTitle, eFooter, kJustLeft); +} + +/* attribute wstring Footer String Center */ +NS_IMETHODIMP nsPrintOptions::GetFooterStrCenter(PRUnichar * *aTitle) +{ + return GetMarginStrs(aTitle, eFooter, kJustCenter); +} +NS_IMETHODIMP nsPrintOptions::SetFooterStrCenter(const PRUnichar * aTitle) +{ + return SetMarginStrs(aTitle, eFooter, kJustCenter); +} + +/* attribute wstring Footer String Right */ +NS_IMETHODIMP nsPrintOptions::GetFooterStrRight(PRUnichar * *aTitle) +{ + return GetMarginStrs(aTitle, eFooter, kJustRight); +} +NS_IMETHODIMP nsPrintOptions::SetFooterStrRight(const PRUnichar * aTitle) +{ + return SetMarginStrs(aTitle, eFooter, kJustRight); +} + + +/* attribute boolean isPrintFrame; */ +NS_IMETHODIMP nsPrintOptions::GetHowToEnableFrameUI(PRInt16 *aHowToEnableFrameUI) +{ + NS_ENSURE_ARG_POINTER(aHowToEnableFrameUI); + *aHowToEnableFrameUI = (PRInt32)mHowToEnableFrameUI; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetHowToEnableFrameUI(PRInt16 aHowToEnableFrameUI) +{ + mHowToEnableFrameUI = aHowToEnableFrameUI; + return NS_OK; +} + +/* attribute long printFrame; */ +NS_IMETHODIMP nsPrintOptions::GetPrintFrameType(PRInt16 *aPrintFrameType) +{ + NS_ENSURE_ARG_POINTER(aPrintFrameType); + *aPrintFrameType = mPrintFrameType; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintFrameType(PRInt16 aPrintFrameType) +{ + mPrintFrameType = aPrintFrameType; + return NS_OK; +} + +/* attribute short printFrameTypeUsage; */ +NS_IMETHODIMP nsPrintOptions::GetPrintFrameTypeUsage(PRInt16 *aPrintFrameTypeUsage) +{ + NS_ENSURE_ARG_POINTER(aPrintFrameTypeUsage); + *aPrintFrameTypeUsage = mPrintFrameTypeUsage; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintFrameTypeUsage(PRInt16 aPrintFrameTypeUsage) +{ + mPrintFrameTypeUsage = aPrintFrameTypeUsage; + return NS_OK; +} + +/* attribute long isCancelled; */ +NS_IMETHODIMP nsPrintOptions::GetIsCancelled(PRBool *aIsCancelled) +{ + NS_ENSURE_ARG_POINTER(aIsCancelled); + *aIsCancelled = mIsCancelled; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetIsCancelled(PRBool aIsCancelled) +{ + mIsCancelled = aIsCancelled; + return NS_OK; +} + + +/* attribute long isCancelled; */ +NS_IMETHODIMP nsPrintOptions::GetPrintSilent(PRBool *aPrintSilent) +{ + NS_ENSURE_ARG_POINTER(aPrintSilent); + *aPrintSilent = mPrintSilent; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPrintSilent(PRBool aPrintSilent) +{ + mPrintSilent = aPrintSilent; + return NS_OK; +} + /* [noscript] voidPtr GetNativeData (in short aDataType); */ NS_IMETHODIMP nsPrintOptions::GetNativeData(PRInt16 aDataType, void * *_retval) { @@ -979,6 +1136,287 @@ NS_IMETHODIMP nsPrintOptions::GetNativeData(PRInt16 aDataType, void * *_retval) return NS_ERROR_NOT_IMPLEMENTED; } +/* attribute nsIPrintSettings printSettings; */ +NS_IMETHODIMP nsPrintOptions::GetPrintSettings(nsIPrintSettings * *aPrintSettings) +{ + NS_ENSURE_ARG_POINTER(aPrintSettings); + *aPrintSettings = mPrintSettingsObj; + return NS_OK; +} + +NS_IMETHODIMP nsPrintOptions::SetPrintSettings(nsIPrintSettings * aPrintSettings) +{ + NS_ENSURE_ARG_POINTER(aPrintSettings); + mPrintSettingsObj = aPrintSettings; + return NS_OK; +} + +/* attribute nsIPrintSettings printSettingsValues; */ +NS_IMETHODIMP nsPrintOptions::GetPrintSettingsValues(nsIPrintSettings * *aPrintSettingsValues) +{ + NS_ENSURE_ARG_POINTER(aPrintSettingsValues); + nsIPrintSettings* printSettingsValues = *aPrintSettingsValues; + if (printSettingsValues == nsnull) { + if (NS_SUCCEEDED(CreatePrintSettings(&printSettingsValues))) { + *aPrintSettingsValues = printSettingsValues; + } else { + return NS_ERROR_FAILURE; + } + } + + printSettingsValues->SetStartPageRange(mStartPageNum); + printSettingsValues->SetEndPageRange(mEndPageNum); + + double dblVal; + GetMarginTop(&dblVal); + printSettingsValues->SetMarginTop(dblVal); + + GetMarginLeft(&dblVal); + printSettingsValues->SetMarginLeft(dblVal); + + GetMarginBottom(&dblVal); + printSettingsValues->SetMarginBottom(dblVal); + + GetMarginRight(&dblVal); + printSettingsValues->SetMarginRight(dblVal); + + printSettingsValues->SetScaling(mScaling); + printSettingsValues->SetPrintBGColors(mPrintBGColors); + printSettingsValues->SetPrintBGImages(mPrintBGImages); + + printSettingsValues->SetPrintRange(mPrintRange); + + PRUnichar* uniChar; + GetTitle(&uniChar); + printSettingsValues->SetTitle(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + GetDocURL(&uniChar); + printSettingsValues->SetDocURL(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + GetHeaderStrLeft(&uniChar); + printSettingsValues->SetHeaderStrLeft(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + GetHeaderStrCenter(&uniChar); + printSettingsValues->SetHeaderStrCenter(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + GetHeaderStrRight(&uniChar); + printSettingsValues->SetHeaderStrRight(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + GetFooterStrLeft(&uniChar); + printSettingsValues->SetFooterStrLeft(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + GetFooterStrCenter(&uniChar); + printSettingsValues->SetFooterStrCenter(uniChar); + + GetFooterStrRight(&uniChar); + printSettingsValues->SetFooterStrRight(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + printSettingsValues->SetPrintFrameTypeUsage(mPrintFrameTypeUsage); + printSettingsValues->SetPrintFrameType(mPrintFrameType); + printSettingsValues->SetPrintSilent(mPrintSilent); + printSettingsValues->SetPrintReversed(mPrintReversed); + printSettingsValues->SetPrintInColor(mPrintInColor); + printSettingsValues->SetPaperSizeUnit(mPaperSizeUnit); + printSettingsValues->SetPaperHeight(mPaperHeight); + printSettingsValues->SetPaperWidth(mPaperWidth); + printSettingsValues->SetOrientation(mOrientation); + printSettingsValues->SetNumCopies(mNumCopies); + + GetPrinterName(&uniChar); + printSettingsValues->SetPrinterName(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + GetPrintCommand(&uniChar); + printSettingsValues->SetPrintCommand(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + printSettingsValues->SetPrintToFile(mPrintToFile); + + GetToFileName(&uniChar); + printSettingsValues->SetToFileName(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + printSettingsValues->SetPrintPageDelay(mPrintPageDelay); + + return NS_OK; +} + +NS_IMETHODIMP nsPrintOptions::SetPrintSettingsValues(nsIPrintSettings * aPrintSettingsValues) +{ + + NS_ENSURE_ARG_POINTER(aPrintSettingsValues); + + aPrintSettingsValues->GetStartPageRange(&mStartPageNum); + aPrintSettingsValues->GetEndPageRange(&mEndPageNum); + + double dblVal; + aPrintSettingsValues->GetMarginTop(&dblVal); + SetMarginTop(dblVal); + + aPrintSettingsValues->GetMarginLeft(&dblVal); + SetMarginLeft(dblVal); + + aPrintSettingsValues->GetMarginBottom(&dblVal); + SetMarginBottom(dblVal); + + aPrintSettingsValues->GetMarginRight(&dblVal); + SetMarginRight(dblVal); + + aPrintSettingsValues->GetScaling(&mScaling); + aPrintSettingsValues->GetPrintBGColors(&mPrintBGColors); + aPrintSettingsValues->GetPrintBGImages(&mPrintBGImages); + + aPrintSettingsValues->GetPrintRange(&mPrintRange); + + PRUnichar* uniChar; + aPrintSettingsValues->GetTitle(&uniChar); + SetTitle(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetDocURL(&uniChar); + SetDocURL(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetHeaderStrLeft(&uniChar); + SetHeaderStrLeft(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetHeaderStrCenter(&uniChar); + SetHeaderStrCenter(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetHeaderStrRight(&uniChar); + SetHeaderStrRight(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetFooterStrLeft(&uniChar); + SetFooterStrLeft(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetFooterStrCenter(&uniChar); + SetFooterStrCenter(uniChar); + + aPrintSettingsValues->GetFooterStrRight(&uniChar); + SetFooterStrRight(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetPrintFrameTypeUsage(&mPrintFrameTypeUsage); + aPrintSettingsValues->GetPrintFrameType(&mPrintFrameType); + aPrintSettingsValues->GetPrintSilent(&mPrintSilent); + aPrintSettingsValues->GetPrintReversed(&mPrintReversed); + aPrintSettingsValues->GetPrintInColor(&mPrintInColor); + aPrintSettingsValues->GetPaperSizeUnit(&mPaperSizeUnit); + aPrintSettingsValues->GetPaperHeight(&mPaperHeight); + aPrintSettingsValues->GetPaperWidth(&mPaperWidth); + aPrintSettingsValues->GetOrientation(&mOrientation); + aPrintSettingsValues->GetNumCopies(&mNumCopies); + + aPrintSettingsValues->GetPrinterName(&uniChar); + SetPrinterName(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetPrintCommand(&uniChar); + SetPrintCommand(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetPrintToFile(&mPrintToFile); + + aPrintSettingsValues->GetToFileName(&uniChar); + SetToFileName(uniChar); + if (uniChar != nsnull) nsMemory::Free(uniChar); + + aPrintSettingsValues->GetPrintPageDelay(&mPrintPageDelay); + SetPrintPageDelay(mPrintPageDelay); + + return NS_OK; +} + + +/* attribute double paperWidth; */ +NS_IMETHODIMP nsPrintOptions::GetPaperWidth(double *aPaperWidth) +{ + NS_ENSURE_ARG_POINTER(aPaperWidth); + *aPaperWidth = mPaperWidth; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPaperWidth(double aPaperWidth) +{ + mPaperWidth = aPaperWidth; + return NS_OK; +} + +/* attribute double paperHeight; */ +NS_IMETHODIMP nsPrintOptions::GetPaperHeight(double *aPaperHeight) +{ + NS_ENSURE_ARG_POINTER(aPaperHeight); + *aPaperHeight = mPaperHeight; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPaperHeight(double aPaperHeight) +{ + mPaperHeight = aPaperHeight; + return NS_OK; +} + +/* attribute short PaperSizeUnit; */ +NS_IMETHODIMP nsPrintOptions::GetPaperSizeUnit(PRInt16 *aPaperSizeUnit) +{ + NS_ENSURE_ARG_POINTER(aPaperSizeUnit); + *aPaperSizeUnit = mPaperSizeUnit; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPaperSizeUnit(PRInt16 aPaperSizeUnit) +{ + mPaperSizeUnit = aPaperSizeUnit; + return NS_OK; +} + +/* attribute short PaperSizeType; */ +NS_IMETHODIMP nsPrintOptions::GetPaperSizeType(PRInt16 *aPaperSizeType) +{ + NS_ENSURE_ARG_POINTER(aPaperSizeType); + *aPaperSizeType = mPaperSizeType; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPaperSizeType(PRInt16 aPaperSizeType) +{ + mPaperSizeType = aPaperSizeType; + return NS_OK; +} + +/* attribute short PaperData; */ +NS_IMETHODIMP nsPrintOptions::GetPaperData(PRInt16 *aPaperData) +{ + NS_ENSURE_ARG_POINTER(aPaperData); + *aPaperData = mPaperData; + return NS_OK; +} +NS_IMETHODIMP nsPrintOptions::SetPaperData(PRInt16 aPaperData) +{ + mPaperData = aPaperData; + return NS_OK; +} + +/* This has been deprecated */ +NS_IMETHODIMP nsPrintOptions::GetPaperSize(PRInt32 *aPaperSize) +{ + *aPaperSize = mPaperSize; + return NS_OK; +} +/* This has been deprecated */ +NS_IMETHODIMP nsPrintOptions::SetPaperSize(PRInt32 aPaperSize) +{ + mPaperSize = aPaperSize; + return NS_OK; +} + /* nsIPrintSettings CreatePrintSettings (); */ NS_IMETHODIMP nsPrintOptions::CreatePrintSettings(nsIPrintSettings **_retval) { @@ -989,7 +1427,7 @@ NS_IMETHODIMP nsPrintOptions::CreatePrintSettings(nsIPrintSettings **_retval) rv = printSettings->QueryInterface(NS_GET_IID(nsIPrintSettings), (void**)_retval); // ref counts if (NS_FAILED(rv)) return NS_ERROR_FAILURE; - InitPrintSettingsFromPrefs(*_retval, PR_FALSE, nsIPrintSettings::kInitSaveAll); // ignore return value + InitPrintSettingsFromPrefs(*_retval); // ignore return value return rv; } @@ -1031,22 +1469,6 @@ nsresult nsPrintOptions::ReadPrefString(nsIPref * aPref, return rv; } -/** --------------------------------------------------- - * Write PRUnichar* to Prefs and deletes the contents of the string - */ -nsresult nsPrintOptions::WritePrefString(nsIPref* aPref, PRUnichar*& aStr, const char* aPrefId) -{ - if (!aStr) return NS_ERROR_FAILURE; - - nsresult rv = NS_ERROR_FAILURE; - if (aStr) { - rv = aPref->SetUnicharPref(aPrefId, aStr); - nsMemory::Free(aStr); - aStr = nsnull; - } - return rv; -} - nsresult nsPrintOptions::WritePrefString(nsIPref * aPref, const char * aPrefId, nsString& aString) @@ -1068,9 +1490,7 @@ nsresult nsPrintOptions::ReadPrefDouble(nsIPref * aPref, char * str = nsnull; nsresult rv = aPref->CopyCharPref(aPrefId, &str); if (NS_SUCCEEDED(rv) && str) { - float f; - sscanf(str, "%f", &f); - aVal = double(f); + sscanf(str, "%6.2f", &aVal); nsMemory::Free(str); } return rv; @@ -1088,6 +1508,26 @@ nsresult nsPrintOptions::WritePrefDouble(nsIPref * aPref, return aPref->SetCharPref(aPrefId, str); } +void nsPrintOptions::ReadBitFieldPref(nsIPref * aPref, + const char * aPrefId, + PRInt32 anOption) +{ + PRBool b; + if (NS_SUCCEEDED(aPref->GetBoolPref(aPrefId, &b))) { + SetPrintOptions(anOption, b); + } +} + +//--------------------------------------------------- +void nsPrintOptions::WriteBitFieldPref(nsIPref * aPref, + const char * aPrefId, + PRInt32 anOption) +{ + PRBool b; + GetPrintOptions(anOption, &b); + aPref->SetBoolPref(aPrefId, b); +} + //--------------------------------------------------- void nsPrintOptions::ReadInchesToTwipsPref(nsIPref * aPref, const char * aPrefId, @@ -1125,7 +1565,6 @@ void nsPrintOptions::WriteInchesFromTwipsPref(nsIPref * aPref, } } -//--------------------------------------------------- void nsPrintOptions::ReadJustification(nsIPref * aPref, const char * aPrefId, PRInt16& aJust, @@ -1134,14 +1573,14 @@ void nsPrintOptions::ReadJustification(nsIPref * aPref, aJust = aInitValue; nsAutoString justStr; if (NS_SUCCEEDED(ReadPrefString(aPref, aPrefId, justStr))) { - if (justStr.EqualsWithConversion(kJustRight)) { - aJust = nsIPrintSettings::kJustRight; + if (justStr.EqualsWithConversion(kRightJust)) { + aJust = kJustRight; - } else if (justStr.EqualsWithConversion(kJustCenter)) { - aJust = nsIPrintSettings::kJustCenter; + } else if (justStr.EqualsWithConversion(kCenterJust)) { + aJust = kJustCenter; } else { - aJust = nsIPrintSettings::kJustLeft; + aJust = kJustLeft; } } } @@ -1152,117 +1591,19 @@ void nsPrintOptions::WriteJustification(nsIPref * aPref, PRInt16 aJust) { switch (aJust) { - case nsIPrintSettings::kJustLeft: - aPref->SetCharPref(aPrefId, kJustLeft); + case kJustLeft: + aPref->SetCharPref(aPrefId, kLeftJust); break; - case nsIPrintSettings::kJustCenter: - aPref->SetCharPref(aPrefId, kJustCenter); + case kJustCenter: + aPref->SetCharPref(aPrefId, kCenterJust); break; - case nsIPrintSettings::kJustRight: - aPref->SetCharPref(aPrefId, kJustRight); + case kJustRight: + aPref->SetCharPref(aPrefId, kRightJust); break; } //switch } -//---------------------------------------------------------------------- -// Testing of read/write prefs -// This define turns on the testing module below -// so at start up it writes and reads the prefs. -#ifdef DEBUG_rods_X -class Tester { -public: - Tester(); -}; -Tester::Tester() -{ - static NS_DEFINE_CID(kPrintOptionsCID, NS_PRINTOPTIONS_CID); - nsCOMPtr ps; - nsresult rv; - nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); - if (NS_SUCCEEDED(rv)) { - rv = printService->CreatePrintSettings(getter_AddRefs(ps)); - } - if (ps) { - ps->SetPrintOptions(nsIPrintSettings::kPrintOddPages, PR_TRUE); - ps->SetPrintOptions(nsIPrintSettings::kPrintEvenPages, PR_FALSE); - ps->SetMarginTop(1.0); - ps->SetMarginLeft(1.0); - ps->SetMarginBottom(1.0); - ps->SetMarginRight(1.0); - ps->SetScaling(0.5); - ps->SetPrintBGColors(PR_TRUE); - ps->SetPrintBGImages(PR_TRUE); - ps->SetPrintRange(15); - ps->SetHeaderStrLeft(NS_ConvertUTF8toUCS2("Left").get()); - ps->SetHeaderStrCenter(NS_ConvertUTF8toUCS2("Center").get()); - ps->SetHeaderStrRight(NS_ConvertUTF8toUCS2("Right").get()); - ps->SetFooterStrLeft(NS_ConvertUTF8toUCS2("Left").get()); - ps->SetFooterStrCenter(NS_ConvertUTF8toUCS2("Center").get()); - ps->SetFooterStrRight(NS_ConvertUTF8toUCS2("Right").get()); - ps->SetPaperName(NS_ConvertUTF8toUCS2("Paper Name").get()); - ps->SetPaperSizeType(10); - ps->SetPaperData(1); - ps->SetPaperWidth(100.0); - ps->SetPaperHeight(50.0); - ps->SetPaperSizeUnit(nsIPrintSettings::kPaperSizeMillimeters); - ps->SetPrintReversed(PR_TRUE); - ps->SetPrintInColor(PR_TRUE); - ps->SetPaperSize(5); - ps->SetOrientation(nsIPrintSettings::kLandscapeOrientation); - ps->SetPrintCommand(NS_ConvertUTF8toUCS2("Command").get()); - ps->SetNumCopies(2); - ps->SetPrinterName(NS_ConvertUTF8toUCS2("Printer Name").get()); - ps->SetPrintToFile(PR_TRUE); - ps->SetToFileName(NS_ConvertUTF8toUCS2("File Name").get()); - ps->SetPrintPageDelay(1000); - struct SettingsType { - const char* mName; - PRUint32 mFlag; - }; - SettingsType gSettings[] = { - {"OddEven", nsIPrintSettings::kInitSaveOddEvenPages}, - {kPrintHeaderStrLeft, nsIPrintSettings::kInitSaveHeaderLeft}, - {kPrintHeaderStrCenter, nsIPrintSettings::kInitSaveHeaderCenter}, - {kPrintHeaderStrRight, nsIPrintSettings::kInitSaveHeaderRight}, - {kPrintFooterStrLeft, nsIPrintSettings::kInitSaveFooterLeft}, - {kPrintFooterStrCenter, nsIPrintSettings::kInitSaveFooterCenter}, - {kPrintFooterStrRight, nsIPrintSettings::kInitSaveFooterRight}, - {kPrintBGColors, nsIPrintSettings::kInitSaveBGColors}, - {kPrintBGImages, nsIPrintSettings::kInitSaveBGImages}, - {kPrintPaperSize, nsIPrintSettings::kInitSavePaperSize}, - {kPrintPaperName, nsIPrintSettings::kInitSavePaperName}, - {kPrintPaperSizeUnit, nsIPrintSettings::kInitSavePaperSizeUnit}, - {kPrintPaperSizeType, nsIPrintSettings::kInitSavePaperSizeType}, - {kPrintPaperData, nsIPrintSettings::kInitSavePaperData}, - {kPrintPaperWidth, nsIPrintSettings::kInitSavePaperWidth}, - {kPrintPaperHeight, nsIPrintSettings::kInitSavePaperHeight}, - {kPrintReversed, nsIPrintSettings::kInitSaveReversed}, - {kPrintInColor, nsIPrintSettings::kInitSaveInColor}, - {kPrintOrientation, nsIPrintSettings::kInitSaveOrientation}, - {kPrintCommand, nsIPrintSettings::kInitSavePrintCommand}, - {kPrinterName, nsIPrintSettings::kInitSavePrinterName}, - {kPrintToFile, nsIPrintSettings::kInitSavePrintToFile}, - {kPrintToFileName, nsIPrintSettings::kInitSaveToFileName}, - {kPrintPageDelay, nsIPrintSettings::kInitSavePageDelay}, - {"Margins", nsIPrintSettings::kInitSaveMargins}, - {"All", nsIPrintSettings::kInitSaveAll}, - {nsnull, 0}}; - - nsString prefix; prefix.AssignWithConversion("Printer Name"); - PRInt32 i = 0; - while (gSettings[i].mName != nsnull) { - printf("------------------------------------------------\n"); - printf("%d) %s -> 0x%X\n", i, gSettings[i].mName, gSettings[i].mFlag); - printService->SavePrintSettingsToPrefs(ps, PR_TRUE, gSettings[i].mFlag); - printService->InitPrintSettingsFromPrefs(ps, PR_TRUE, gSettings[i].mFlag); - i++; - } - } - -} -Tester gTester; -#endif diff --git a/mozilla/gfx/src/nsPrintOptionsImpl.h b/mozilla/gfx/src/nsPrintOptionsImpl.h index d4aad962170..8b90ac5b46f 100644 --- a/mozilla/gfx/src/nsPrintOptionsImpl.h +++ b/mozilla/gfx/src/nsPrintOptionsImpl.h @@ -50,26 +50,62 @@ protected: nsresult ReadPrefString(nsIPref * aPref, const char * aPrefId, nsString& aString); nsresult WritePrefString(nsIPref * aPref, const char * aPrefId, nsString& aString); - nsresult WritePrefString(nsIPref* aPref, PRUnichar*& aStr, const char* aPrefId); nsresult ReadPrefDouble(nsIPref * aPref, const char * aPrefId, double& aVal); nsresult WritePrefDouble(nsIPref * aPref, const char * aPrefId, double aVal); - nsresult ReadPrefs(nsIPrintSettings* aPS, const nsString& aPrefName, PRUint32 aFlags); - nsresult WritePrefs(nsIPrintSettings* aPS, const nsString& aPrefName, PRUint32 aFlags); - const char* GetPrefName(const char * aPrefName, - const nsString& aPrinterName); + typedef enum { + eHeader, + eFooter + } nsHeaderFooterEnum; + + nsresult GetMarginStrs(PRUnichar * *aTitle, nsHeaderFooterEnum aType, PRInt16 aJust); + nsresult SetMarginStrs(const PRUnichar * aTitle, nsHeaderFooterEnum aType, PRInt16 aJust); // Members + nsMargin mMargin; + PRInt32 mPrintOptions; + + // scriptable data members + PRInt16 mPrintRange; + PRInt32 mStartPageNum; // only used for ePrintRange_SpecifiedRange + PRInt32 mEndPageNum; + double mScaling; + PRBool mPrintBGColors; // print background colors + PRBool mPrintBGImages; // print background images + + PRInt16 mPrintFrameTypeUsage; + PRInt16 mPrintFrameType; + PRBool mHowToEnableFrameUI; PRBool mIsCancelled; + PRBool mPrintSilent; + PRInt32 mPrintPageDelay; + nsString mTitle; nsString mURL; + nsString mPageNumberFormat; + nsString mHeaderStrs[3]; + nsString mFooterStrs[3]; + + nsIPrintSettings* mPrintSettingsObj; //weak ref, hold address only + + PRInt16 mPaperData; + PRInt16 mPaperSizeType; + double mPaperWidth; + double mPaperHeight; + PRInt16 mPaperSizeUnit; + + PRInt32 mPaperSize; // this has been deprecated + PRBool mPrintReversed; + PRBool mPrintInColor; // a false means grayscale + PRInt32 mOrientation; // see orientation consts + nsString mPrintCommand; + PRInt32 mNumCopies; + nsString mPrinter; PRBool mPrintToFile; nsString mToFileName; nsCOMPtr mGlobalPrintSettings; - nsCString mPrefName; - static nsFont* sDefaultFont; }; diff --git a/mozilla/gfx/src/nsPrintSettingsImpl.cpp b/mozilla/gfx/src/nsPrintSettingsImpl.cpp index a7ed6306cb3..c0b1ba8b97d 100644 --- a/mozilla/gfx/src/nsPrintSettingsImpl.cpp +++ b/mozilla/gfx/src/nsPrintSettingsImpl.cpp @@ -48,30 +48,30 @@ NS_IMPL_ISUPPORTS1(nsPrintSettings, nsIPrintSettings) * @update 6/21/00 dwc */ nsPrintSettings::nsPrintSettings() : - mPrintOptions(0L), mPrintRange(kRangeAllPages), mStartPageNum(1), mEndPageNum(1), mScaling(1.0), + mNumCopies(1), mPrintBGColors(PR_FALSE), mPrintBGImages(PR_FALSE), - mPrintFrameTypeUsage(kUseInternalDefault), - mPrintFrameType(kFramesAsIs), - mHowToEnableFrameUI(kFrameEnableNone), - mIsCancelled(PR_FALSE), - mPrintSilent(PR_FALSE), - mShrinkToFit(PR_FALSE), - mPrintPageDelay(500), - mPaperData(0), - mPaperSizeType(kPaperSizeDefined), - mPaperWidth(8.5), - mPaperHeight(11.0), - mPaperSizeUnit(kPaperSizeInches), + mPrintOptions(0L), mPrintReversed(PR_FALSE), mPrintInColor(PR_TRUE), mOrientation(kPortraitOrientation), - mNumCopies(1), - mPrintToFile(PR_FALSE) + mPrintToFile(PR_FALSE), + mPrintFrameTypeUsage(kUseInternalDefault), + mPrintFrameType(kFramesAsIs), + mPrintPageDelay(500), + mPaperSizeType(kPaperSizeDefined), + mPaperData(0), + mPaperWidth(8.5), + mPaperHeight(11.0), + mPaperSizeUnit(kPaperSizeInches), + mPrintSilent(PR_FALSE), + mShrinkToFit(PR_FALSE), + mHowToEnableFrameUI(kFrameEnableNone), + mIsCancelled(PR_FALSE) { NS_INIT_ISUPPORTS(); @@ -591,24 +591,6 @@ NS_IMETHODIMP nsPrintSettings::SetShrinkToFit(PRBool aShrinkToFit) return NS_OK; } -/* attribute wstring paperName; */ -NS_IMETHODIMP nsPrintSettings::GetPaperName(PRUnichar * *aPaperName) -{ - NS_ENSURE_ARG_POINTER(aPaperName); - if (mPaperName.Length()) { - *aPaperName = ToNewUnicode(mPaperName); - } else { - *aPaperName = nsnull; - } - return NS_OK; -} -NS_IMETHODIMP nsPrintSettings::SetPaperName(const PRUnichar * aPaperName) -{ - NS_ENSURE_ARG_POINTER(aPaperName); - mPaperName = aPaperName; - return NS_OK; -} - /* attribute boolean howToEnableFrameUI; */ NS_IMETHODIMP nsPrintSettings::GetHowToEnableFrameUI(PRInt16 *aHowToEnableFrameUI) { diff --git a/mozilla/gfx/src/nsPrintSettingsImpl.h b/mozilla/gfx/src/nsPrintSettingsImpl.h index d3098e63714..09eca59f3cd 100644 --- a/mozilla/gfx/src/nsPrintSettingsImpl.h +++ b/mozilla/gfx/src/nsPrintSettingsImpl.h @@ -27,6 +27,8 @@ #include "nsMargin.h" #include "nsString.h" +class nsIPrintSettings; + //***************************************************************************** //*** nsPrintSettings //***************************************************************************** @@ -74,7 +76,6 @@ protected: nsString mHeaderStrs[3]; nsString mFooterStrs[3]; - nsString mPaperName; PRInt16 mPaperData; PRInt16 mPaperSizeType; double mPaperWidth; diff --git a/mozilla/gfx/src/windows/nsDeviceContextSpecWin.cpp b/mozilla/gfx/src/windows/nsDeviceContextSpecWin.cpp index a65cc4f2b0f..78e38122b19 100644 --- a/mozilla/gfx/src/windows/nsDeviceContextSpecWin.cpp +++ b/mozilla/gfx/src/windows/nsDeviceContextSpecWin.cpp @@ -1528,8 +1528,7 @@ nsDeviceContextSpecWin::GetDataFromPrinter(const PRUnichar * aName, nsIPrintSett nsresult rv = NS_ERROR_FAILURE; if (!GlobalPrinters::GetInstance()->PrintersAreAllocated()) { - rv = GlobalPrinters::GetInstance()->EnumeratePrinterList(); - NS_ENSURE_SUCCESS(rv, rv); + return rv; } HANDLE hPrinter = NULL; @@ -1795,7 +1794,7 @@ nsPrinterEnumeratorWin::EnumeratePrinters(PRUint32* aCount, PRUnichar*** aResult PRInt32 count = 0; PRInt32 printerInx = 0; while( count < numItems ) { - LPTSTR name = GlobalPrinters::GetInstance()->GetItemFromList(printerInx++); + LPTSTR name = GlobalPrinters::GetInstance()->GetItemFromList(printerInx); nsString newName; newName.AssignWithConversion(name); PRUnichar *str = ToNewUnicode(newName); diff --git a/mozilla/layout/base/nsDocumentViewer.cpp b/mozilla/layout/base/nsDocumentViewer.cpp index d27d54b3e0f..af04ece56b0 100644 --- a/mozilla/layout/base/nsDocumentViewer.cpp +++ b/mozilla/layout/base/nsDocumentViewer.cpp @@ -3828,7 +3828,7 @@ DocumentViewerImpl::FindXMostFrameInList(nsIPresContext* aPresContext, rect.y += aY; nscoord xMost = rect.XMost(); -#ifdef DEBUG_PRINTING // keep this here but leave it turned off +#ifdef DEBUG_PRINTING_X // keep this here but leave it turned off nsAutoString tmp; nsIFrameDebug* frameDebug; if (NS_SUCCEEDED(CallQueryInterface(child, &frameDebug))) { @@ -3839,7 +3839,7 @@ DocumentViewerImpl::FindXMostFrameInList(nsIPresContext* aPresContext, if (xMost > aMaxWidth) { aMaxWidth = xMost; -#ifdef DEBUG_PRINTING // keep this here but leave it turned off +#ifdef DEBUG_PRINTING_X // keep this here but leave it turned off printf("%p - %d %s ", child, aMaxWidth, NS_LossyConvertUCS2toASCII(tmp).get()); if (aList == nsLayoutAtoms::overflowList) printf(" nsLayoutAtoms::overflowList\n"); if (aList == nsLayoutAtoms::floaterList) printf(" nsLayoutAtoms::floaterList\n"); @@ -7354,6 +7354,36 @@ DocumentViewerImpl::GetCurrentPrintSettings(nsIPrintSettings * *aCurrentPrintSet return NS_OK; } +/* attribute nsIPrintSettings globalPrintSettingsValues; */ +NS_IMETHODIMP +DocumentViewerImpl::GetGlobalPrintSettingsValues(nsIPrintSettings * *aGlobalPrintSettingsValues) +{ + NS_ENSURE_ARG_POINTER(aGlobalPrintSettingsValues); + NS_ENSURE_ARG_POINTER(*aGlobalPrintSettingsValues); + + nsresult rv = NS_ERROR_FAILURE; + if (aGlobalPrintSettingsValues && *aGlobalPrintSettingsValues) { + nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); + if (NS_SUCCEEDED(rv)) { + rv = printService->GetPrintSettingsValues(aGlobalPrintSettingsValues); + } + } + return rv; +} + +NS_IMETHODIMP +DocumentViewerImpl::SetGlobalPrintSettingsValues(nsIPrintSettings * aGlobalPrintSettingsValues) +{ + NS_ENSURE_ARG_POINTER(aGlobalPrintSettingsValues); + + nsresult rv = NS_ERROR_FAILURE; + nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); + if (NS_SUCCEEDED(rv)) { + rv = printService->SetPrintSettingsValues(aGlobalPrintSettingsValues); + } + return rv; +} + /* void cancel (); */ NS_IMETHODIMP DocumentViewerImpl::Cancel() @@ -7366,29 +7396,6 @@ DocumentViewerImpl::Cancel() return NS_OK; } -/* void initPrintSettingsFromPrefs (in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); */ -NS_IMETHODIMP -DocumentViewerImpl::InitPrintSettingsFromPrefs(nsIPrintSettings *aPrintSettings, PRBool aUsePrinterNamePrefix, PRUint32 aFlags) -{ - nsresult rv; - nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); - if (NS_SUCCEEDED(rv) && printService) { - return printService->InitPrintSettingsFromPrefs(aPrintSettings, aUsePrinterNamePrefix, aFlags); - } - return NS_OK; -} - -/* void savePrintSettingsToPrefs (in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); */ -NS_IMETHODIMP -DocumentViewerImpl::SavePrintSettingsToPrefs(nsIPrintSettings *aPrintSettings, PRBool aUsePrinterNamePrefix, PRUint32 aFlags) -{ - nsresult rv; - nsCOMPtr printService = do_GetService(kPrintOptionsCID, &rv); - if (NS_SUCCEEDED(rv) && printService) { - return printService->SavePrintSettingsToPrefs(aPrintSettings, aUsePrinterNamePrefix, aFlags); - } - return NS_OK; -} /** --------------------------------------------------- * Get the Focused Frame for a documentviewer diff --git a/mozilla/modules/libpref/src/init/all.js b/mozilla/modules/libpref/src/init/all.js index d64a8b0cef4..c05c309ae52 100644 --- a/mozilla/modules/libpref/src/init/all.js +++ b/mozilla/modules/libpref/src/init/all.js @@ -222,15 +222,12 @@ pref("print.print_footerright", "&D"); pref("print.show_print_progress", true); // When this is set to false it means each window has its PrintSettings -// and a change in one browser window does not effect the others +// and a change in one browser window does not efect the others pref("print.use_global_printsettings", false); -// This indicates whether it should use the native dialog or the XP Dialog50 +// This indeicates whether it should use the native dialog or the XP Dialog50 pref("print.use_native_print_dialog", false); -// Save the Printings after each print job -pref("print.save_print_settings", true); - pref("print.whileInPrintPreview", true); // Enables you to specify the gap from the edge of the paper to the margin diff --git a/mozilla/modules/libpref/src/unix/unix.js b/mozilla/modules/libpref/src/unix/unix.js index 8e9abee0e3c..5b1e4e02f12 100644 --- a/mozilla/modules/libpref/src/unix/unix.js +++ b/mozilla/modules/libpref/src/unix/unix.js @@ -115,6 +115,7 @@ pref("print.print_edge_left", 4); // 1/100 of an inch pref("print.print_edge_right", 4); // 1/100 of an inch pref("print.print_edge_bottom", 4); // 1/100 of an inch + // print_extra_margin enables platforms to specify an extra gap or margin // around the content of the page for Print Preview only pref("print.print_extra_margin", 0); // twips diff --git a/mozilla/modules/plugin/base/src/nsPluginViewer.cpp b/mozilla/modules/plugin/base/src/nsPluginViewer.cpp index ba04faa432c..0f47234bf79 100644 --- a/mozilla/modules/plugin/base/src/nsPluginViewer.cpp +++ b/mozilla/modules/plugin/base/src/nsPluginViewer.cpp @@ -843,6 +843,18 @@ PluginViewerImpl::GetGlobalPrintSettings(nsIPrintSettings * *aGlobalPrintSetting return NS_ERROR_NOT_IMPLEMENTED; } +/* attribute nsIPrintSettings globalPrintSettingsValues; */ +NS_IMETHODIMP +PluginViewerImpl::GetGlobalPrintSettingsValues(nsIPrintSettings * *aGlobalPrintSettingsValues) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +PluginViewerImpl::SetGlobalPrintSettingsValues(nsIPrintSettings * aGlobalPrintSettingsValues) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} /* void printPreview (in nsIPrintSettings aThePrintSettings); */ NS_IMETHODIMP PluginViewerImpl::PrintPreview(nsIPrintSettings *aThePrintSettings) @@ -878,20 +890,6 @@ PluginViewerImpl::Cancel() return NS_ERROR_NOT_IMPLEMENTED; } -/* void initPrintSettingsFromPrefs (in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); */ -NS_IMETHODIMP -PluginViewerImpl::InitPrintSettingsFromPrefs(nsIPrintSettings *aPrintSettings, PRBool aUsePrinterNamePrefix, PRUint32 aFlags) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -/* void savePrintSettingsToPrefs (in nsIPrintSettings aPrintSettings, in boolean aUsePrinterNamePrefix, in unsigned long aFlags); */ -NS_IMETHODIMP -PluginViewerImpl::SavePrintSettingsToPrefs(nsIPrintSettings *aPrintSettings, PRBool aUsePrinterNamePrefix, PRUint32 aFlags) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - /* void enumerateDocumentNames (out PRUint32 aCount, [array, size_is (aCount), retval] out wstring aResult); */ NS_IMETHODIMP PluginViewerImpl::EnumerateDocumentNames(PRUint32 *aCount, PRUnichar ***aResult) diff --git a/mozilla/xpfe/global/resources/content/printdialog.js b/mozilla/xpfe/global/resources/content/printdialog.js index 2f977f01cd8..9d6a69cc6c7 100644 --- a/mozilla/xpfe/global/resources/content/printdialog.js +++ b/mozilla/xpfe/global/resources/content/printdialog.js @@ -31,7 +31,7 @@ var gOriginalNumCopies = 1; var paramBlock; var gPrintSettings = null; var gPrinterName = ""; -var gWebBrowserPrint = null; + var default_file = "mozilla.ps"; var gPrintSetInterface = Components.interfaces.nsIPrintSettings; var doDebug = false; @@ -183,9 +183,6 @@ function getPrinters() var strDefaultPrinterName = selectElement.appendPrinterNames(printerEnumerator); selectElement.listElement.value = strDefaultPrinterName; - - // make sure we load the prefs for the initially selected printer - setPrinterDefaultsForSelectedPrinter(); } @@ -197,18 +194,8 @@ function setPrinterDefaultsForSelectedPrinter() gPrintSettings.printerName = dialog.printerList.value; var ifreq = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor); - gWebBrowserPrint = ifreq.getInterface(Components.interfaces.nsIWebBrowserPrint); - - // First get any defaults from the printer - gWebBrowserPrint.initPrintSettingsFromPrinter(gPrintSettings.printerName, gPrintSettings); - - var flags = gPrintSetInterface.kInitSavePaperSizeType | gPrintSetInterface.kInitSavePaperSizeUnit | - gPrintSetInterface.kInitSavePaperWidth | gPrintSetInterface.kInitSavePaperHeight | - gPrintSetInterface.kInitSavePrintCommand; - - // now augment them with any values from last time - gWebBrowserPrint.initPrintSettingsFromPrefs(gPrintSettings, true, flags); - + var webBrowserPrint = ifreq.getInterface(Components.interfaces.nsIWebBrowserPrint); + webBrowserPrint.initPrintSettingsFromPrinter(gPrintSettings.printerName, gPrintSettings); } //--------------------------------------------------- @@ -451,24 +438,11 @@ function onAccept() } } - var saveToPrefs = false; - var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); - if (prefs) { - saveToPrefs = prefs.getBoolPref("print.save_print_settings"); - } - - if (saveToPrefs && gWebBrowserPrint != null) { - var flags = gPrintSetInterface.kInitSavePaperSizeType | gPrintSetInterface.kInitSavePaperSizeUnit | - gPrintSetInterface.kInitSavePaperWidth | gPrintSetInterface.kInitSavePaperHeight | - gPrintSetInterface.kInitSavePrintCommand; - gWebBrowserPrint.savePrintSettingsToPrefs(gPrintSettings, true, flags); - } - // set return value to "print" if (paramBlock) { paramBlock.SetInt(0, 1); } else { - dump("*** FATAL ERROR: No paramBlock\n"); + dump("*** FATAL ERROR: printService missing\n"); } return true; diff --git a/mozilla/xpfe/global/resources/content/unix/printjoboptions.js b/mozilla/xpfe/global/resources/content/unix/printjoboptions.js index 11ff311251d..b7015771bb2 100644 --- a/mozilla/xpfe/global/resources/content/unix/printjoboptions.js +++ b/mozilla/xpfe/global/resources/content/unix/printjoboptions.js @@ -271,8 +271,8 @@ function loadDialog() print_paper_unit = gPrintSettings.paperSizeUnit; print_paper_width = gPrintSettings.paperWidth; print_paper_height = gPrintSettings.paperHeight; - print_color = gPrintSettings.printInColor; - print_command = gPrintSettings.printCommand; + print_color = gPrintSettings.printInColor; + print_command = gPrintSettings.printCommand; if (print_paper_unit == gPrintSettingsInterface.kPaperSizeInches) { print_paper_width_mm = gPrintSettings.paperWidth * 25.4; @@ -329,18 +329,10 @@ function loadDialog() dialog.cmdInput.value = print_command; try { - // first get the generic settings dialog.topInput.value = gPrefs.getIntPref("print.print_edge_top") / 100.0; dialog.bottomInput.value = gPrefs.getIntPref("print.print_edge_left") / 100.0; dialog.leftInput.value = gPrefs.getIntPref("print.print_edge_right") / 100.0; dialog.rightInput.value = gPrefs.getIntPref("print.print_edge_bottom") / 100.0; - - // then the printer specific settings - var printername = gPrintSettings.printerName; - dialog.topInput.value = gPrefs.getIntPref("print."+printername+"print_edge_top") / 100.0; - dialog.bottomInput.value = gPrefs.getIntPref("print."+printername+"print_edge_left") / 100.0; - dialog.leftInput.value = gPrefs.getIntPref("print."+printername+"print_edge_right") / 100.0; - dialog.rightInput.value = gPrefs.getIntPref("print."+printername+"print_edge_bottom") / 100.0; } catch (e) { dialog.topInput.value = "0.04"; dialog.bottomInput.value = "0.04"; @@ -349,6 +341,8 @@ function loadDialog() } } +var param; + //--------------------------------------------------- function onLoad() { @@ -403,18 +397,17 @@ function onAccept() // try { - var printerName = gPrintSettings.printerName; var i = dialog.topInput.value * 100; - gPrefs.setIntPref("print."+printerName+"print_edge_top", i); + gPrefs.setIntPref("print.print_edge_top", i); i = dialog.bottomInput.value * 100; - gPrefs.setIntPref("print."+printerName+"print_edge_left", i); + gPrefs.setIntPref("print.print_edge_left", i); i = dialog.leftInput.value * 100; - gPrefs.setIntPref("print."+printerName+"print_edge_right", i); + gPrefs.setIntPref("print.print_edge_right", i); i = dialog.rightInput.value * 100; - gPrefs.setIntPref("print."+printerName+"print_edge_bottom", i); + gPrefs.setIntPref("print.print_edge_bottom", i); } catch (e) { } @@ -433,11 +426,11 @@ function onAccept() dump("************ onAccept gPrintSettings: "+gPrintSettings+"\n"); } - if (paramBlock) { + if (param) { // set return value to "ok" - paramBlock.SetInt(0, 1); + param.SetInt(0, 1); } else { - dump("*** FATAL ERROR: paramBlock missing\n"); + dump("*** FATAL ERROR: printService missing\n"); } return true;