diff options
author | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-13 00:40:39 +0000 |
---|---|---|
committer | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-13 00:40:39 +0000 |
commit | 63313aed25758c7a634414f88b6d0549d572c155 (patch) | |
tree | 64da60df5fb0373fc5b7bf8ac85fcfc3625f1165 /printing/printing_context_mac.mm | |
parent | 611b6f634dbdbc87a40810cc60f5713f4d5eb434 (diff) | |
download | chromium_src-63313aed25758c7a634414f88b6d0549d572c155.zip chromium_src-63313aed25758c7a634414f88b6d0549d572c155.tar.gz chromium_src-63313aed25758c7a634414f88b6d0549d572c155.tar.bz2 |
Reland 105087: PrintPreview: Fix printer color settings issues based on printer ppd/schema info.
Show/Hide the color options based on printer ppd/schema information. Some printers does not provide sufficient information in the printer schema/ppd regarding the color settings and they use custom advance settings to print in black & white/greyscale. In those cases, users need to print using native dialog in order to set these advance color settings.
BUG=93811, 93490, 87344, 96658, 98768
TEST= Please refer to bug description.
Review URL: http://codereview.chromium.org/8138020
Review URL: http://codereview.chromium.org/8226024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105217 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/printing_context_mac.mm')
-rw-r--r-- | printing/printing_context_mac.mm | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm index 15348a0..bfb9817 100644 --- a/printing/printing_context_mac.mm +++ b/printing/printing_context_mac.mm @@ -15,10 +15,6 @@ #include "base/values.h" #include "printing/print_settings_initializer_mac.h" -static const CFStringRef kColorModel = CFSTR("ColorModel"); -static const CFStringRef kGrayColor = CFSTR("Gray"); -static const CFStringRef kCMYK = CFSTR("CMYK"); - namespace printing { // static @@ -253,15 +249,17 @@ bool PrintingContextMac::SetDuplexModeInPrintSettings(DuplexMode mode) { bool PrintingContextMac::SetOutputColor(int color_mode) { PMPrintSettings pmPrintSettings = static_cast<PMPrintSettings>([print_info_.get() PMPrintSettings]); - CFStringRef output_color = NULL; - if (color_mode == printing::GRAY) - output_color = kGrayColor; - else if (color_mode == printing::CMYK) - output_color = kCMYK; + std::string color_setting_name; + std::string color_value; + printing::GetColorModelForMode(color_mode, &color_setting_name, &color_value); + base::mac::ScopedCFTypeRef<CFStringRef> color_setting( + base::SysUTF8ToCFStringRef(color_setting_name)); + base::mac::ScopedCFTypeRef<CFStringRef> output_color( + base::SysUTF8ToCFStringRef(color_value)); return PMPrintSettingsSetValue(pmPrintSettings, - kColorModel, - output_color, + color_setting.get(), + output_color.get(), false) == noErr; } |