diff options
author | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 19:36:19 +0000 |
---|---|---|
committer | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 19:36:19 +0000 |
commit | c7b3c63a202ab95967a51a69397dbe7b4abe423a (patch) | |
tree | a635cc5857df8a8ff36312b248554dfaacb0c7f8 /printing/printing_context_mac.mm | |
parent | edb2617b376a60d628b3775db2ce32a36c6c5000 (diff) | |
download | chromium_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/printing_context_mac.mm')
-rw-r--r-- | printing/printing_context_mac.mm | 21 |
1 files changed, 20 insertions, 1 deletions
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]); |