summaryrefslogtreecommitdiffstats
path: root/printing
diff options
context:
space:
mode:
authorkmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 19:36:19 +0000
committerkmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 19:36:19 +0000
commitc7b3c63a202ab95967a51a69397dbe7b4abe423a (patch)
treea635cc5857df8a8ff36312b248554dfaacb0c7f8 /printing
parentedb2617b376a60d628b3775db2ce32a36c6c5000 (diff)
downloadchromium_src-c7b3c63a202ab95967a51a69397dbe7b4abe423a.zip
chromium_src-c7b3c63a202ab95967a51a69397dbe7b4abe423a.tar.gz
chromium_src-c7b3c63a202ab95967a51a69397dbe7b4abe423a.tar.bz2
PrintPreview: [MAC] Set the color setting in print ticket.
BUG=none TEST= Enable print preview on mac. Preview any webpage. Change the color setting. Press the print button. Observe the color in printed output page. Review URL: http://codereview.chromium.org/6821052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81286 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing')
-rw-r--r--printing/printing_context_mac.h4
-rw-r--r--printing/printing_context_mac.mm21
2 files changed, 24 insertions, 1 deletions
diff --git a/printing/printing_context_mac.h b/printing/printing_context_mac.h
index 0979b18..90be22b 100644
--- a/printing/printing_context_mac.h
+++ b/printing/printing_context_mac.h
@@ -67,6 +67,10 @@ class PrintingContextMac : public PrintingContext {
// Returns true if duplex mode is set.
bool SetDuplexModeIsTwoSided(bool two_sided);
+ // Sets output color mode in PMPrintSettings.
+ // Returns true if color mode is set.
+ bool SetOutputIsColor(bool color);
+
// 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 063197e..3bb383d 100644
--- a/printing/printing_context_mac.mm
+++ b/printing/printing_context_mac.mm
@@ -14,6 +14,9 @@
#include "printing/print_job_constants.h"
#include "printing/print_settings_initializer_mac.h"
+static const CFStringRef kColorModel = CFSTR("ColorModel");
+static const CFStringRef kGrayColor = CFSTR("Gray");
+
namespace printing {
// static
@@ -94,11 +97,13 @@ PrintingContext::Result PrintingContextMac::UpdatePrintSettings(
int copies;
bool collate;
bool two_sided;
+ bool color;
if (!job_settings.GetBoolean(kSettingLandscape, &landscape) ||
!job_settings.GetString(kSettingPrinterName, &printer_name) ||
!job_settings.GetInteger(kSettingCopies, &copies) ||
!job_settings.GetBoolean(kSettingCollate, &collate) ||
- !job_settings.GetBoolean(kSettingTwoSided, &two_sided)) {
+ !job_settings.GetBoolean(kSettingTwoSided, &two_sided) ||
+ !job_settings.GetBoolean(kSettingColor, &color)) {
return OnError();
}
@@ -117,6 +122,9 @@ PrintingContext::Result PrintingContextMac::UpdatePrintSettings(
if (!SetDuplexModeIsTwoSided(two_sided))
return OnError();
+ if (!SetOutputIsColor(color))
+ return OnError();
+
[print_info_.get() updateFromPMPrintSettings];
InitPrintSettingsFromPrintInfo(ranges);
@@ -185,6 +193,17 @@ bool PrintingContextMac::SetDuplexModeIsTwoSided(bool two_sided) {
return PMSetDuplex(pmPrintSettings, duplexSetting) == noErr;
}
+bool PrintingContextMac::SetOutputIsColor(bool color) {
+ PMPrintSettings pmPrintSettings =
+ static_cast<PMPrintSettings>([print_info_.get() PMPrintSettings]);
+ CFStringRef output_color = color ? NULL : kGrayColor;
+
+ return PMPrintSettingsSetValue(pmPrintSettings,
+ kColorModel,
+ output_color,
+ false) == noErr;
+}
+
void PrintingContextMac::ParsePrintInfo(NSPrintInfo* print_info) {
ResetSettings();
print_info_.reset([print_info retain]);