forked from mirrors/gecko-dev
Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen.
This avoids a lot of mismatches between nsAString and char16_t*, thus removing many getter_Copies() and ToNewUnicode() and get() calls, and generally making things simpler. Note: the patch removes GetDefaultPrinterNameFromGlobalPrinters() by simply inlining it at its two callsites, which is easy with the changed types. --HG-- extra : rebase_source : 9ab9b3694f093fc9b22c7f8e2394a98674d76c11
This commit is contained in:
parent
2790ca829a
commit
c0a1cf9b49
26 changed files with 286 additions and 470 deletions
|
|
@ -8156,7 +8156,7 @@ nsGlobalWindow::PrintOuter(ErrorResult& aError)
|
||||||
printSettingsService->GetGlobalPrintSettings(getter_AddRefs(printSettings));
|
printSettingsService->GetGlobalPrintSettings(getter_AddRefs(printSettings));
|
||||||
|
|
||||||
nsAutoString printerName;
|
nsAutoString printerName;
|
||||||
printSettings->GetPrinterName(getter_Copies(printerName));
|
printSettings->GetPrinterName(printerName);
|
||||||
|
|
||||||
bool shouldGetDefaultPrinterName = printerName.IsEmpty();
|
bool shouldGetDefaultPrinterName = printerName.IsEmpty();
|
||||||
#ifdef MOZ_X11
|
#ifdef MOZ_X11
|
||||||
|
|
@ -8170,10 +8170,10 @@ nsGlobalWindow::PrintOuter(ErrorResult& aError)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (shouldGetDefaultPrinterName) {
|
if (shouldGetDefaultPrinterName) {
|
||||||
printSettingsService->GetDefaultPrinterName(getter_Copies(printerName));
|
printSettingsService->GetDefaultPrinterName(printerName);
|
||||||
printSettings->SetPrinterName(printerName.get());
|
printSettings->SetPrinterName(printerName);
|
||||||
}
|
}
|
||||||
printSettingsService->InitPrintSettingsFromPrinter(printerName.get(),
|
printSettingsService->InitPrintSettingsFromPrinter(printerName,
|
||||||
printSettings);
|
printSettings);
|
||||||
printSettingsService->InitPrintSettingsFromPrefs(printSettings,
|
printSettingsService->InitPrintSettingsFromPrefs(printSettings,
|
||||||
true,
|
true,
|
||||||
|
|
|
||||||
|
|
@ -642,17 +642,17 @@ nsPageFrame::PaintHeaderFooter(gfxContext& aRenderingContext,
|
||||||
|
|
||||||
// print document headers and footers
|
// print document headers and footers
|
||||||
nsString headerLeft, headerCenter, headerRight;
|
nsString headerLeft, headerCenter, headerRight;
|
||||||
mPD->mPrintSettings->GetHeaderStrLeft(getter_Copies(headerLeft));
|
mPD->mPrintSettings->GetHeaderStrLeft(headerLeft);
|
||||||
mPD->mPrintSettings->GetHeaderStrCenter(getter_Copies(headerCenter));
|
mPD->mPrintSettings->GetHeaderStrCenter(headerCenter);
|
||||||
mPD->mPrintSettings->GetHeaderStrRight(getter_Copies(headerRight));
|
mPD->mPrintSettings->GetHeaderStrRight(headerRight);
|
||||||
DrawHeaderFooter(aRenderingContext, *fontMet, eHeader,
|
DrawHeaderFooter(aRenderingContext, *fontMet, eHeader,
|
||||||
headerLeft, headerCenter, headerRight,
|
headerLeft, headerCenter, headerRight,
|
||||||
rect, ascent, visibleHeight);
|
rect, ascent, visibleHeight);
|
||||||
|
|
||||||
nsString footerLeft, footerCenter, footerRight;
|
nsString footerLeft, footerCenter, footerRight;
|
||||||
mPD->mPrintSettings->GetFooterStrLeft(getter_Copies(footerLeft));
|
mPD->mPrintSettings->GetFooterStrLeft(footerLeft);
|
||||||
mPD->mPrintSettings->GetFooterStrCenter(getter_Copies(footerCenter));
|
mPD->mPrintSettings->GetFooterStrCenter(footerCenter);
|
||||||
mPD->mPrintSettings->GetFooterStrRight(getter_Copies(footerRight));
|
mPD->mPrintSettings->GetFooterStrRight(footerRight);
|
||||||
DrawHeaderFooter(aRenderingContext, *fontMet, eFooter,
|
DrawHeaderFooter(aRenderingContext, *fontMet, eFooter,
|
||||||
footerLeft, footerCenter, footerRight,
|
footerLeft, footerCenter, footerRight,
|
||||||
rect, ascent, visibleHeight);
|
rect, ascent, visibleHeight);
|
||||||
|
|
|
||||||
|
|
@ -1011,7 +1011,7 @@ nsPrintEngine::CheckForPrinters(nsIPrintSettings* aPrintSettings)
|
||||||
|
|
||||||
// See if aPrintSettings already has a printer
|
// See if aPrintSettings already has a printer
|
||||||
nsString printerName;
|
nsString printerName;
|
||||||
nsresult rv = aPrintSettings->GetPrinterName(getter_Copies(printerName));
|
nsresult rv = aPrintSettings->GetPrinterName(printerName);
|
||||||
if (NS_SUCCEEDED(rv) && !printerName.IsEmpty()) {
|
if (NS_SUCCEEDED(rv) && !printerName.IsEmpty()) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
@ -1021,9 +1021,9 @@ nsPrintEngine::CheckForPrinters(nsIPrintSettings* aPrintSettings)
|
||||||
do_GetService(sPrintSettingsServiceContractID, &rv);
|
do_GetService(sPrintSettingsServiceContractID, &rv);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
rv = printSettingsService->GetDefaultPrinterName(getter_Copies(printerName));
|
rv = printSettingsService->GetDefaultPrinterName(printerName);
|
||||||
if (NS_SUCCEEDED(rv) && !printerName.IsEmpty()) {
|
if (NS_SUCCEEDED(rv) && !printerName.IsEmpty()) {
|
||||||
rv = aPrintSettings->SetPrinterName(printerName.get());
|
rv = aPrintSettings->SetPrinterName(printerName);
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1455,21 +1455,8 @@ nsPrintEngine::GetDisplayTitleAndURL(const UniquePtr<nsPrintObject>& aPO,
|
||||||
// First check to see if the PrintSettings has defined an alternate title
|
// First check to see if the PrintSettings has defined an alternate title
|
||||||
// and use that if it did
|
// and use that if it did
|
||||||
if (mPrt->mPrintSettings) {
|
if (mPrt->mPrintSettings) {
|
||||||
char16_t * docTitleStrPS = nullptr;
|
mPrt->mPrintSettings->GetTitle(aTitle);
|
||||||
char16_t * docURLStrPS = nullptr;
|
mPrt->mPrintSettings->GetDocURL(aURLStr);
|
||||||
mPrt->mPrintSettings->GetTitle(&docTitleStrPS);
|
|
||||||
mPrt->mPrintSettings->GetDocURL(&docURLStrPS);
|
|
||||||
|
|
||||||
if (docTitleStrPS) {
|
|
||||||
aTitle = docTitleStrPS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (docURLStrPS) {
|
|
||||||
aURLStr = docURLStrPS;
|
|
||||||
}
|
|
||||||
|
|
||||||
free(docTitleStrPS);
|
|
||||||
free(docURLStrPS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nsAutoString docTitle;
|
nsAutoString docTitle;
|
||||||
|
|
@ -1828,7 +1815,7 @@ nsPrintEngine::SetupToPrintContent()
|
||||||
printData->mPrintSettings->GetPrintToFile(&isPrintToFile);
|
printData->mPrintSettings->GetPrintToFile(&isPrintToFile);
|
||||||
if (isPrintToFile) {
|
if (isPrintToFile) {
|
||||||
// On some platforms The BeginDocument needs to know the name of the file.
|
// On some platforms The BeginDocument needs to know the name of the file.
|
||||||
printData->mPrintSettings->GetToFileName(getter_Copies(fileNameStr));
|
printData->mPrintSettings->GetToFileName(fileNameStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsAutoString docTitleStr;
|
nsAutoString docTitleStr;
|
||||||
|
|
|
||||||
|
|
@ -137,17 +137,17 @@ PrintingParent::ShowPrintDialog(PBrowserParent* aParent,
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
nsString printerName;
|
nsString printerName;
|
||||||
settings->GetPrinterName(getter_Copies(printerName));
|
settings->GetPrinterName(printerName);
|
||||||
#ifdef MOZ_X11
|
#ifdef MOZ_X11
|
||||||
// Requesting the default printer name on Linux has been removed in the child,
|
// Requesting the default printer name on Linux has been removed in the child,
|
||||||
// because it was causing a sandbox violation (see Bug 1329216).
|
// because it was causing a sandbox violation (see Bug 1329216).
|
||||||
// If no printer name is set at this point, use the print settings service
|
// If no printer name is set at this point, use the print settings service
|
||||||
// to get the default printer name.
|
// to get the default printer name.
|
||||||
if (printerName.IsEmpty()) {
|
if (printerName.IsEmpty()) {
|
||||||
mPrintSettingsSvc->GetDefaultPrinterName(getter_Copies(printerName));
|
mPrintSettingsSvc->GetDefaultPrinterName(printerName);
|
||||||
settings->SetPrinterName(printerName.get());
|
settings->SetPrinterName(printerName);
|
||||||
}
|
}
|
||||||
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName.get(), settings);
|
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName, settings);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// If this is for print preview or we are printing silently then we just need
|
// If this is for print preview or we are printing silently then we just need
|
||||||
|
|
@ -155,8 +155,7 @@ PrintingParent::ShowPrintDialog(PBrowserParent* aParent,
|
||||||
if (isPrintPreview || printSilently ||
|
if (isPrintPreview || printSilently ||
|
||||||
Preferences::GetBool("print.always_print_silent", printSilently)) {
|
Preferences::GetBool("print.always_print_silent", printSilently)) {
|
||||||
settings->SetIsInitializedFromPrinter(false);
|
settings->SetIsInitializedFromPrinter(false);
|
||||||
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName.get(),
|
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName, settings);
|
||||||
settings);
|
|
||||||
} else {
|
} else {
|
||||||
rv = pps->ShowPrintDialog(parentWin, wbp, settings);
|
rv = pps->ShowPrintDialog(parentWin, wbp, settings);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
|
||||||
|
|
@ -535,7 +535,7 @@ static void GetDefaultPrinterNameFromGlobalPrinters(nsAString &printerName)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIPrinterEnumerator> prtEnum = do_GetService("@mozilla.org/gfx/printerenumerator;1");
|
nsCOMPtr<nsIPrinterEnumerator> prtEnum = do_GetService("@mozilla.org/gfx/printerenumerator;1");
|
||||||
if (prtEnum) {
|
if (prtEnum) {
|
||||||
prtEnum->GetDefaultPrinterName(getter_Copies(printerName));
|
prtEnum->GetDefaultPrinterName(printerName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -570,7 +570,7 @@ ShowNativePrintDialog(HWND aHWnd,
|
||||||
|
|
||||||
// Get the Print Name to be used
|
// Get the Print Name to be used
|
||||||
nsString printerName;
|
nsString printerName;
|
||||||
aPrintSettings->GetPrinterName(getter_Copies(printerName));
|
aPrintSettings->GetPrinterName(printerName);
|
||||||
|
|
||||||
// If there is no name then use the default printer
|
// If there is no name then use the default printer
|
||||||
if (printerName.IsEmpty()) {
|
if (printerName.IsEmpty()) {
|
||||||
|
|
@ -696,12 +696,12 @@ ShowNativePrintDialog(HWND aHWnd,
|
||||||
if (prntdlg.Flags & PD_PRINTTOFILE) {
|
if (prntdlg.Flags & PD_PRINTTOFILE) {
|
||||||
char16ptr_t fileName = &(((wchar_t *)devnames)[devnames->wOutputOffset]);
|
char16ptr_t fileName = &(((wchar_t *)devnames)[devnames->wOutputOffset]);
|
||||||
NS_ASSERTION(wcscmp(fileName, L"FILE:") == 0, "FileName must be `FILE:`");
|
NS_ASSERTION(wcscmp(fileName, L"FILE:") == 0, "FileName must be `FILE:`");
|
||||||
aPrintSettings->SetToFileName(fileName);
|
aPrintSettings->SetToFileName(nsDependentString(fileName));
|
||||||
aPrintSettings->SetPrintToFile(true);
|
aPrintSettings->SetPrintToFile(true);
|
||||||
} else {
|
} else {
|
||||||
// clear "print to file" info
|
// clear "print to file" info
|
||||||
aPrintSettings->SetPrintToFile(false);
|
aPrintSettings->SetPrintToFile(false);
|
||||||
aPrintSettings->SetToFileName(nullptr);
|
aPrintSettings->SetToFileName(EmptyString());
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(aPrintSettings));
|
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(aPrintSettings));
|
||||||
|
|
@ -710,15 +710,15 @@ ShowNativePrintDialog(HWND aHWnd,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup local Data members
|
// Setup local Data members
|
||||||
psWin->SetDeviceName(device);
|
psWin->SetDeviceName(nsDependentString(device));
|
||||||
psWin->SetDriverName(driver);
|
psWin->SetDriverName(nsDependentString(driver));
|
||||||
|
|
||||||
#if defined(DEBUG_rods) || defined(DEBUG_dcone)
|
#if defined(DEBUG_rods) || defined(DEBUG_dcone)
|
||||||
wprintf(L"printer: driver %s, device %s flags: %d\n", driver, device, prntdlg.Flags);
|
wprintf(L"printer: driver %s, device %s flags: %d\n", driver, device, prntdlg.Flags);
|
||||||
#endif
|
#endif
|
||||||
// fill the print options with the info from the dialog
|
// fill the print options with the info from the dialog
|
||||||
|
|
||||||
aPrintSettings->SetPrinterName(device);
|
aPrintSettings->SetPrinterName(nsDependentString(device));
|
||||||
|
|
||||||
if (prntdlg.Flags & PD_SELECTION) {
|
if (prntdlg.Flags & PD_SELECTION) {
|
||||||
aPrintSettings->SetPrintRange(nsIPrintSettings::kRangeSelection);
|
aPrintSettings->SetPrintRange(nsIPrintSettings::kRangeSelection);
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ nsDeviceContextSpecAndroid::EndDocument()
|
||||||
{
|
{
|
||||||
nsString targetPath;
|
nsString targetPath;
|
||||||
nsCOMPtr<nsIFile> destFile;
|
nsCOMPtr<nsIFile> destFile;
|
||||||
mPrintSettings->GetToFileName(getter_Copies(targetPath));
|
mPrintSettings->GetToFileName(targetPath);
|
||||||
|
|
||||||
nsresult rv = NS_NewLocalFile(targetPath, false, getter_AddRefs(destFile));
|
nsresult rv = NS_NewLocalFile(targetPath, false, getter_AddRefs(destFile));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,7 @@ public:
|
||||||
{
|
{
|
||||||
// The aim here is to set up the objects enough that silent printing works
|
// The aim here is to set up the objects enough that silent printing works
|
||||||
SetOutputFormat(nsIPrintSettings::kOutputFormatPDF);
|
SetOutputFormat(nsIPrintSettings::kOutputFormatPDF);
|
||||||
SetPrinterName(u"PDF printer");
|
SetPrinterName(NS_LITERAL_STRING("PDF printer"));
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -515,32 +515,32 @@ static const char sHeaderFooterTags[][4] = {"", "&T", "&U", "&D", "&P", "&PT"};
|
||||||
// Lists
|
// Lists
|
||||||
nsString sel;
|
nsString sel;
|
||||||
|
|
||||||
mSettings->GetHeaderStrLeft(getter_Copies(sel));
|
mSettings->GetHeaderStrLeft(sel);
|
||||||
mHeaderLeftList = [self headerFooterItemListWithFrame:NSMakeRect(156, 44, 100, 22)
|
mHeaderLeftList = [self headerFooterItemListWithFrame:NSMakeRect(156, 44, 100, 22)
|
||||||
selectedItem:sel];
|
selectedItem:sel];
|
||||||
[self addSubview:mHeaderLeftList];
|
[self addSubview:mHeaderLeftList];
|
||||||
|
|
||||||
mSettings->GetHeaderStrCenter(getter_Copies(sel));
|
mSettings->GetHeaderStrCenter(sel);
|
||||||
mHeaderCenterList = [self headerFooterItemListWithFrame:NSMakeRect(256, 44, 100, 22)
|
mHeaderCenterList = [self headerFooterItemListWithFrame:NSMakeRect(256, 44, 100, 22)
|
||||||
selectedItem:sel];
|
selectedItem:sel];
|
||||||
[self addSubview:mHeaderCenterList];
|
[self addSubview:mHeaderCenterList];
|
||||||
|
|
||||||
mSettings->GetHeaderStrRight(getter_Copies(sel));
|
mSettings->GetHeaderStrRight(sel);
|
||||||
mHeaderRightList = [self headerFooterItemListWithFrame:NSMakeRect(356, 44, 100, 22)
|
mHeaderRightList = [self headerFooterItemListWithFrame:NSMakeRect(356, 44, 100, 22)
|
||||||
selectedItem:sel];
|
selectedItem:sel];
|
||||||
[self addSubview:mHeaderRightList];
|
[self addSubview:mHeaderRightList];
|
||||||
|
|
||||||
mSettings->GetFooterStrLeft(getter_Copies(sel));
|
mSettings->GetFooterStrLeft(sel);
|
||||||
mFooterLeftList = [self headerFooterItemListWithFrame:NSMakeRect(156, 0, 100, 22)
|
mFooterLeftList = [self headerFooterItemListWithFrame:NSMakeRect(156, 0, 100, 22)
|
||||||
selectedItem:sel];
|
selectedItem:sel];
|
||||||
[self addSubview:mFooterLeftList];
|
[self addSubview:mFooterLeftList];
|
||||||
|
|
||||||
mSettings->GetFooterStrCenter(getter_Copies(sel));
|
mSettings->GetFooterStrCenter(sel);
|
||||||
mFooterCenterList = [self headerFooterItemListWithFrame:NSMakeRect(256, 0, 100, 22)
|
mFooterCenterList = [self headerFooterItemListWithFrame:NSMakeRect(256, 0, 100, 22)
|
||||||
selectedItem:sel];
|
selectedItem:sel];
|
||||||
[self addSubview:mFooterCenterList];
|
[self addSubview:mFooterCenterList];
|
||||||
|
|
||||||
mSettings->GetFooterStrRight(getter_Copies(sel));
|
mSettings->GetFooterStrRight(sel);
|
||||||
mFooterRightList = [self headerFooterItemListWithFrame:NSMakeRect(356, 0, 100, 22)
|
mFooterRightList = [self headerFooterItemListWithFrame:NSMakeRect(356, 0, 100, 22)
|
||||||
selectedItem:sel];
|
selectedItem:sel];
|
||||||
[self addSubview:mFooterRightList];
|
[self addSubview:mFooterRightList];
|
||||||
|
|
@ -570,22 +570,22 @@ static const char sHeaderFooterTags[][4] = {"", "&T", "&U", "&D", "&P", "&PT"};
|
||||||
{
|
{
|
||||||
const char* headerFooterStr;
|
const char* headerFooterStr;
|
||||||
headerFooterStr = [self headerFooterStringForList:mHeaderLeftList];
|
headerFooterStr = [self headerFooterStringForList:mHeaderLeftList];
|
||||||
mSettings->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
mSettings->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||||
|
|
||||||
headerFooterStr = [self headerFooterStringForList:mHeaderCenterList];
|
headerFooterStr = [self headerFooterStringForList:mHeaderCenterList];
|
||||||
mSettings->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
mSettings->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||||
|
|
||||||
headerFooterStr = [self headerFooterStringForList:mHeaderRightList];
|
headerFooterStr = [self headerFooterStringForList:mHeaderRightList];
|
||||||
mSettings->SetHeaderStrRight(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
mSettings->SetHeaderStrRight(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||||
|
|
||||||
headerFooterStr = [self headerFooterStringForList:mFooterLeftList];
|
headerFooterStr = [self headerFooterStringForList:mFooterLeftList];
|
||||||
mSettings->SetFooterStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
mSettings->SetFooterStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||||
|
|
||||||
headerFooterStr = [self headerFooterStringForList:mFooterCenterList];
|
headerFooterStr = [self headerFooterStringForList:mFooterCenterList];
|
||||||
mSettings->SetFooterStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
mSettings->SetFooterStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||||
|
|
||||||
headerFooterStr = [self headerFooterStringForList:mFooterRightList];
|
headerFooterStr = [self headerFooterStringForList:mFooterRightList];
|
||||||
mSettings->SetFooterStrRight(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
mSettings->SetFooterStrRight(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Summary
|
// Summary
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ public:
|
||||||
NS_IMETHOD SetScaling(double aScaling) override;
|
NS_IMETHOD SetScaling(double aScaling) override;
|
||||||
NS_IMETHOD GetScaling(double *aScaling) override;
|
NS_IMETHOD GetScaling(double *aScaling) override;
|
||||||
|
|
||||||
NS_IMETHOD SetToFileName(const char16_t * aToFileName) override;
|
NS_IMETHOD SetToFileName(const nsAString& aToFileName) override;
|
||||||
|
|
||||||
NS_IMETHOD GetOrientation(int32_t *aOrientation) override;
|
NS_IMETHOD GetOrientation(int32_t *aOrientation) override;
|
||||||
NS_IMETHOD SetOrientation(int32_t aOrientation) override;
|
NS_IMETHOD SetOrientation(int32_t aOrientation) override;
|
||||||
|
|
|
||||||
|
|
@ -328,7 +328,7 @@ nsPrintSettingsX::GetScaling(double *aScaling)
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintSettingsX::SetToFileName(const char16_t *aToFileName)
|
nsPrintSettingsX::SetToFileName(const nsAString& aToFileName)
|
||||||
{
|
{
|
||||||
NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT;
|
NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT;
|
||||||
|
|
||||||
|
|
@ -341,10 +341,9 @@ nsPrintSettingsX::SetToFileName(const char16_t *aToFileName)
|
||||||
|
|
||||||
NSMutableDictionary* printInfoDict = [mPrintInfo dictionary];
|
NSMutableDictionary* printInfoDict = [mPrintInfo dictionary];
|
||||||
|
|
||||||
if (aToFileName && aToFileName[0]) {
|
if (!aToFileName.IsEmpty()) {
|
||||||
NSURL* jobSavingURL =
|
NSURL* jobSavingURL =
|
||||||
[NSURL fileURLWithPath: nsCocoaUtils::ToNSString(
|
[NSURL fileURLWithPath: nsCocoaUtils::ToNSString(aToFileName)];
|
||||||
nsDependentString(aToFileName))];
|
|
||||||
if (jobSavingURL) {
|
if (jobSavingURL) {
|
||||||
[printInfoDict setObject: NSPrintSaveJob forKey: NSPrintJobDisposition];
|
[printInfoDict setObject: NSPrintSaveJob forKey: NSPrintJobDisposition];
|
||||||
[printInfoDict setObject: jobSavingURL forKey: NSPrintJobSavingURL];
|
[printInfoDict setObject: jobSavingURL forKey: NSPrintJobSavingURL];
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ public:
|
||||||
uint32_t GetNumPrinters()
|
uint32_t GetNumPrinters()
|
||||||
{ return mGlobalPrinterList ? mGlobalPrinterList->Length() : 0; }
|
{ return mGlobalPrinterList ? mGlobalPrinterList->Length() : 0; }
|
||||||
nsString* GetStringAt(int32_t aInx) { return &mGlobalPrinterList->ElementAt(aInx); }
|
nsString* GetStringAt(int32_t aInx) { return &mGlobalPrinterList->ElementAt(aInx); }
|
||||||
void GetDefaultPrinterName(char16_t **aDefaultPrinterName);
|
void GetDefaultPrinterName(nsAString& aDefaultPrinterName);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GlobalPrinters() {}
|
GlobalPrinters() {}
|
||||||
|
|
@ -246,7 +246,7 @@ gboolean nsDeviceContextSpecGTK::PrinterEnumerator(GtkPrinter *aPrinter,
|
||||||
// Find the printer whose name matches the one inside the settings.
|
// Find the printer whose name matches the one inside the settings.
|
||||||
nsString printerName;
|
nsString printerName;
|
||||||
nsresult rv =
|
nsresult rv =
|
||||||
spec->mPrintSettings->GetPrinterName(getter_Copies(printerName));
|
spec->mPrintSettings->GetPrinterName(printerName);
|
||||||
if (NS_SUCCEEDED(rv) && !printerName.IsVoid()) {
|
if (NS_SUCCEEDED(rv) && !printerName.IsVoid()) {
|
||||||
NS_ConvertUTF16toUTF8 requestedName(printerName);
|
NS_ConvertUTF16toUTF8 requestedName(printerName);
|
||||||
const char* currentName = gtk_printer_get_name(aPrinter);
|
const char* currentName = gtk_printer_get_name(aPrinter);
|
||||||
|
|
@ -328,7 +328,7 @@ NS_IMETHODIMP nsDeviceContextSpecGTK::EndDocument()
|
||||||
// Handle print-to-file ourselves for the benefit of embedders
|
// Handle print-to-file ourselves for the benefit of embedders
|
||||||
nsString targetPath;
|
nsString targetPath;
|
||||||
nsCOMPtr<nsIFile> destFile;
|
nsCOMPtr<nsIFile> destFile;
|
||||||
mPrintSettings->GetToFileName(getter_Copies(targetPath));
|
mPrintSettings->GetToFileName(targetPath);
|
||||||
|
|
||||||
nsresult rv = NS_NewLocalFile(targetPath, false, getter_AddRefs(destFile));
|
nsresult rv = NS_NewLocalFile(targetPath, false, getter_AddRefs(destFile));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
@ -388,18 +388,19 @@ NS_IMETHODIMP nsPrinterEnumeratorGTK::GetPrinterNameList(nsIStringEnumerator **a
|
||||||
return NS_NewAdoptingStringEnumerator(aPrinterNameList, printers);
|
return NS_NewAdoptingStringEnumerator(aPrinterNameList, printers);
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrinterEnumeratorGTK::GetDefaultPrinterName(char16_t **aDefaultPrinterName)
|
NS_IMETHODIMP nsPrinterEnumeratorGTK::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||||
{
|
{
|
||||||
DO_PR_DEBUG_LOG(("nsPrinterEnumeratorGTK::GetDefaultPrinterName()\n"));
|
DO_PR_DEBUG_LOG(("nsPrinterEnumeratorGTK::GetDefaultPrinterName()\n"));
|
||||||
NS_ENSURE_ARG_POINTER(aDefaultPrinterName);
|
|
||||||
|
|
||||||
GlobalPrinters::GetInstance()->GetDefaultPrinterName(aDefaultPrinterName);
|
GlobalPrinters::GetInstance()->GetDefaultPrinterName(aDefaultPrinterName);
|
||||||
|
|
||||||
DO_PR_DEBUG_LOG(("GetDefaultPrinterName(): default printer='%s'.\n", NS_ConvertUTF16toUTF8(*aDefaultPrinterName).get()));
|
DO_PR_DEBUG_LOG(("GetDefaultPrinterName(): default printer='%s'.\n", NS_ConvertUTF16toUTF8(aDefaultPrinterName).get()));
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter(const char16_t *aPrinterName, nsIPrintSettings *aPrintSettings)
|
NS_IMETHODIMP
|
||||||
|
nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter(const nsAString& aPrinterName,
|
||||||
|
nsIPrintSettings *aPrintSettings)
|
||||||
{
|
{
|
||||||
DO_PR_DEBUG_LOG(("nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter()"));
|
DO_PR_DEBUG_LOG(("nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter()"));
|
||||||
|
|
||||||
|
|
@ -418,7 +419,7 @@ NS_IMETHODIMP nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter(const char16_
|
||||||
filename.AssignLiteral("mozilla.pdf");
|
filename.AssignLiteral("mozilla.pdf");
|
||||||
|
|
||||||
DO_PR_DEBUG_LOG(("Setting default filename to '%s'\n", filename.get()));
|
DO_PR_DEBUG_LOG(("Setting default filename to '%s'\n", filename.get()));
|
||||||
aPrintSettings->SetToFileName(NS_ConvertUTF8toUTF16(filename).get());
|
aPrintSettings->SetToFileName(NS_ConvertUTF8toUTF16(filename));
|
||||||
|
|
||||||
aPrintSettings->SetIsInitializedFromPrinter(true);
|
aPrintSettings->SetIsInitializedFromPrinter(true);
|
||||||
|
|
||||||
|
|
@ -470,9 +471,9 @@ void GlobalPrinters::FreeGlobalPrinters()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
GlobalPrinters::GetDefaultPrinterName(char16_t **aDefaultPrinterName)
|
GlobalPrinters::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||||
{
|
{
|
||||||
*aDefaultPrinterName = nullptr;
|
aDefaultPrinterName.Truncate();
|
||||||
|
|
||||||
bool allocate = !GlobalPrinters::GetInstance()->PrintersAreAllocated();
|
bool allocate = !GlobalPrinters::GetInstance()->PrintersAreAllocated();
|
||||||
|
|
||||||
|
|
@ -487,7 +488,7 @@ GlobalPrinters::GetDefaultPrinterName(char16_t **aDefaultPrinterName)
|
||||||
if (GlobalPrinters::GetInstance()->GetNumPrinters() == 0)
|
if (GlobalPrinters::GetInstance()->GetNumPrinters() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
*aDefaultPrinterName = ToNewUnicode(*GlobalPrinters::GetInstance()->GetStringAt(0));
|
aDefaultPrinterName = *GlobalPrinters::GetInstance()->GetStringAt(0);
|
||||||
|
|
||||||
if (allocate) {
|
if (allocate) {
|
||||||
GlobalPrinters::GetInstance()->FreeGlobalPrinters();
|
GlobalPrinters::GetInstance()->FreeGlobalPrinters();
|
||||||
|
|
|
||||||
|
|
@ -277,9 +277,9 @@ nsPrintDialogWidgetGTK::nsPrintDialogWidgetGTK(nsPIDOMWindowOuter *aParent,
|
||||||
GtkWidget* header_footer_table = gtk_table_new(3, 3, FALSE); // 3x3 table
|
GtkWidget* header_footer_table = gtk_table_new(3, 3, FALSE); // 3x3 table
|
||||||
nsString header_footer_str[3];
|
nsString header_footer_str[3];
|
||||||
|
|
||||||
aSettings->GetHeaderStrLeft(getter_Copies(header_footer_str[0]));
|
aSettings->GetHeaderStrLeft(header_footer_str[0]);
|
||||||
aSettings->GetHeaderStrCenter(getter_Copies(header_footer_str[1]));
|
aSettings->GetHeaderStrCenter(header_footer_str[1]);
|
||||||
aSettings->GetHeaderStrRight(getter_Copies(header_footer_str[2]));
|
aSettings->GetHeaderStrRight(header_footer_str[2]);
|
||||||
|
|
||||||
for (unsigned int i = 0; i < ArrayLength(header_dropdown); i++) {
|
for (unsigned int i = 0; i < ArrayLength(header_dropdown); i++) {
|
||||||
header_dropdown[i] = ConstructHeaderFooterDropdown(header_footer_str[i].get());
|
header_dropdown[i] = ConstructHeaderFooterDropdown(header_footer_str[i].get());
|
||||||
|
|
@ -296,9 +296,9 @@ nsPrintDialogWidgetGTK::nsPrintDialogWidgetGTK(nsPIDOMWindowOuter *aParent,
|
||||||
i, (i + 1), 1, 2, (GtkAttachOptions) 0, (GtkAttachOptions) 0, 2, 2);
|
i, (i + 1), 1, 2, (GtkAttachOptions) 0, (GtkAttachOptions) 0, 2, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
aSettings->GetFooterStrLeft(getter_Copies(header_footer_str[0]));
|
aSettings->GetFooterStrLeft(header_footer_str[0]);
|
||||||
aSettings->GetFooterStrCenter(getter_Copies(header_footer_str[1]));
|
aSettings->GetFooterStrCenter(header_footer_str[1]);
|
||||||
aSettings->GetFooterStrRight(getter_Copies(header_footer_str[2]));
|
aSettings->GetFooterStrRight(header_footer_str[2]);
|
||||||
|
|
||||||
for (unsigned int i = 0; i < ArrayLength(footer_dropdown); i++) {
|
for (unsigned int i = 0; i < ArrayLength(footer_dropdown); i++) {
|
||||||
footer_dropdown[i] = ConstructHeaderFooterDropdown(header_footer_str[i].get());
|
footer_dropdown[i] = ConstructHeaderFooterDropdown(header_footer_str[i].get());
|
||||||
|
|
@ -371,22 +371,22 @@ nsPrintDialogWidgetGTK::ExportHeaderFooter(nsIPrintSettings *aNS)
|
||||||
{
|
{
|
||||||
const char* header_footer_str;
|
const char* header_footer_str;
|
||||||
header_footer_str = OptionWidgetToString(header_dropdown[0]);
|
header_footer_str = OptionWidgetToString(header_dropdown[0]);
|
||||||
aNS->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
aNS->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||||
|
|
||||||
header_footer_str = OptionWidgetToString(header_dropdown[1]);
|
header_footer_str = OptionWidgetToString(header_dropdown[1]);
|
||||||
aNS->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
aNS->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||||
|
|
||||||
header_footer_str = OptionWidgetToString(header_dropdown[2]);
|
header_footer_str = OptionWidgetToString(header_dropdown[2]);
|
||||||
aNS->SetHeaderStrRight(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
aNS->SetHeaderStrRight(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||||
|
|
||||||
header_footer_str = OptionWidgetToString(footer_dropdown[0]);
|
header_footer_str = OptionWidgetToString(footer_dropdown[0]);
|
||||||
aNS->SetFooterStrLeft(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
aNS->SetFooterStrLeft(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||||
|
|
||||||
header_footer_str = OptionWidgetToString(footer_dropdown[1]);
|
header_footer_str = OptionWidgetToString(footer_dropdown[1]);
|
||||||
aNS->SetFooterStrCenter(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
aNS->SetFooterStrCenter(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||||
|
|
||||||
header_footer_str = OptionWidgetToString(footer_dropdown[2]);
|
header_footer_str = OptionWidgetToString(footer_dropdown[2]);
|
||||||
aNS->SetFooterStrRight(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
aNS->SetFooterStrRight(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
|
|
@ -583,10 +583,10 @@ nsPrintDialogServiceGTK::ShowPageSetup(nsPIDOMWindowOuter *aParent,
|
||||||
nsCOMPtr<nsIPrintSettingsService> psService = do_GetService("@mozilla.org/gfx/printsettings-service;1");
|
nsCOMPtr<nsIPrintSettingsService> psService = do_GetService("@mozilla.org/gfx/printsettings-service;1");
|
||||||
if (psService) {
|
if (psService) {
|
||||||
nsString printName;
|
nsString printName;
|
||||||
aNSSettings->GetPrinterName(getter_Copies(printName));
|
aNSSettings->GetPrinterName(printName);
|
||||||
if (printName.IsVoid()) {
|
if (printName.IsVoid()) {
|
||||||
psService->GetDefaultPrinterName(getter_Copies(printName));
|
psService->GetDefaultPrinterName(printName);
|
||||||
aNSSettings->SetPrinterName(printName.get());
|
aNSSettings->SetPrinterName(printName);
|
||||||
}
|
}
|
||||||
psService->InitPrintSettingsFromPrefs(aNSSettings, true, nsIPrintSettings::kInitSaveAll);
|
psService->InitPrintSettingsFromPrefs(aNSSettings, true, nsIPrintSettings::kInitSaveAll);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -409,12 +409,12 @@ nsPrintSettingsGTK::SetOrientation(int32_t aOrientation)
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintSettingsGTK::GetToFileName(char16_t * *aToFileName)
|
nsPrintSettingsGTK::GetToFileName(nsAString& aToFileName)
|
||||||
{
|
{
|
||||||
// Get the gtk output filename
|
// Get the gtk output filename
|
||||||
const char* gtk_output_uri = gtk_print_settings_get(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_URI);
|
const char* gtk_output_uri = gtk_print_settings_get(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_URI);
|
||||||
if (!gtk_output_uri) {
|
if (!gtk_output_uri) {
|
||||||
*aToFileName = ToNewUnicode(mToFileName);
|
aToFileName = mToFileName;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -426,33 +426,27 @@ nsPrintSettingsGTK::GetToFileName(char16_t * *aToFileName)
|
||||||
return rv;
|
return rv;
|
||||||
|
|
||||||
// Extract the path
|
// Extract the path
|
||||||
nsAutoString path;
|
return file->GetPath(aToFileName);
|
||||||
rv = file->GetPath(path);
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
*aToFileName = ToNewUnicode(path);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintSettingsGTK::SetToFileName(const char16_t * aToFileName)
|
nsPrintSettingsGTK::SetToFileName(const nsAString& aToFileName)
|
||||||
{
|
{
|
||||||
if (aToFileName[0] == 0) {
|
if (aToFileName.IsEmpty()) {
|
||||||
mToFileName.SetLength(0);
|
mToFileName.SetLength(0);
|
||||||
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_URI,
|
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_URI,
|
||||||
nullptr);
|
nullptr);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringEndsWith(nsDependentString(aToFileName), NS_LITERAL_STRING(".ps"))) {
|
if (StringEndsWith(aToFileName, NS_LITERAL_STRING(".ps"))) {
|
||||||
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT, "ps");
|
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT, "ps");
|
||||||
} else {
|
} else {
|
||||||
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT, "pdf");
|
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT, "pdf");
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsIFile> file;
|
nsCOMPtr<nsIFile> file;
|
||||||
nsresult rv = NS_NewLocalFile(nsDependentString(aToFileName), true,
|
nsresult rv = NS_NewLocalFile(aToFileName, true, getter_AddRefs(file));
|
||||||
getter_AddRefs(file));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
// Convert the nsIFile to a URL
|
// Convert the nsIFile to a URL
|
||||||
|
|
@ -467,7 +461,7 @@ nsPrintSettingsGTK::SetToFileName(const char16_t * aToFileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintSettingsGTK::GetPrinterName(char16_t * *aPrinter)
|
nsPrintSettingsGTK::GetPrinterName(nsAString& aPrinter)
|
||||||
{
|
{
|
||||||
const char* gtkPrintName = gtk_print_settings_get_printer(mPrintSettings);
|
const char* gtkPrintName = gtk_print_settings_get_printer(mPrintSettings);
|
||||||
if (!gtkPrintName) {
|
if (!gtkPrintName) {
|
||||||
|
|
@ -475,17 +469,16 @@ nsPrintSettingsGTK::GetPrinterName(char16_t * *aPrinter)
|
||||||
gtkPrintName = gtk_printer_get_name(mGTKPrinter);
|
gtkPrintName = gtk_printer_get_name(mGTKPrinter);
|
||||||
} else {
|
} else {
|
||||||
// This mimics what nsPrintSettingsImpl does when we try to Get before we Set
|
// This mimics what nsPrintSettingsImpl does when we try to Get before we Set
|
||||||
nsString nullPrintName;
|
aPrinter.Truncate();
|
||||||
*aPrinter = ToNewUnicode(nullPrintName);
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*aPrinter = UTF8ToNewUnicode(nsDependentCString(gtkPrintName));
|
aPrinter = NS_ConvertUTF8toUTF16(gtkPrintName);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintSettingsGTK::SetPrinterName(const char16_t * aPrinter)
|
nsPrintSettingsGTK::SetPrinterName(const nsAString& aPrinter)
|
||||||
{
|
{
|
||||||
NS_ConvertUTF16toUTF8 gtkPrinter(aPrinter);
|
NS_ConvertUTF16toUTF8 gtkPrinter(aPrinter);
|
||||||
|
|
||||||
|
|
@ -537,16 +530,15 @@ nsPrintSettingsGTK::SetScaling(double aScaling)
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintSettingsGTK::GetPaperName(char16_t * *aPaperName)
|
nsPrintSettingsGTK::GetPaperName(nsAString& aPaperName)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aPaperName);
|
|
||||||
const gchar* name =
|
const gchar* name =
|
||||||
gtk_paper_size_get_name(gtk_page_setup_get_paper_size(mPageSetup));
|
gtk_paper_size_get_name(gtk_page_setup_get_paper_size(mPageSetup));
|
||||||
*aPaperName = ToNewUnicode(NS_ConvertUTF8toUTF16(name));
|
aPaperName = NS_ConvertUTF8toUTF16(name);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintSettingsGTK::SetPaperName(const char16_t * aPaperName)
|
nsPrintSettingsGTK::SetPaperName(const nsAString& aPaperName)
|
||||||
{
|
{
|
||||||
NS_ConvertUTF16toUTF8 gtkPaperName(aPaperName);
|
NS_ConvertUTF16toUTF8 gtkPaperName(aPaperName);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,13 +68,13 @@ public:
|
||||||
NS_IMETHOD GetOrientation(int32_t *aOrientation) override;
|
NS_IMETHOD GetOrientation(int32_t *aOrientation) override;
|
||||||
NS_IMETHOD SetOrientation(int32_t aOrientation) override;
|
NS_IMETHOD SetOrientation(int32_t aOrientation) override;
|
||||||
|
|
||||||
NS_IMETHOD GetToFileName(char16_t * *aToFileName) override;
|
NS_IMETHOD GetToFileName(nsAString& aToFileName) override;
|
||||||
NS_IMETHOD SetToFileName(const char16_t * aToFileName) override;
|
NS_IMETHOD SetToFileName(const nsAString& aToFileName) override;
|
||||||
|
|
||||||
// Gets/Sets the printer name in the GtkPrintSettings. If no printer name is specified there,
|
// Gets/Sets the printer name in the GtkPrintSettings. If no printer name is specified there,
|
||||||
// you will get back the name of the current internal GtkPrinter.
|
// you will get back the name of the current internal GtkPrinter.
|
||||||
NS_IMETHOD GetPrinterName(char16_t * *aPrinter) override;
|
NS_IMETHOD GetPrinterName(nsAString& Printer) override;
|
||||||
NS_IMETHOD SetPrinterName(const char16_t * aPrinter) override;
|
NS_IMETHOD SetPrinterName(const nsAString& aPrinter) override;
|
||||||
|
|
||||||
// Number of copies is stored/gotten from the GtkPrintSettings.
|
// Number of copies is stored/gotten from the GtkPrintSettings.
|
||||||
NS_IMETHOD GetNumCopies(int32_t *aNumCopies) override;
|
NS_IMETHOD GetNumCopies(int32_t *aNumCopies) override;
|
||||||
|
|
@ -84,8 +84,8 @@ public:
|
||||||
NS_IMETHOD SetScaling(double aScaling) override;
|
NS_IMETHOD SetScaling(double aScaling) override;
|
||||||
|
|
||||||
// A name recognised by GTK is strongly advised here, as this is used to create a GtkPaperSize.
|
// A name recognised by GTK is strongly advised here, as this is used to create a GtkPaperSize.
|
||||||
NS_IMETHOD GetPaperName(char16_t * *aPaperName) override;
|
NS_IMETHOD GetPaperName(nsAString& aPaperName) override;
|
||||||
NS_IMETHOD SetPaperName(const char16_t * aPaperName) override;
|
NS_IMETHOD SetPaperName(const nsAString& aPaperName) override;
|
||||||
|
|
||||||
NS_IMETHOD SetUnwriteableMarginInTwips(nsIntMargin& aUnwriteableMargin) override;
|
NS_IMETHOD SetUnwriteableMarginInTwips(nsIntMargin& aUnwriteableMargin) override;
|
||||||
NS_IMETHOD SetUnwriteableMarginTop(double aUnwriteableMarginTop) override;
|
NS_IMETHOD SetUnwriteableMarginTop(double aUnwriteableMarginTop) override;
|
||||||
|
|
|
||||||
|
|
@ -202,16 +202,16 @@ interface nsIPrintSettings : nsISupports
|
||||||
|
|
||||||
attribute short printRange;
|
attribute short printRange;
|
||||||
|
|
||||||
attribute wstring title;
|
attribute AString title;
|
||||||
attribute wstring docURL;
|
attribute AString docURL;
|
||||||
|
|
||||||
attribute wstring headerStrLeft;
|
attribute AString headerStrLeft;
|
||||||
attribute wstring headerStrCenter;
|
attribute AString headerStrCenter;
|
||||||
attribute wstring headerStrRight;
|
attribute AString headerStrRight;
|
||||||
|
|
||||||
attribute wstring footerStrLeft;
|
attribute AString footerStrLeft;
|
||||||
attribute wstring footerStrCenter;
|
attribute AString footerStrCenter;
|
||||||
attribute wstring footerStrRight;
|
attribute AString footerStrRight;
|
||||||
|
|
||||||
attribute short howToEnableFrameUI; /* indicates how to enable the frameset UI */
|
attribute short howToEnableFrameUI; /* indicates how to enable the frameset UI */
|
||||||
attribute boolean isCancelled; /* indicates whether the print job has been cancelled */
|
attribute boolean isCancelled; /* indicates whether the print job has been cancelled */
|
||||||
|
|
@ -222,7 +222,7 @@ interface nsIPrintSettings : nsISupports
|
||||||
attribute boolean showPrintProgress; /* indicates whether the progress dialog should be shown */
|
attribute boolean showPrintProgress; /* indicates whether the progress dialog should be shown */
|
||||||
|
|
||||||
/* Additional XP Related */
|
/* Additional XP Related */
|
||||||
attribute wstring paperName; /* name of paper */
|
attribute AString paperName; /* name of paper */
|
||||||
attribute short paperData; /* native data value */
|
attribute short paperData; /* native data value */
|
||||||
attribute double paperWidth; /* width of the paper in inches or mm */
|
attribute double paperWidth; /* width of the paper in inches or mm */
|
||||||
attribute double paperHeight; /* height of the paper in inches or mm */
|
attribute double paperHeight; /* height of the paper in inches or mm */
|
||||||
|
|
@ -233,10 +233,10 @@ interface nsIPrintSettings : nsISupports
|
||||||
attribute long orientation; /* see orientation consts */
|
attribute long orientation; /* see orientation consts */
|
||||||
attribute long numCopies;
|
attribute long numCopies;
|
||||||
|
|
||||||
attribute wstring printerName; /* name of destination printer */
|
attribute AString printerName; /* name of destination printer */
|
||||||
|
|
||||||
attribute boolean printToFile;
|
attribute boolean printToFile;
|
||||||
attribute wstring toFileName;
|
attribute AString toFileName;
|
||||||
attribute short outputFormat;
|
attribute short outputFormat;
|
||||||
|
|
||||||
attribute long printPageDelay; /* in milliseconds */
|
attribute long printPageDelay; /* in milliseconds */
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ interface nsIPrintSettingsService : nsISupports
|
||||||
/**
|
/**
|
||||||
* The name of the last printer used, or else the system default printer.
|
* The name of the last printer used, or else the system default printer.
|
||||||
*/
|
*/
|
||||||
readonly attribute wstring defaultPrinterName;
|
readonly attribute AString defaultPrinterName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes certain settings from the native printer into the PrintSettings
|
* Initializes certain settings from the native printer into the PrintSettings
|
||||||
|
|
@ -68,7 +68,8 @@ interface nsIPrintSettingsService : nsISupports
|
||||||
* Page Size
|
* Page Size
|
||||||
* Number of Copies
|
* Number of Copies
|
||||||
*/
|
*/
|
||||||
void initPrintSettingsFromPrinter(in wstring aPrinterName, in nsIPrintSettings aPrintSettings);
|
void initPrintSettingsFromPrinter(in AString aPrinterName,
|
||||||
|
in nsIPrintSettings aPrintSettings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads PrintSettings values from Prefs,
|
* Reads PrintSettings values from Prefs,
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@ interface nsIPrintSettingsWin : nsISupports
|
||||||
* via the "m_pd" data member of the CPrintDialog
|
* via the "m_pd" data member of the CPrintDialog
|
||||||
* in MFC.
|
* in MFC.
|
||||||
*/
|
*/
|
||||||
[noscript] attribute wstring deviceName;
|
[noscript] attribute AString deviceName;
|
||||||
[noscript] attribute wstring driverName;
|
[noscript] attribute AString driverName;
|
||||||
|
|
||||||
[noscript] attribute nsDevMode devMode;
|
[noscript] attribute nsDevMode devMode;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ interface nsIPrinterEnumerator : nsISupports
|
||||||
* default printer; see nsIPrintSettingsService.defaultPrinterName
|
* default printer; see nsIPrintSettingsService.defaultPrinterName
|
||||||
* for that.
|
* for that.
|
||||||
*/
|
*/
|
||||||
readonly attribute wstring defaultPrinterName;
|
readonly attribute AString defaultPrinterName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes certain settings from the native printer into the PrintSettings
|
* Initializes certain settings from the native printer into the PrintSettings
|
||||||
|
|
@ -27,7 +27,8 @@ interface nsIPrinterEnumerator : nsISupports
|
||||||
* Page Size
|
* Page Size
|
||||||
* Number of Copies
|
* Number of Copies
|
||||||
*/
|
*/
|
||||||
void initPrintSettingsFromPrinter(in wstring aPrinterName, in nsIPrintSettings aPrintSettings);
|
void initPrintSettingsFromPrinter(in AString aPrinterName,
|
||||||
|
in nsIPrintSettings aPrintSettings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The list of printer names
|
* The list of printer names
|
||||||
|
|
|
||||||
|
|
@ -138,40 +138,16 @@ nsPrintOptions::SerializeToPrintData(nsIPrintSettings* aSettings,
|
||||||
aSettings->GetPrintBGImages(&data->printBGImages());
|
aSettings->GetPrintBGImages(&data->printBGImages());
|
||||||
aSettings->GetPrintRange(&data->printRange());
|
aSettings->GetPrintRange(&data->printRange());
|
||||||
|
|
||||||
// I have no idea if I'm doing this string copying correctly...
|
aSettings->GetTitle(data->title());
|
||||||
nsString title;
|
aSettings->GetDocURL(data->docURL());
|
||||||
aSettings->GetTitle(getter_Copies(title));
|
|
||||||
data->title() = title;
|
|
||||||
|
|
||||||
nsString docURL;
|
aSettings->GetHeaderStrLeft(data->headerStrLeft());
|
||||||
aSettings->GetDocURL(getter_Copies(docURL));
|
aSettings->GetHeaderStrCenter(data->headerStrCenter());
|
||||||
data->docURL() = docURL;
|
aSettings->GetHeaderStrRight(data->headerStrRight());
|
||||||
|
|
||||||
// Header strings...
|
aSettings->GetFooterStrLeft(data->footerStrLeft());
|
||||||
nsString headerStrLeft;
|
aSettings->GetFooterStrCenter(data->footerStrCenter());
|
||||||
aSettings->GetHeaderStrLeft(getter_Copies(headerStrLeft));
|
aSettings->GetFooterStrRight(data->footerStrRight());
|
||||||
data->headerStrLeft() = headerStrLeft;
|
|
||||||
|
|
||||||
nsString headerStrCenter;
|
|
||||||
aSettings->GetHeaderStrCenter(getter_Copies(headerStrCenter));
|
|
||||||
data->headerStrCenter() = headerStrCenter;
|
|
||||||
|
|
||||||
nsString headerStrRight;
|
|
||||||
aSettings->GetHeaderStrRight(getter_Copies(headerStrRight));
|
|
||||||
data->headerStrRight() = headerStrRight;
|
|
||||||
|
|
||||||
// Footer strings...
|
|
||||||
nsString footerStrLeft;
|
|
||||||
aSettings->GetFooterStrLeft(getter_Copies(footerStrLeft));
|
|
||||||
data->footerStrLeft() = footerStrLeft;
|
|
||||||
|
|
||||||
nsString footerStrCenter;
|
|
||||||
aSettings->GetFooterStrCenter(getter_Copies(footerStrCenter));
|
|
||||||
data->footerStrCenter() = footerStrCenter;
|
|
||||||
|
|
||||||
nsString footerStrRight;
|
|
||||||
aSettings->GetFooterStrRight(getter_Copies(footerStrRight));
|
|
||||||
data->footerStrRight() = footerStrRight;
|
|
||||||
|
|
||||||
aSettings->GetHowToEnableFrameUI(&data->howToEnableFrameUI());
|
aSettings->GetHowToEnableFrameUI(&data->howToEnableFrameUI());
|
||||||
aSettings->GetIsCancelled(&data->isCancelled());
|
aSettings->GetIsCancelled(&data->isCancelled());
|
||||||
|
|
@ -181,10 +157,7 @@ nsPrintOptions::SerializeToPrintData(nsIPrintSettings* aSettings,
|
||||||
aSettings->GetShrinkToFit(&data->shrinkToFit());
|
aSettings->GetShrinkToFit(&data->shrinkToFit());
|
||||||
aSettings->GetShowPrintProgress(&data->showPrintProgress());
|
aSettings->GetShowPrintProgress(&data->showPrintProgress());
|
||||||
|
|
||||||
nsString paperName;
|
aSettings->GetPaperName(data->paperName());
|
||||||
aSettings->GetPaperName(getter_Copies(paperName));
|
|
||||||
data->paperName() = paperName;
|
|
||||||
|
|
||||||
aSettings->GetPaperData(&data->paperData());
|
aSettings->GetPaperData(&data->paperData());
|
||||||
aSettings->GetPaperWidth(&data->paperWidth());
|
aSettings->GetPaperWidth(&data->paperWidth());
|
||||||
aSettings->GetPaperHeight(&data->paperHeight());
|
aSettings->GetPaperHeight(&data->paperHeight());
|
||||||
|
|
@ -196,15 +169,11 @@ nsPrintOptions::SerializeToPrintData(nsIPrintSettings* aSettings,
|
||||||
|
|
||||||
aSettings->GetNumCopies(&data->numCopies());
|
aSettings->GetNumCopies(&data->numCopies());
|
||||||
|
|
||||||
nsString printerName;
|
aSettings->GetPrinterName(data->printerName());
|
||||||
aSettings->GetPrinterName(getter_Copies(printerName));
|
|
||||||
data->printerName() = printerName;
|
|
||||||
|
|
||||||
aSettings->GetPrintToFile(&data->printToFile());
|
aSettings->GetPrintToFile(&data->printToFile());
|
||||||
|
|
||||||
nsString toFileName;
|
aSettings->GetToFileName(data->toFileName());
|
||||||
aSettings->GetToFileName(getter_Copies(toFileName));
|
|
||||||
data->toFileName() = toFileName;
|
|
||||||
|
|
||||||
aSettings->GetOutputFormat(&data->outputFormat());
|
aSettings->GetOutputFormat(&data->outputFormat());
|
||||||
aSettings->GetPrintPageDelay(&data->printPageDelay());
|
aSettings->GetPrintPageDelay(&data->printPageDelay());
|
||||||
|
|
@ -276,19 +245,18 @@ nsPrintOptions::DeserializeToPrintSettings(const PrintData& data,
|
||||||
settings->SetPrintBGImages(data.printBGImages());
|
settings->SetPrintBGImages(data.printBGImages());
|
||||||
settings->SetPrintRange(data.printRange());
|
settings->SetPrintRange(data.printRange());
|
||||||
|
|
||||||
// I have no idea if I'm doing this string copying correctly...
|
settings->SetTitle(data.title());
|
||||||
settings->SetTitle(data.title().get());
|
settings->SetDocURL(data.docURL());
|
||||||
settings->SetDocURL(data.docURL().get());
|
|
||||||
|
|
||||||
// Header strings...
|
// Header strings...
|
||||||
settings->SetHeaderStrLeft(data.headerStrLeft().get());
|
settings->SetHeaderStrLeft(data.headerStrLeft());
|
||||||
settings->SetHeaderStrCenter(data.headerStrCenter().get());
|
settings->SetHeaderStrCenter(data.headerStrCenter());
|
||||||
settings->SetHeaderStrRight(data.headerStrRight().get());
|
settings->SetHeaderStrRight(data.headerStrRight());
|
||||||
|
|
||||||
// Footer strings...
|
// Footer strings...
|
||||||
settings->SetFooterStrLeft(data.footerStrLeft().get());
|
settings->SetFooterStrLeft(data.footerStrLeft());
|
||||||
settings->SetFooterStrCenter(data.footerStrCenter().get());
|
settings->SetFooterStrCenter(data.footerStrCenter());
|
||||||
settings->SetFooterStrRight(data.footerStrRight().get());
|
settings->SetFooterStrRight(data.footerStrRight());
|
||||||
|
|
||||||
settings->SetHowToEnableFrameUI(data.howToEnableFrameUI());
|
settings->SetHowToEnableFrameUI(data.howToEnableFrameUI());
|
||||||
settings->SetIsCancelled(data.isCancelled());
|
settings->SetIsCancelled(data.isCancelled());
|
||||||
|
|
@ -298,7 +266,7 @@ nsPrintOptions::DeserializeToPrintSettings(const PrintData& data,
|
||||||
settings->SetShrinkToFit(data.shrinkToFit());
|
settings->SetShrinkToFit(data.shrinkToFit());
|
||||||
settings->SetShowPrintProgress(data.showPrintProgress());
|
settings->SetShowPrintProgress(data.showPrintProgress());
|
||||||
|
|
||||||
settings->SetPaperName(data.paperName().get());
|
settings->SetPaperName(data.paperName());
|
||||||
|
|
||||||
settings->SetPaperData(data.paperData());
|
settings->SetPaperData(data.paperData());
|
||||||
settings->SetPaperWidth(data.paperWidth());
|
settings->SetPaperWidth(data.paperWidth());
|
||||||
|
|
@ -311,11 +279,11 @@ nsPrintOptions::DeserializeToPrintSettings(const PrintData& data,
|
||||||
|
|
||||||
settings->SetNumCopies(data.numCopies());
|
settings->SetNumCopies(data.numCopies());
|
||||||
|
|
||||||
settings->SetPrinterName(data.printerName().get());
|
settings->SetPrinterName(data.printerName());
|
||||||
|
|
||||||
settings->SetPrintToFile(data.printToFile());
|
settings->SetPrintToFile(data.printToFile());
|
||||||
|
|
||||||
settings->SetToFileName(data.toFileName().get());
|
settings->SetToFileName(data.toFileName());
|
||||||
|
|
||||||
settings->SetOutputFormat(data.outputFormat());
|
settings->SetOutputFormat(data.outputFormat());
|
||||||
settings->SetPrintPageDelay(data.printPageDelay());
|
settings->SetPrintPageDelay(data.printPageDelay());
|
||||||
|
|
@ -533,7 +501,7 @@ nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
|
||||||
DUMP_DBL(kReadStr, kPrintPaperWidth, width);
|
DUMP_DBL(kReadStr, kPrintPaperWidth, width);
|
||||||
aPS->SetPaperHeight(height);
|
aPS->SetPaperHeight(height);
|
||||||
DUMP_DBL(kReadStr, kPrintPaperHeight, height);
|
DUMP_DBL(kReadStr, kPrintPaperHeight, height);
|
||||||
aPS->SetPaperName(str.get());
|
aPS->SetPaperName(str);
|
||||||
DUMP_STR(kReadStr, kPrintPaperName, str.get());
|
DUMP_STR(kReadStr, kPrintPaperName, str.get());
|
||||||
#if defined(XP_WIN)
|
#if defined(XP_WIN)
|
||||||
if (saveSanitizedSizePrefs) {
|
if (saveSanitizedSizePrefs) {
|
||||||
|
|
@ -560,42 +528,42 @@ nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) {
|
if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) {
|
||||||
if (GETSTRPREF(kPrintHeaderStrLeft, str)) {
|
if (GETSTRPREF(kPrintHeaderStrLeft, str)) {
|
||||||
aPS->SetHeaderStrLeft(str.get());
|
aPS->SetHeaderStrLeft(str);
|
||||||
DUMP_STR(kReadStr, kPrintHeaderStrLeft, str.get());
|
DUMP_STR(kReadStr, kPrintHeaderStrLeft, str.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) {
|
if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) {
|
||||||
if (GETSTRPREF(kPrintHeaderStrCenter, str)) {
|
if (GETSTRPREF(kPrintHeaderStrCenter, str)) {
|
||||||
aPS->SetHeaderStrCenter(str.get());
|
aPS->SetHeaderStrCenter(str);
|
||||||
DUMP_STR(kReadStr, kPrintHeaderStrCenter, str.get());
|
DUMP_STR(kReadStr, kPrintHeaderStrCenter, str.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) {
|
if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) {
|
||||||
if (GETSTRPREF(kPrintHeaderStrRight, str)) {
|
if (GETSTRPREF(kPrintHeaderStrRight, str)) {
|
||||||
aPS->SetHeaderStrRight(str.get());
|
aPS->SetHeaderStrRight(str);
|
||||||
DUMP_STR(kReadStr, kPrintHeaderStrRight, str.get());
|
DUMP_STR(kReadStr, kPrintHeaderStrRight, str.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) {
|
if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) {
|
||||||
if (GETSTRPREF(kPrintFooterStrLeft, str)) {
|
if (GETSTRPREF(kPrintFooterStrLeft, str)) {
|
||||||
aPS->SetFooterStrLeft(str.get());
|
aPS->SetFooterStrLeft(str);
|
||||||
DUMP_STR(kReadStr, kPrintFooterStrLeft, str.get());
|
DUMP_STR(kReadStr, kPrintFooterStrLeft, str.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) {
|
if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) {
|
||||||
if (GETSTRPREF(kPrintFooterStrCenter, str)) {
|
if (GETSTRPREF(kPrintFooterStrCenter, str)) {
|
||||||
aPS->SetFooterStrCenter(str.get());
|
aPS->SetFooterStrCenter(str);
|
||||||
DUMP_STR(kReadStr, kPrintFooterStrCenter, str.get());
|
DUMP_STR(kReadStr, kPrintFooterStrCenter, str.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveFooterRight) {
|
if (aFlags & nsIPrintSettings::kInitSaveFooterRight) {
|
||||||
if (GETSTRPREF(kPrintFooterStrRight, str)) {
|
if (GETSTRPREF(kPrintFooterStrRight, str)) {
|
||||||
aPS->SetFooterStrRight(str.get());
|
aPS->SetFooterStrRight(str);
|
||||||
DUMP_STR(kReadStr, kPrintFooterStrRight, str.get());
|
DUMP_STR(kReadStr, kPrintFooterStrRight, str.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -651,7 +619,7 @@ nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveToFileName) {
|
if (aFlags & nsIPrintSettings::kInitSaveToFileName) {
|
||||||
if (GETSTRPREF(kPrintToFileName, str)) {
|
if (GETSTRPREF(kPrintToFileName, str)) {
|
||||||
aPS->SetToFileName(str.get());
|
aPS->SetToFileName(str);
|
||||||
DUMP_STR(kReadStr, kPrintToFileName, str.get());
|
DUMP_STR(kReadStr, kPrintToFileName, str.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -771,7 +739,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
NS_SUCCEEDED(aPS->GetPaperSizeUnit(&sizeUnit)) &&
|
NS_SUCCEEDED(aPS->GetPaperSizeUnit(&sizeUnit)) &&
|
||||||
NS_SUCCEEDED(aPS->GetPaperWidth(&width)) &&
|
NS_SUCCEEDED(aPS->GetPaperWidth(&width)) &&
|
||||||
NS_SUCCEEDED(aPS->GetPaperHeight(&height)) &&
|
NS_SUCCEEDED(aPS->GetPaperHeight(&height)) &&
|
||||||
NS_SUCCEEDED(aPS->GetPaperName(getter_Copies(name)))
|
NS_SUCCEEDED(aPS->GetPaperName(name))
|
||||||
) {
|
) {
|
||||||
DUMP_INT(kWriteStr, kPrintPaperSizeUnit, sizeUnit);
|
DUMP_INT(kWriteStr, kPrintPaperSizeUnit, sizeUnit);
|
||||||
Preferences::SetInt(GetPrefName(kPrintPaperSizeUnit, aPrinterName),
|
Preferences::SetInt(GetPrefName(kPrintPaperSizeUnit, aPrinterName),
|
||||||
|
|
@ -822,7 +790,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) {
|
if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) {
|
||||||
if (NS_SUCCEEDED(aPS->GetHeaderStrLeft(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetHeaderStrLeft(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrintHeaderStrLeft, uStr.get());
|
DUMP_STR(kWriteStr, kPrintHeaderStrLeft, uStr.get());
|
||||||
Preferences::SetString(GetPrefName(kPrintHeaderStrLeft, aPrinterName),
|
Preferences::SetString(GetPrefName(kPrintHeaderStrLeft, aPrinterName),
|
||||||
uStr);
|
uStr);
|
||||||
|
|
@ -830,7 +798,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) {
|
if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) {
|
||||||
if (NS_SUCCEEDED(aPS->GetHeaderStrCenter(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetHeaderStrCenter(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrintHeaderStrCenter, uStr.get());
|
DUMP_STR(kWriteStr, kPrintHeaderStrCenter, uStr.get());
|
||||||
Preferences::SetString(GetPrefName(kPrintHeaderStrCenter, aPrinterName),
|
Preferences::SetString(GetPrefName(kPrintHeaderStrCenter, aPrinterName),
|
||||||
uStr);
|
uStr);
|
||||||
|
|
@ -838,7 +806,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) {
|
if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) {
|
||||||
if (NS_SUCCEEDED(aPS->GetHeaderStrRight(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetHeaderStrRight(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrintHeaderStrRight, uStr.get());
|
DUMP_STR(kWriteStr, kPrintHeaderStrRight, uStr.get());
|
||||||
Preferences::SetString(GetPrefName(kPrintHeaderStrRight, aPrinterName),
|
Preferences::SetString(GetPrefName(kPrintHeaderStrRight, aPrinterName),
|
||||||
uStr);
|
uStr);
|
||||||
|
|
@ -846,7 +814,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) {
|
if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) {
|
||||||
if (NS_SUCCEEDED(aPS->GetFooterStrLeft(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetFooterStrLeft(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrintFooterStrLeft, uStr.get());
|
DUMP_STR(kWriteStr, kPrintFooterStrLeft, uStr.get());
|
||||||
Preferences::SetString(GetPrefName(kPrintFooterStrLeft, aPrinterName),
|
Preferences::SetString(GetPrefName(kPrintFooterStrLeft, aPrinterName),
|
||||||
uStr);
|
uStr);
|
||||||
|
|
@ -854,7 +822,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) {
|
if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) {
|
||||||
if (NS_SUCCEEDED(aPS->GetFooterStrCenter(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetFooterStrCenter(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrintFooterStrCenter, uStr.get());
|
DUMP_STR(kWriteStr, kPrintFooterStrCenter, uStr.get());
|
||||||
Preferences::SetString(GetPrefName(kPrintFooterStrCenter, aPrinterName),
|
Preferences::SetString(GetPrefName(kPrintFooterStrCenter, aPrinterName),
|
||||||
uStr);
|
uStr);
|
||||||
|
|
@ -862,7 +830,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveFooterRight) {
|
if (aFlags & nsIPrintSettings::kInitSaveFooterRight) {
|
||||||
if (NS_SUCCEEDED(aPS->GetFooterStrRight(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetFooterStrRight(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrintFooterStrRight, uStr.get());
|
DUMP_STR(kWriteStr, kPrintFooterStrRight, uStr.get());
|
||||||
Preferences::SetString(GetPrefName(kPrintFooterStrRight, aPrinterName),
|
Preferences::SetString(GetPrefName(kPrintFooterStrRight, aPrinterName),
|
||||||
uStr);
|
uStr);
|
||||||
|
|
@ -915,7 +883,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
// Only the general version of this pref is saved
|
// Only the general version of this pref is saved
|
||||||
if ((aFlags & nsIPrintSettings::kInitSavePrinterName)
|
if ((aFlags & nsIPrintSettings::kInitSavePrinterName)
|
||||||
&& aPrinterName.IsEmpty()) {
|
&& aPrinterName.IsEmpty()) {
|
||||||
if (NS_SUCCEEDED(aPS->GetPrinterName(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetPrinterName(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrinterName, uStr.get());
|
DUMP_STR(kWriteStr, kPrinterName, uStr.get());
|
||||||
Preferences::SetString(kPrinterName, uStr);
|
Preferences::SetString(kPrinterName, uStr);
|
||||||
}
|
}
|
||||||
|
|
@ -929,7 +897,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aFlags & nsIPrintSettings::kInitSaveToFileName) {
|
if (aFlags & nsIPrintSettings::kInitSaveToFileName) {
|
||||||
if (NS_SUCCEEDED(aPS->GetToFileName(getter_Copies(uStr)))) {
|
if (NS_SUCCEEDED(aPS->GetToFileName(uStr))) {
|
||||||
DUMP_STR(kWriteStr, kPrintToFileName, uStr.get());
|
DUMP_STR(kWriteStr, kPrintToFileName, uStr.get());
|
||||||
Preferences::SetString(GetPrefName(kPrintToFileName, aPrinterName), uStr);
|
Preferences::SetString(GetPrefName(kPrintToFileName, aPrinterName), uStr);
|
||||||
}
|
}
|
||||||
|
|
@ -985,9 +953,9 @@ nsresult nsPrintOptions::_CreatePrintSettings(nsIPrintSettings **_retval)
|
||||||
NS_ADDREF(*_retval = printSettings); // ref count
|
NS_ADDREF(*_retval = printSettings); // ref count
|
||||||
|
|
||||||
nsString printerName;
|
nsString printerName;
|
||||||
nsresult rv = GetDefaultPrinterName(getter_Copies(printerName));
|
nsresult rv = GetDefaultPrinterName(printerName);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
(*_retval)->SetPrinterName(printerName.get());
|
(*_retval)->SetPrinterName(printerName);
|
||||||
|
|
||||||
(void)InitPrintSettingsFromPrefs(*_retval, false,
|
(void)InitPrintSettingsFromPrefs(*_retval, false,
|
||||||
nsIPrintSettings::kInitSaveAll);
|
nsIPrintSettings::kInitSaveAll);
|
||||||
|
|
@ -1015,7 +983,7 @@ nsPrintOptions::GetNewPrintSettings(nsIPrintSettings * *aNewPrintSettings)
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintOptions::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
nsPrintOptions::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||||
{
|
{
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
nsCOMPtr<nsIPrinterEnumerator> prtEnum =
|
nsCOMPtr<nsIPrinterEnumerator> prtEnum =
|
||||||
|
|
@ -1040,7 +1008,7 @@ nsPrintOptions::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
*aDefaultPrinterName = ToNewUnicode(lastPrinterName);
|
aDefaultPrinterName = lastPrinterName;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1052,7 +1020,7 @@ nsPrintOptions::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrintOptions::InitPrintSettingsFromPrinter(const char16_t *aPrinterName,
|
nsPrintOptions::InitPrintSettingsFromPrinter(const nsAString& aPrinterName,
|
||||||
nsIPrintSettings *aPrintSettings)
|
nsIPrintSettings *aPrintSettings)
|
||||||
{
|
{
|
||||||
// Don't get print settings from the printer in the child when printing via
|
// Don't get print settings from the printer in the child when printing via
|
||||||
|
|
@ -1062,11 +1030,10 @@ nsPrintOptions::InitPrintSettingsFromPrinter(const char16_t *aPrinterName,
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_ENSURE_ARG_POINTER(aPrintSettings);
|
NS_ENSURE_ARG_POINTER(aPrintSettings);
|
||||||
NS_ENSURE_ARG_POINTER(aPrinterName);
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
nsString printerName;
|
nsString printerName;
|
||||||
aPrintSettings->GetPrinterName(getter_Copies(printerName));
|
aPrintSettings->GetPrinterName(printerName);
|
||||||
if (!printerName.Equals(aPrinterName)) {
|
if (!printerName.Equals(aPrinterName)) {
|
||||||
NS_WARNING("Printer names should match!");
|
NS_WARNING("Printer names should match!");
|
||||||
}
|
}
|
||||||
|
|
@ -1105,7 +1072,7 @@ GetAdjustedPrinterName(nsIPrintSettings* aPS, bool aUsePNP,
|
||||||
|
|
||||||
// Get the Printer Name from the PrintSettings
|
// Get the Printer Name from the PrintSettings
|
||||||
// to use as a prefix for Pref Names
|
// to use as a prefix for Pref Names
|
||||||
nsresult rv = aPS->GetPrinterName(getter_Copies(aPrinterName));
|
nsresult rv = aPS->GetPrinterName(aPrinterName);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
// Convert any whitespaces, carriage returns or newlines to _
|
// Convert any whitespaces, carriage returns or newlines to _
|
||||||
|
|
|
||||||
|
|
@ -192,19 +192,15 @@ NS_IMETHODIMP nsPrintSettings::SetDuplex(const int32_t aDuplex)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetPrinterName(char16_t * *aPrinter)
|
NS_IMETHODIMP nsPrintSettings::GetPrinterName(nsAString& aPrinter)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aPrinter);
|
aPrinter = mPrinter;
|
||||||
|
|
||||||
*aPrinter = ToNewUnicode(mPrinter);
|
|
||||||
NS_ENSURE_TRUE(*aPrinter, NS_ERROR_OUT_OF_MEMORY);
|
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::SetPrinterName(const char16_t * aPrinter)
|
NS_IMETHODIMP nsPrintSettings::SetPrinterName(const nsAString& aPrinter)
|
||||||
{
|
{
|
||||||
if (!aPrinter || !mPrinter.Equals(aPrinter)) {
|
if (!mPrinter.Equals(aPrinter)) {
|
||||||
mIsInitedFromPrinter = false;
|
mIsInitedFromPrinter = false;
|
||||||
mIsInitedFromPrefs = false;
|
mIsInitedFromPrefs = false;
|
||||||
}
|
}
|
||||||
|
|
@ -237,19 +233,14 @@ NS_IMETHODIMP nsPrintSettings::SetPrintToFile(bool aPrintToFile)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetToFileName(char16_t * *aToFileName)
|
NS_IMETHODIMP nsPrintSettings::GetToFileName(nsAString& aToFileName)
|
||||||
{
|
{
|
||||||
//NS_ENSURE_ARG_POINTER(aToFileName);
|
aToFileName = mToFileName;
|
||||||
*aToFileName = ToNewUnicode(mToFileName);
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetToFileName(const char16_t * aToFileName)
|
NS_IMETHODIMP nsPrintSettings::SetToFileName(const nsAString& aToFileName)
|
||||||
{
|
{
|
||||||
if (aToFileName) {
|
mToFileName = aToFileName;
|
||||||
mToFileName = aToFileName;
|
|
||||||
} else {
|
|
||||||
mToFileName.SetLength(0);
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -501,43 +492,25 @@ NS_IMETHODIMP nsPrintSettings::SetPrintRange(int16_t aPrintRange)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetTitle(char16_t * *aTitle)
|
NS_IMETHODIMP nsPrintSettings::GetTitle(nsAString& aTitle)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aTitle);
|
aTitle = mTitle;
|
||||||
if (!mTitle.IsEmpty()) {
|
|
||||||
*aTitle = ToNewUnicode(mTitle);
|
|
||||||
} else {
|
|
||||||
*aTitle = nullptr;
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetTitle(const char16_t * aTitle)
|
NS_IMETHODIMP nsPrintSettings::SetTitle(const nsAString& aTitle)
|
||||||
{
|
{
|
||||||
if (aTitle) {
|
mTitle = aTitle;
|
||||||
mTitle = aTitle;
|
|
||||||
} else {
|
|
||||||
mTitle.SetLength(0);
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetDocURL(char16_t * *aDocURL)
|
NS_IMETHODIMP nsPrintSettings::GetDocURL(nsAString& aDocURL)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aDocURL);
|
aDocURL = mURL;
|
||||||
if (!mURL.IsEmpty()) {
|
|
||||||
*aDocURL = ToNewUnicode(mURL);
|
|
||||||
} else {
|
|
||||||
*aDocURL = nullptr;
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetDocURL(const char16_t * aDocURL)
|
NS_IMETHODIMP nsPrintSettings::SetDocURL(const nsAString& aDocURL)
|
||||||
{
|
{
|
||||||
if (aDocURL) {
|
mURL = aDocURL;
|
||||||
mURL = aDocURL;
|
|
||||||
} else {
|
|
||||||
mURL.SetLength(0);
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -586,103 +559,70 @@ nsPrintSettings::SetPrintOptionsBits(int32_t aBits)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
NS_IMETHODIMP nsPrintSettings::GetHeaderStrLeft(nsAString& aTitle)
|
||||||
nsPrintSettings::GetMarginStrs(char16_t * *aTitle,
|
|
||||||
nsHeaderFooterEnum aType,
|
|
||||||
int16_t aJust)
|
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aTitle);
|
aTitle = mHeaderStrs[0];
|
||||||
*aTitle = nullptr;
|
return NS_OK;
|
||||||
if (aType == eHeader) {
|
}
|
||||||
switch (aJust) {
|
NS_IMETHODIMP nsPrintSettings::SetHeaderStrLeft(const nsAString& aTitle)
|
||||||
case kJustLeft: *aTitle = ToNewUnicode(mHeaderStrs[0]);break;
|
{
|
||||||
case kJustCenter: *aTitle = ToNewUnicode(mHeaderStrs[1]);break;
|
mHeaderStrs[0] = aTitle;
|
||||||
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;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
NS_IMETHODIMP nsPrintSettings::GetHeaderStrCenter(nsAString& aTitle)
|
||||||
nsPrintSettings::SetMarginStrs(const char16_t * aTitle,
|
|
||||||
nsHeaderFooterEnum aType,
|
|
||||||
int16_t aJust)
|
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aTitle);
|
aTitle = mHeaderStrs[1];
|
||||||
if (aType == eHeader) {
|
return NS_OK;
|
||||||
switch (aJust) {
|
}
|
||||||
case kJustLeft: mHeaderStrs[0] = aTitle;break;
|
NS_IMETHODIMP nsPrintSettings::SetHeaderStrCenter(const nsAString& aTitle)
|
||||||
case kJustCenter: mHeaderStrs[1] = aTitle;break;
|
{
|
||||||
case kJustRight: mHeaderStrs[2] = aTitle;break;
|
mHeaderStrs[1] = aTitle;
|
||||||
} //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;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrLeft(char16_t * *aTitle)
|
NS_IMETHODIMP nsPrintSettings::GetHeaderStrRight(nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return GetMarginStrs(aTitle, eHeader, kJustLeft);
|
aTitle = mHeaderStrs[2];
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrLeft(const char16_t * aTitle)
|
NS_IMETHODIMP nsPrintSettings::SetHeaderStrRight(const nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return SetMarginStrs(aTitle, eHeader, kJustLeft);
|
mHeaderStrs[2] = aTitle;
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrCenter(char16_t * *aTitle)
|
NS_IMETHODIMP nsPrintSettings::GetFooterStrLeft(nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return GetMarginStrs(aTitle, eHeader, kJustCenter);
|
aTitle = mFooterStrs[0];
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrCenter(const char16_t * aTitle)
|
NS_IMETHODIMP nsPrintSettings::SetFooterStrLeft(const nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return SetMarginStrs(aTitle, eHeader, kJustCenter);
|
mFooterStrs[0] = aTitle;
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrRight(char16_t * *aTitle)
|
NS_IMETHODIMP nsPrintSettings::GetFooterStrCenter(nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return GetMarginStrs(aTitle, eHeader, kJustRight);
|
aTitle = mFooterStrs[1];
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrRight(const char16_t * aTitle)
|
NS_IMETHODIMP nsPrintSettings::SetFooterStrCenter(const nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return SetMarginStrs(aTitle, eHeader, kJustRight);
|
mFooterStrs[1] = aTitle;
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrLeft(char16_t * *aTitle)
|
NS_IMETHODIMP nsPrintSettings::GetFooterStrRight(nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return GetMarginStrs(aTitle, eFooter, kJustLeft);
|
aTitle = mFooterStrs[2];
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrLeft(const char16_t * aTitle)
|
NS_IMETHODIMP nsPrintSettings::SetFooterStrRight(const nsAString& aTitle)
|
||||||
{
|
{
|
||||||
return SetMarginStrs(aTitle, eFooter, kJustLeft);
|
mFooterStrs[2] = aTitle;
|
||||||
}
|
return NS_OK;
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrCenter(char16_t * *aTitle)
|
|
||||||
{
|
|
||||||
return GetMarginStrs(aTitle, eFooter, kJustCenter);
|
|
||||||
}
|
|
||||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrCenter(const char16_t * aTitle)
|
|
||||||
{
|
|
||||||
return SetMarginStrs(aTitle, eFooter, kJustCenter);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrRight(char16_t * *aTitle)
|
|
||||||
{
|
|
||||||
return GetMarginStrs(aTitle, eFooter, kJustRight);
|
|
||||||
}
|
|
||||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrRight(const char16_t * aTitle)
|
|
||||||
{
|
|
||||||
return SetMarginStrs(aTitle, eFooter, kJustRight);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetPrintFrameTypeUsage(int16_t *aPrintFrameTypeUsage)
|
NS_IMETHODIMP nsPrintSettings::GetPrintFrameTypeUsage(int16_t *aPrintFrameTypeUsage)
|
||||||
|
|
@ -745,23 +685,14 @@ NS_IMETHODIMP nsPrintSettings::SetShowPrintProgress(bool aShowPrintProgress)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettings::GetPaperName(char16_t * *aPaperName)
|
NS_IMETHODIMP nsPrintSettings::GetPaperName(nsAString& aPaperName)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aPaperName);
|
aPaperName = mPaperName;
|
||||||
if (!mPaperName.IsEmpty()) {
|
|
||||||
*aPaperName = ToNewUnicode(mPaperName);
|
|
||||||
} else {
|
|
||||||
*aPaperName = nullptr;
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettings::SetPaperName(const char16_t * aPaperName)
|
NS_IMETHODIMP nsPrintSettings::SetPaperName(const nsAString& aPaperName)
|
||||||
{
|
{
|
||||||
if (aPaperName) {
|
mPaperName = aPaperName;
|
||||||
mPaperName = aPaperName;
|
|
||||||
} else {
|
|
||||||
mPaperName.SetLength(0);
|
|
||||||
}
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,6 @@ protected:
|
||||||
} nsHeaderFooterEnum;
|
} nsHeaderFooterEnum;
|
||||||
|
|
||||||
|
|
||||||
nsresult GetMarginStrs(char16_t * *aTitle, nsHeaderFooterEnum aType, int16_t aJust);
|
|
||||||
nsresult SetMarginStrs(const char16_t * aTitle, nsHeaderFooterEnum aType, int16_t aJust);
|
|
||||||
|
|
||||||
// Members
|
// Members
|
||||||
nsWeakPtr mSession; // Should never be touched by Clone or Assign
|
nsWeakPtr mSession; // Should never be touched by Clone or Assign
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ public:
|
||||||
bool PrintersAreAllocated() { return mPrinters != nullptr; }
|
bool PrintersAreAllocated() { return mPrinters != nullptr; }
|
||||||
LPWSTR GetItemFromList(int32_t aInx) { return mPrinters?mPrinters->ElementAt(aInx):nullptr; }
|
LPWSTR GetItemFromList(int32_t aInx) { return mPrinters?mPrinters->ElementAt(aInx):nullptr; }
|
||||||
nsresult EnumeratePrinterList();
|
nsresult EnumeratePrinterList();
|
||||||
void GetDefaultPrinterName(nsString& aDefaultPrinterName);
|
void GetDefaultPrinterName(nsAString& aDefaultPrinterName);
|
||||||
uint32_t GetNumPrinters() { return mPrinters?mPrinters->Length():0; }
|
uint32_t GetNumPrinters() { return mPrinters?mPrinters->Length():0; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
@ -94,8 +94,6 @@ struct AutoFreeGlobalPrinters
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
nsDeviceContextSpecWin::nsDeviceContextSpecWin()
|
nsDeviceContextSpecWin::nsDeviceContextSpecWin()
|
||||||
{
|
{
|
||||||
mDriverName = nullptr;
|
|
||||||
mDeviceName = nullptr;
|
|
||||||
mDevMode = nullptr;
|
mDevMode = nullptr;
|
||||||
#ifdef MOZ_ENABLE_SKIA_PDF
|
#ifdef MOZ_ENABLE_SKIA_PDF
|
||||||
mPrintViaSkPDF = false;
|
mPrintViaSkPDF = false;
|
||||||
|
|
@ -113,14 +111,12 @@ NS_IMPL_ISUPPORTS(nsDeviceContextSpecWin, nsIDeviceContextSpec)
|
||||||
|
|
||||||
nsDeviceContextSpecWin::~nsDeviceContextSpecWin()
|
nsDeviceContextSpecWin::~nsDeviceContextSpecWin()
|
||||||
{
|
{
|
||||||
SetDeviceName(nullptr);
|
|
||||||
SetDriverName(nullptr);
|
|
||||||
SetDevMode(nullptr);
|
SetDevMode(nullptr);
|
||||||
|
|
||||||
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(mPrintSettings));
|
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(mPrintSettings));
|
||||||
if (psWin) {
|
if (psWin) {
|
||||||
psWin->SetDeviceName(nullptr);
|
psWin->SetDeviceName(EmptyString());
|
||||||
psWin->SetDriverName(nullptr);
|
psWin->SetDriverName(EmptyString());
|
||||||
psWin->SetDevMode(nullptr);
|
psWin->SetDevMode(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,16 +129,6 @@ nsDeviceContextSpecWin::~nsDeviceContextSpecWin()
|
||||||
GlobalPrinters::GetInstance()->FreeGlobalPrinters();
|
GlobalPrinters::GetInstance()->FreeGlobalPrinters();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
|
||||||
// helper
|
|
||||||
static char16_t * GetDefaultPrinterNameFromGlobalPrinters()
|
|
||||||
{
|
|
||||||
nsAutoString printerName;
|
|
||||||
GlobalPrinters::GetInstance()->GetDefaultPrinterName(printerName);
|
|
||||||
return ToNewUnicode(printerName);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
||||||
nsIPrintSettings* aPrintSettings,
|
nsIPrintSettings* aPrintSettings,
|
||||||
|
|
@ -171,15 +157,15 @@ NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
||||||
|
|
||||||
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(aPrintSettings));
|
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(aPrintSettings));
|
||||||
if (psWin) {
|
if (psWin) {
|
||||||
char16_t* deviceName;
|
nsAutoString deviceName;
|
||||||
char16_t* driverName;
|
nsAutoString driverName;
|
||||||
psWin->GetDeviceName(&deviceName); // creates new memory (makes a copy)
|
psWin->GetDeviceName(deviceName);
|
||||||
psWin->GetDriverName(&driverName); // creates new memory (makes a copy)
|
psWin->GetDriverName(driverName);
|
||||||
|
|
||||||
LPDEVMODEW devMode;
|
LPDEVMODEW devMode;
|
||||||
psWin->GetDevMode(&devMode); // creates new memory (makes a copy)
|
psWin->GetDevMode(&devMode); // creates new memory (makes a copy)
|
||||||
|
|
||||||
if (deviceName && driverName && devMode) {
|
if (!deviceName.IsEmpty() && !driverName.IsEmpty() && devMode) {
|
||||||
// Scaling is special, it is one of the few
|
// Scaling is special, it is one of the few
|
||||||
// devMode items that we control in layout
|
// devMode items that we control in layout
|
||||||
if (devMode->dmFields & DM_SCALE) {
|
if (devMode->dmFields & DM_SCALE) {
|
||||||
|
|
@ -194,15 +180,9 @@ NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
||||||
SetDriverName(driverName);
|
SetDriverName(driverName);
|
||||||
SetDevMode(devMode);
|
SetDevMode(devMode);
|
||||||
|
|
||||||
// clean up
|
|
||||||
free(deviceName);
|
|
||||||
free(driverName);
|
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
} else {
|
} else {
|
||||||
PR_PL(("***** nsDeviceContextSpecWin::Init - deviceName/driverName/devMode was NULL!\n"));
|
PR_PL(("***** nsDeviceContextSpecWin::Init - deviceName/driverName/devMode was NULL!\n"));
|
||||||
if (deviceName) free(deviceName);
|
|
||||||
if (driverName) free(driverName);
|
|
||||||
if (devMode) ::HeapFree(::GetProcessHeap(), 0, devMode);
|
if (devMode) ::HeapFree(::GetProcessHeap(), 0, devMode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -211,41 +191,24 @@ NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the Printer Name to be used and output format.
|
// Get the Printer Name to be used and output format.
|
||||||
char16_t * printerName = nullptr;
|
nsAutoString printerName;
|
||||||
if (mPrintSettings) {
|
if (mPrintSettings) {
|
||||||
mPrintSettings->GetPrinterName(&printerName);
|
mPrintSettings->GetPrinterName(printerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there is no name then use the default printer
|
// If there is no name then use the default printer
|
||||||
if (!printerName || (printerName && !*printerName)) {
|
if (printerName.IsEmpty()) {
|
||||||
printerName = GetDefaultPrinterNameFromGlobalPrinters();
|
GlobalPrinters::GetInstance()->GetDefaultPrinterName(printerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_ASSERTION(printerName, "We have to have a printer name");
|
if (printerName.IsEmpty()) {
|
||||||
if (!printerName || !*printerName) return rv;
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
return GetDataFromPrinter(printerName, mPrintSettings);
|
return GetDataFromPrinter(printerName, mPrintSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
// Helper Function - Free and reallocate the string
|
|
||||||
static void CleanAndCopyString(wchar_t*& aStr, const wchar_t* aNewStr)
|
|
||||||
{
|
|
||||||
if (aStr != nullptr) {
|
|
||||||
if (aNewStr != nullptr && wcslen(aStr) > wcslen(aNewStr)) { // reuse it if we can
|
|
||||||
wcscpy(aStr, aNewStr);
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
free(aStr);
|
|
||||||
aStr = nullptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nullptr != aNewStr) {
|
|
||||||
aStr = (wchar_t*) malloc(sizeof(wchar_t) * (wcslen(aNewStr) + 1));
|
|
||||||
wcscpy(aStr, aNewStr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
||||||
{
|
{
|
||||||
|
|
@ -266,7 +229,7 @@ already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
||||||
|
|
||||||
if (mOutputFormat == nsIPrintSettings::kOutputFormatPDF) {
|
if (mOutputFormat == nsIPrintSettings::kOutputFormatPDF) {
|
||||||
nsString filename;
|
nsString filename;
|
||||||
mPrintSettings->GetToFileName(getter_Copies(filename));
|
mPrintSettings->GetToFileName(filename);
|
||||||
|
|
||||||
nsAutoCString printFile(NS_ConvertUTF16toUTF8(filename).get());
|
nsAutoCString printFile(NS_ConvertUTF16toUTF8(filename).get());
|
||||||
auto skStream = MakeUnique<SkFILEWStream>(printFile.get());
|
auto skStream = MakeUnique<SkFILEWStream>(printFile.get());
|
||||||
|
|
@ -311,7 +274,7 @@ already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
||||||
|
|
||||||
if (mOutputFormat == nsIPrintSettings::kOutputFormatPDF) {
|
if (mOutputFormat == nsIPrintSettings::kOutputFormatPDF) {
|
||||||
nsString filename;
|
nsString filename;
|
||||||
mPrintSettings->GetToFileName(getter_Copies(filename));
|
mPrintSettings->GetToFileName(filename);
|
||||||
|
|
||||||
double width, height;
|
double width, height;
|
||||||
mPrintSettings->GetEffectivePageSize(&width, &height);
|
mPrintSettings->GetEffectivePageSize(&width, &height);
|
||||||
|
|
@ -339,8 +302,8 @@ already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mDevMode) {
|
if (mDevMode) {
|
||||||
NS_WARNING_ASSERTION(mDriverName, "No driver!");
|
NS_WARNING_ASSERTION(!mDriverName.IsEmpty(), "No driver!");
|
||||||
HDC dc = ::CreateDCW(mDriverName, mDeviceName, nullptr, mDevMode);
|
HDC dc = ::CreateDCW(mDriverName.get(), mDeviceName.get(), nullptr, mDevMode);
|
||||||
if (!dc) {
|
if (!dc) {
|
||||||
gfxCriticalError(gfxCriticalError::DefaultOptions(false))
|
gfxCriticalError(gfxCriticalError::DefaultOptions(false))
|
||||||
<< "Failed to create device context in GetSurfaceForPrinter";
|
<< "Failed to create device context in GetSurfaceForPrinter";
|
||||||
|
|
@ -457,8 +420,8 @@ nsDeviceContextSpecWin::BeginDocument(const nsAString& aTitle,
|
||||||
// to once we reach EndDocument. The only reason we create it here rather
|
// to once we reach EndDocument. The only reason we create it here rather
|
||||||
// than in EndDocument is so that we don't need to store aTitle and
|
// than in EndDocument is so that we don't need to store aTitle and
|
||||||
// aPrintToFileName as member data.
|
// aPrintToFileName as member data.
|
||||||
NS_WARNING_ASSERTION(mDriverName, "No driver!");
|
NS_WARNING_ASSERTION(!mDriverName.IsEmpty(), "No driver!");
|
||||||
mDC = ::CreateDCW(mDriverName, mDeviceName, nullptr, mDevMode);
|
mDC = ::CreateDCW(mDriverName.get(), mDeviceName.get(), nullptr, mDevMode);
|
||||||
if (mDC == NULL) {
|
if (mDC == NULL) {
|
||||||
gfxCriticalError(gfxCriticalError::DefaultOptions(false))
|
gfxCriticalError(gfxCriticalError::DefaultOptions(false))
|
||||||
<< "Failed to create device context in GetSurfaceForPrinter";
|
<< "Failed to create device context in GetSurfaceForPrinter";
|
||||||
|
|
@ -527,15 +490,15 @@ nsDeviceContextSpecWin::EndDocument()
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
void nsDeviceContextSpecWin::SetDeviceName(char16ptr_t aDeviceName)
|
void nsDeviceContextSpecWin::SetDeviceName(const nsAString& aDeviceName)
|
||||||
{
|
{
|
||||||
CleanAndCopyString(mDeviceName, aDeviceName);
|
mDeviceName = aDeviceName;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
void nsDeviceContextSpecWin::SetDriverName(char16ptr_t aDriverName)
|
void nsDeviceContextSpecWin::SetDriverName(const nsAString& aDriverName)
|
||||||
{
|
{
|
||||||
CleanAndCopyString(mDriverName, aDriverName);
|
mDriverName = aDriverName;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
@ -560,7 +523,8 @@ nsDeviceContextSpecWin::GetDevMode(LPDEVMODEW &aDevMode)
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// Setup the object's data member with the selected printer's data
|
// Setup the object's data member with the selected printer's data
|
||||||
nsresult
|
nsresult
|
||||||
nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings* aPS)
|
nsDeviceContextSpecWin::GetDataFromPrinter(const nsAString& aName,
|
||||||
|
nsIPrintSettings* aPS)
|
||||||
{
|
{
|
||||||
nsresult rv = NS_ERROR_FAILURE;
|
nsresult rv = NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
|
@ -574,7 +538,8 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
||||||
}
|
}
|
||||||
|
|
||||||
nsHPRINTER hPrinter = nullptr;
|
nsHPRINTER hPrinter = nullptr;
|
||||||
wchar_t *name = (wchar_t*)aName; // Windows APIs use non-const name argument
|
const nsString& flat = PromiseFlatString(aName);
|
||||||
|
wchar_t* name = (wchar_t*)flat.get(); // Windows APIs use non-const name argument
|
||||||
|
|
||||||
BOOL status = ::OpenPrinterW(name, &hPrinter, nullptr);
|
BOOL status = ::OpenPrinterW(name, &hPrinter, nullptr);
|
||||||
if (status) {
|
if (status) {
|
||||||
|
|
@ -589,7 +554,7 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
||||||
PR_PL(("**** nsDeviceContextSpecWin::GetDataFromPrinter - Couldn't get "
|
PR_PL(("**** nsDeviceContextSpecWin::GetDataFromPrinter - Couldn't get "
|
||||||
"size of DEVMODE using DocumentPropertiesW(pDeviceName = \"%s\"). "
|
"size of DEVMODE using DocumentPropertiesW(pDeviceName = \"%s\"). "
|
||||||
"GetLastEror() = %08x\n",
|
"GetLastEror() = %08x\n",
|
||||||
aName ? NS_ConvertUTF16toUTF8(aName).get() : "", GetLastError()));
|
NS_ConvertUTF16toUTF8(aName).get(), GetLastError()));
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -614,7 +579,7 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
||||||
// because they may have been set from invalid prefs.
|
// because they may have been set from invalid prefs.
|
||||||
if (ret == IDOK) {
|
if (ret == IDOK) {
|
||||||
// We need to get information from the device as well.
|
// We need to get information from the device as well.
|
||||||
nsAutoHDC printerDC(::CreateICW(kDriverName, aName, nullptr, pDevMode));
|
nsAutoHDC printerDC(::CreateICW(kDriverName, name, nullptr, pDevMode));
|
||||||
if (NS_WARN_IF(!printerDC)) {
|
if (NS_WARN_IF(!printerDC)) {
|
||||||
::HeapFree(::GetProcessHeap(), 0, pDevMode);
|
::HeapFree(::GetProcessHeap(), 0, pDevMode);
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
|
@ -635,7 +600,7 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
||||||
|
|
||||||
SetDeviceName(aName);
|
SetDeviceName(aName);
|
||||||
|
|
||||||
SetDriverName(kDriverName);
|
SetDriverName(nsDependentString(kDriverName));
|
||||||
|
|
||||||
rv = NS_OK;
|
rv = NS_OK;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -664,22 +629,19 @@ NS_IMPL_ISUPPORTS(nsPrinterEnumeratorWin, nsIPrinterEnumerator)
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// Return the Default Printer name
|
// Return the Default Printer name
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrinterEnumeratorWin::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
nsPrinterEnumeratorWin::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aDefaultPrinterName);
|
GlobalPrinters::GetInstance()->GetDefaultPrinterName(aDefaultPrinterName);
|
||||||
|
|
||||||
*aDefaultPrinterName = GetDefaultPrinterNameFromGlobalPrinters(); // helper
|
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsPrinterEnumeratorWin::InitPrintSettingsFromPrinter(const char16_t *aPrinterName, nsIPrintSettings *aPrintSettings)
|
nsPrinterEnumeratorWin::InitPrintSettingsFromPrinter(const nsAString& aPrinterName,
|
||||||
|
nsIPrintSettings *aPrintSettings)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aPrinterName);
|
|
||||||
NS_ENSURE_ARG_POINTER(aPrintSettings);
|
NS_ENSURE_ARG_POINTER(aPrintSettings);
|
||||||
|
|
||||||
if (!*aPrinterName) {
|
if (aPrinterName.IsEmpty()) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -724,7 +686,8 @@ nsPrinterEnumeratorWin::InitPrintSettingsFromPrinter(const char16_t *aPrinterNam
|
||||||
aPrintSettings->SetPrinterName(aPrinterName);
|
aPrintSettings->SetPrinterName(aPrinterName);
|
||||||
|
|
||||||
// We need to get information from the device as well.
|
// We need to get information from the device as well.
|
||||||
char16ptr_t printerName = aPrinterName;
|
const nsString& flat = PromiseFlatString(aPrinterName);
|
||||||
|
char16ptr_t printerName = flat.get();
|
||||||
HDC dc = ::CreateICW(kDriverName, printerName, nullptr, devmode);
|
HDC dc = ::CreateICW(kDriverName, printerName, nullptr, devmode);
|
||||||
if (NS_WARN_IF(!dc)) {
|
if (NS_WARN_IF(!dc)) {
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
|
@ -833,7 +796,7 @@ GlobalPrinters::EnumerateNativePrinters()
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// Uses the GetProfileString to get the default printer from the registry
|
// Uses the GetProfileString to get the default printer from the registry
|
||||||
void
|
void
|
||||||
GlobalPrinters::GetDefaultPrinterName(nsString& aDefaultPrinterName)
|
GlobalPrinters::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||||
{
|
{
|
||||||
aDefaultPrinterName.Truncate();
|
aDefaultPrinterName.Truncate();
|
||||||
WCHAR szDefaultPrinterName[1024];
|
WCHAR szDefaultPrinterName[1024];
|
||||||
|
|
@ -853,7 +816,8 @@ GlobalPrinters::GetDefaultPrinterName(nsString& aDefaultPrinterName)
|
||||||
aDefaultPrinterName = EmptyString();
|
aDefaultPrinterName = EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
PR_PL(("DEFAULT PRINTER [%s]\n", aDefaultPrinterName.get()));
|
PR_PL(("DEFAULT PRINTER [%s]\n",
|
||||||
|
PromiseFlatString(aDefaultPrinterName).get()));
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,8 @@ public:
|
||||||
|
|
||||||
float GetPrintingScale() final;
|
float GetPrintingScale() final;
|
||||||
|
|
||||||
void GetDriverName(wchar_t *&aDriverName) const { aDriverName = mDriverName; }
|
void GetDriverName(nsAString& aDriverName) const { aDriverName = mDriverName; }
|
||||||
void GetDeviceName(wchar_t *&aDeviceName) const { aDeviceName = mDeviceName; }
|
void GetDeviceName(nsAString& aDeviceName) const { aDeviceName = mDeviceName; }
|
||||||
|
|
||||||
// The GetDevMode will return a pointer to a DevMode
|
// The GetDevMode will return a pointer to a DevMode
|
||||||
// whether it is from the Global memory handle or just the DevMode
|
// whether it is from the Global memory handle or just the DevMode
|
||||||
|
|
@ -61,18 +61,19 @@ public:
|
||||||
void GetDevMode(LPDEVMODEW &aDevMode);
|
void GetDevMode(LPDEVMODEW &aDevMode);
|
||||||
|
|
||||||
// helper functions
|
// helper functions
|
||||||
nsresult GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings* aPS = nullptr);
|
nsresult GetDataFromPrinter(const nsAString& aName,
|
||||||
|
nsIPrintSettings* aPS = nullptr);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void SetDeviceName(char16ptr_t aDeviceName);
|
void SetDeviceName(const nsAString& aDeviceName);
|
||||||
void SetDriverName(char16ptr_t aDriverName);
|
void SetDriverName(const nsAString& aDriverName);
|
||||||
void SetDevMode(LPDEVMODEW aDevMode);
|
void SetDevMode(LPDEVMODEW aDevMode);
|
||||||
|
|
||||||
virtual ~nsDeviceContextSpecWin();
|
virtual ~nsDeviceContextSpecWin();
|
||||||
|
|
||||||
wchar_t* mDriverName;
|
nsString mDriverName;
|
||||||
wchar_t* mDeviceName;
|
nsString mDeviceName;
|
||||||
LPDEVMODEW mDevMode;
|
LPDEVMODEW mDevMode;
|
||||||
|
|
||||||
nsCOMPtr<nsIPrintSettings> mPrintSettings;
|
nsCOMPtr<nsIPrintSettings> mPrintSettings;
|
||||||
|
|
|
||||||
|
|
@ -55,18 +55,15 @@ nsPrintOptionsWin::SerializeToPrintData(nsIPrintSettings* aSettings,
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
char16_t* deviceName;
|
nsAutoString deviceName;
|
||||||
char16_t* driverName;
|
nsAutoString driverName;
|
||||||
|
|
||||||
psWin->GetDeviceName(&deviceName);
|
psWin->GetDeviceName(deviceName);
|
||||||
psWin->GetDriverName(&driverName);
|
psWin->GetDriverName(driverName);
|
||||||
|
|
||||||
data->deviceName().Assign(deviceName);
|
data->deviceName().Assign(deviceName);
|
||||||
data->driverName().Assign(driverName);
|
data->driverName().Assign(driverName);
|
||||||
|
|
||||||
free(deviceName);
|
|
||||||
free(driverName);
|
|
||||||
|
|
||||||
// When creating the print dialog on Windows, we only need to send certain
|
// When creating the print dialog on Windows, we only need to send certain
|
||||||
// print settings information from the parent to the child not vice versa.
|
// print settings information from the parent to the child not vice versa.
|
||||||
if (XRE_IsParentProcess()) {
|
if (XRE_IsParentProcess()) {
|
||||||
|
|
@ -117,8 +114,8 @@ nsPrintOptionsWin::DeserializeToPrintSettings(const PrintData& data,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (XRE_IsContentProcess()) {
|
if (XRE_IsContentProcess()) {
|
||||||
psWin->SetDeviceName(data.deviceName().get());
|
psWin->SetDeviceName(data.deviceName());
|
||||||
psWin->SetDriverName(data.driverName().get());
|
psWin->SetDriverName(data.driverName());
|
||||||
|
|
||||||
psWin->SetPrintableWidthInInches(data.printableWidthInInches());
|
psWin->SetPrintableWidthInInches(data.printableWidthInInches());
|
||||||
psWin->SetPrintableHeightInInches(data.printableHeightInInches());
|
psWin->SetPrintableHeightInInches(data.printableHeightInInches());
|
||||||
|
|
|
||||||
|
|
@ -154,10 +154,8 @@ nsPrintSettingsWin::nsPrintSettingsWin() :
|
||||||
* See documentation in nsPrintSettingsWin.h
|
* See documentation in nsPrintSettingsWin.h
|
||||||
* @update
|
* @update
|
||||||
*/
|
*/
|
||||||
nsPrintSettingsWin::nsPrintSettingsWin(const nsPrintSettingsWin& aPS) :
|
nsPrintSettingsWin::nsPrintSettingsWin(const nsPrintSettingsWin& aPS)
|
||||||
mDeviceName(nullptr),
|
: mDevMode(nullptr)
|
||||||
mDriverName(nullptr),
|
|
||||||
mDevMode(nullptr)
|
|
||||||
{
|
{
|
||||||
*this = aPS;
|
*this = aPS;
|
||||||
}
|
}
|
||||||
|
|
@ -168,38 +166,28 @@ nsPrintSettingsWin::nsPrintSettingsWin(const nsPrintSettingsWin& aPS) :
|
||||||
*/
|
*/
|
||||||
nsPrintSettingsWin::~nsPrintSettingsWin()
|
nsPrintSettingsWin::~nsPrintSettingsWin()
|
||||||
{
|
{
|
||||||
if (mDeviceName) free(mDeviceName);
|
|
||||||
if (mDriverName) free(mDriverName);
|
|
||||||
if (mDevMode) ::HeapFree(::GetProcessHeap(), 0, mDevMode);
|
if (mDevMode) ::HeapFree(::GetProcessHeap(), 0, mDevMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettingsWin::SetDeviceName(const char16_t * aDeviceName)
|
NS_IMETHODIMP nsPrintSettingsWin::SetDeviceName(const nsAString& aDeviceName)
|
||||||
{
|
{
|
||||||
if (mDeviceName) {
|
mDeviceName = aDeviceName;
|
||||||
free(mDeviceName);
|
|
||||||
}
|
|
||||||
mDeviceName = aDeviceName?wcsdup(char16ptr_t(aDeviceName)):nullptr;
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettingsWin::GetDeviceName(char16_t **aDeviceName)
|
NS_IMETHODIMP nsPrintSettingsWin::GetDeviceName(nsAString& aDeviceName)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aDeviceName);
|
aDeviceName = mDeviceName;
|
||||||
*aDeviceName = mDeviceName?reinterpret_cast<char16_t*>(wcsdup(mDeviceName)):nullptr;
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP nsPrintSettingsWin::SetDriverName(const char16_t * aDriverName)
|
NS_IMETHODIMP nsPrintSettingsWin::SetDriverName(const nsAString& aDriverName)
|
||||||
{
|
{
|
||||||
if (mDriverName) {
|
mDriverName = aDriverName;
|
||||||
free(mDriverName);
|
|
||||||
}
|
|
||||||
mDriverName = aDriverName?wcsdup(char16ptr_t(aDriverName)):nullptr;
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
NS_IMETHODIMP nsPrintSettingsWin::GetDriverName(char16_t **aDriverName)
|
NS_IMETHODIMP nsPrintSettingsWin::GetDriverName(nsAString& aDriverName)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aDriverName);
|
aDriverName = mDriverName;
|
||||||
*aDriverName = mDriverName?reinterpret_cast<char16_t*>(wcsdup(mDriverName)):nullptr;
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -425,21 +413,13 @@ nsPrintSettingsWin& nsPrintSettingsWin::operator=(const nsPrintSettingsWin& rhs)
|
||||||
|
|
||||||
((nsPrintSettings&) *this) = rhs;
|
((nsPrintSettings&) *this) = rhs;
|
||||||
|
|
||||||
if (mDeviceName) {
|
|
||||||
free(mDeviceName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mDriverName) {
|
|
||||||
free(mDriverName);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use free because we used the native malloc to create the memory
|
// Use free because we used the native malloc to create the memory
|
||||||
if (mDevMode) {
|
if (mDevMode) {
|
||||||
::HeapFree(::GetProcessHeap(), 0, mDevMode);
|
::HeapFree(::GetProcessHeap(), 0, mDevMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
mDeviceName = rhs.mDeviceName?wcsdup(rhs.mDeviceName):nullptr;
|
mDeviceName = rhs.mDeviceName;
|
||||||
mDriverName = rhs.mDriverName?wcsdup(rhs.mDriverName):nullptr;
|
mDriverName = rhs.mDriverName;
|
||||||
|
|
||||||
if (rhs.mDevMode) {
|
if (rhs.mDevMode) {
|
||||||
CopyDevMode(rhs.mDevMode, mDevMode);
|
CopyDevMode(rhs.mDevMode, mDevMode);
|
||||||
|
|
|
||||||
|
|
@ -47,8 +47,8 @@ public:
|
||||||
protected:
|
protected:
|
||||||
void CopyDevMode(DEVMODEW* aInDevMode, DEVMODEW *& aOutDevMode);
|
void CopyDevMode(DEVMODEW* aInDevMode, DEVMODEW *& aOutDevMode);
|
||||||
|
|
||||||
wchar_t* mDeviceName;
|
nsString mDeviceName;
|
||||||
wchar_t* mDriverName;
|
nsString mDriverName;
|
||||||
LPDEVMODEW mDevMode;
|
LPDEVMODEW mDevMode;
|
||||||
double mPrintableWidthInInches = 0l;
|
double mPrintableWidthInInches = 0l;
|
||||||
double mPrintableHeightInInches = 0l;
|
double mPrintableHeightInInches = 0l;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue