From d20348675866d9a0369dc5a196d2a26399e402c9 Mon Sep 17 00:00:00 2001 From: "kmadhusu@chromium.org" Date: Tue, 5 Apr 2011 20:03:31 +0000 Subject: PrintPreview: [MAC] Set the specified orientation in the print ticket. BUG=none TEST=none Review URL: http://codereview.chromium.org/6764006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80514 0039d316-1c4b-4281-b951-d872f2087c98 --- printing/printing_context_mac.h | 4 ++++ printing/printing_context_mac.mm | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) (limited to 'printing') diff --git a/printing/printing_context_mac.h b/printing/printing_context_mac.h index 54ad559..e19ceba 100644 --- a/printing/printing_context_mac.h +++ b/printing/printing_context_mac.h @@ -59,6 +59,10 @@ class PrintingContextMac : public PrintingContext { // Returns true if |collate| is set. bool SetCollateInPrintSettings(bool collate); + // Sets orientation in native print info object. + // Returns true if the orientation was set. + bool SetOrientationIsLandscape(bool landscape); + // The native print info object. scoped_nsobject print_info_; diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm index cc5b808..25f0ef6 100644 --- a/printing/printing_context_mac.mm +++ b/printing/printing_context_mac.mm @@ -100,8 +100,6 @@ PrintingContext::Result PrintingContextMac::UpdatePrintSettings( return OnError(); } - settings_.SetOrientation(landscape); - if (!SetPrinter(printer_name)) return OnError(); @@ -111,6 +109,9 @@ PrintingContext::Result PrintingContextMac::UpdatePrintSettings( if (!SetCollateInPrintSettings(collate)) return OnError(); + if (!SetOrientationIsLandscape(landscape)) + return OnError(); + [print_info_.get() updateFromPMPrintSettings]; InitPrintSettingsFromPrintInfo(ranges); @@ -159,6 +160,19 @@ bool PrintingContextMac::SetCollateInPrintSettings(bool collate) { return PMSetCollate(pmPrintSettings, collate) == noErr; } +bool PrintingContextMac::SetOrientationIsLandscape(bool landscape) { + PMPageFormat page_format = + static_cast([print_info_.get() PMPageFormat]); + + PMOrientation orientation = landscape ? kPMLandscape : kPMPortrait; + + if (PMSetOrientation(page_format, orientation, false) != noErr) + return false; + + [print_info_.get() updateFromPMPageFormat]; + return true; +} + void PrintingContextMac::ParsePrintInfo(NSPrintInfo* print_info) { ResetSettings(); print_info_.reset([print_info retain]); -- cgit v1.1