summaryrefslogtreecommitdiffstats
path: root/printing/printing_context_mac.mm
diff options
context:
space:
mode:
authorkmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-13 00:40:39 +0000
committerkmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-13 00:40:39 +0000
commit63313aed25758c7a634414f88b6d0549d572c155 (patch)
tree64da60df5fb0373fc5b7bf8ac85fcfc3625f1165 /printing/printing_context_mac.mm
parent611b6f634dbdbc87a40810cc60f5713f4d5eb434 (diff)
downloadchromium_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.mm20
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;
}