diff options
author | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-04 23:36:29 +0000 |
---|---|---|
committer | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-04 23:36:29 +0000 |
commit | f3256b0d8029d6395be08d2f566220162219b6ea (patch) | |
tree | 8cac804aa7bf76c82702ebe29c8baad5263bcf3e /printing | |
parent | 5270ee85676f2d2314084b713d9b4f1070f95df8 (diff) | |
download | chromium_src-f3256b0d8029d6395be08d2f566220162219b6ea.zip chromium_src-f3256b0d8029d6395be08d2f566220162219b6ea.tar.gz chromium_src-f3256b0d8029d6395be08d2f566220162219b6ea.tar.bz2 |
PrintPreview: Fixed RICOH MP C3501 color print job issues.
BUG=92358
TEST=Please refer to bug description.
Review URL: http://codereview.chromium.org/7826040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99615 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing')
-rw-r--r-- | printing/print_job_constants.h | 7 | ||||
-rw-r--r-- | printing/printing_context_mac.h | 2 | ||||
-rw-r--r-- | printing/printing_context_mac.mm | 15 | ||||
-rw-r--r-- | printing/printing_context_win.cc | 10 |
4 files changed, 25 insertions, 9 deletions
diff --git a/printing/print_job_constants.h b/printing/print_job_constants.h index 7240340..99b2892 100644 --- a/printing/print_job_constants.h +++ b/printing/print_job_constants.h @@ -67,6 +67,13 @@ enum VerticalHeaderFooterPosition { BOTTOM }; +// Print job color mode values. +enum ColorMode { + GRAY = 1, + COLOR, + CMYK, +}; + } // namespace printing #endif // PRINTING_PRINT_JOB_CONSTANTS_H_ diff --git a/printing/printing_context_mac.h b/printing/printing_context_mac.h index e7e6342..2fd0c18 100644 --- a/printing/printing_context_mac.h +++ b/printing/printing_context_mac.h @@ -75,7 +75,7 @@ class PRINTING_EXPORT PrintingContextMac : public PrintingContext { // Sets output color mode in PMPrintSettings. // Returns true if color mode is set. - bool SetOutputIsColor(bool color); + bool SetOutputColor(int color_mode); // The native print info object. scoped_nsobject<NSPrintInfo> print_info_; diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm index f839802..8ba4db8 100644 --- a/printing/printing_context_mac.mm +++ b/printing/printing_context_mac.mm @@ -17,6 +17,7 @@ static const CFStringRef kColorModel = CFSTR("ColorModel"); static const CFStringRef kGrayColor = CFSTR("Gray"); +static const CFStringRef kCMYK = CFSTR("CMYK"); namespace printing { @@ -107,7 +108,7 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings( print_info_.reset([[NSPrintInfo sharedPrintInfo] copy]); bool collate; - bool color; + int color; bool landscape; bool print_to_pdf; int copies; @@ -116,7 +117,7 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings( if (!job_settings.GetBoolean(kSettingLandscape, &landscape) || !job_settings.GetBoolean(kSettingCollate, &collate) || - !job_settings.GetBoolean(kSettingColor, &color) || + !job_settings.GetInteger(kSettingColor, &color) || !job_settings.GetBoolean(kSettingPrintToPDF, &print_to_pdf) || !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) || !job_settings.GetInteger(kSettingCopies, &copies) || @@ -141,7 +142,7 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings( return OnError(); } - if (!SetOutputIsColor(color)) + if (!SetOutputColor(color)) return OnError(); } @@ -245,10 +246,14 @@ bool PrintingContextMac::SetDuplexModeInPrintSettings(DuplexMode mode) { return PMSetDuplex(pmPrintSettings, duplexSetting) == noErr; } -bool PrintingContextMac::SetOutputIsColor(bool color) { +bool PrintingContextMac::SetOutputColor(int color_mode) { PMPrintSettings pmPrintSettings = static_cast<PMPrintSettings>([print_info_.get() PMPrintSettings]); - CFStringRef output_color = color ? NULL : kGrayColor; + CFStringRef output_color = NULL; + if (color_mode == printing::GRAY) + output_color = kGrayColor; + else if (color_mode == printing::CMYK) + output_color = kCMYK; return PMPrintSettingsSetValue(pmPrintSettings, kColorModel, diff --git a/printing/printing_context_win.cc b/printing/printing_context_win.cc index ef45060..c2ace8e 100644 --- a/printing/printing_context_win.cc +++ b/printing/printing_context_win.cc @@ -308,7 +308,7 @@ PrintingContext::Result PrintingContextWin::UpdatePrinterSettings( DCHECK(!in_print_job_); bool collate; - bool color; + int color; bool landscape; bool print_to_pdf; int copies; @@ -317,7 +317,7 @@ PrintingContext::Result PrintingContextWin::UpdatePrinterSettings( if (!job_settings.GetBoolean(kSettingLandscape, &landscape) || !job_settings.GetBoolean(kSettingCollate, &collate) || - !job_settings.GetBoolean(kSettingColor, &color) || + !job_settings.GetInteger(kSettingColor, &color) || !job_settings.GetBoolean(kSettingPrintToPDF, &print_to_pdf) || !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) || !job_settings.GetInteger(kSettingCopies, &copies) || @@ -365,7 +365,11 @@ PrintingContext::Result PrintingContextWin::UpdatePrinterSettings( return OnError(); } - dev_mode->dmColor = color ? DMCOLOR_COLOR : DMCOLOR_MONOCHROME; + if (color == printing::GRAY) + dev_mode->dmColor = DMCOLOR_MONOCHROME; + else + dev_mode->dmColor = DMCOLOR_COLOR; + dev_mode->dmCopies = std::max(copies, 1); if (dev_mode->dmCopies > 1) // do not change collate unless multiple copies dev_mode->dmCollate = collate ? DMCOLLATE_TRUE : DMCOLLATE_FALSE; |