Index: printing/printing_context_mac.mm |
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm |
index 828a7f4fb3a07776abd0b2e44d17d89c71a50009..50431ae63831137166e64f0d1ad74c5d70099e80 100644 |
--- a/printing/printing_context_mac.mm |
+++ b/printing/printing_context_mac.mm |
@@ -2,33 +2,36 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "printing/printing_context.h" |
+#include "printing/printing_context_mac.h" |
#import <ApplicationServices/ApplicationServices.h> |
#import <AppKit/AppKit.h> |
#include "base/logging.h" |
+#include "base/scoped_cftyperef.h" |
#include "base/sys_string_conversions.h" |
namespace printing { |
-PrintingContext::PrintingContext() |
- : context_(NULL), |
- print_info_(nil), |
- dialog_box_dismissed_(false), |
- in_print_job_(false), |
- abort_printing_(false) { |
+// static |
+PrintingContext* PrintingContext::Create() { |
+ return static_cast<PrintingContext*>(new PrintingContextMac); |
} |
-PrintingContext::~PrintingContext() { |
- ResetSettings(); |
+PrintingContextMac::PrintingContextMac() |
+ : PrintingContext(), |
+ print_info_(NULL), |
+ context_(NULL) { |
} |
+PrintingContextMac::~PrintingContextMac() { |
+ ReleaseContext(); |
+} |
-void PrintingContext::AskUserForSettings(gfx::NativeView parent_view, |
- int max_pages, |
- bool has_selection, |
- PrintSettingsCallback* callback) { |
+void PrintingContextMac::AskUserForSettings(gfx::NativeView parent_view, |
+ int max_pages, |
+ bool has_selection, |
+ PrintSettingsCallback* callback) { |
DCHECK([NSThread isMainThread]); |
// We deliberately don't feed max_pages into the dialog, because setting |
@@ -68,7 +71,7 @@ void PrintingContext::AskUserForSettings(gfx::NativeView parent_view, |
} |
} |
-PrintingContext::Result PrintingContext::UseDefaultSettings() { |
+PrintingContext::Result PrintingContextMac::UseDefaultSettings() { |
DCHECK(!in_print_job_); |
ParsePrintInfo([NSPrintInfo sharedPrintInfo]); |
@@ -76,7 +79,7 @@ PrintingContext::Result PrintingContext::UseDefaultSettings() { |
return OK; |
} |
-void PrintingContext::ParsePrintInfo(NSPrintInfo* print_info) { |
+void PrintingContextMac::ParsePrintInfo(NSPrintInfo* print_info) { |
ResetSettings(); |
print_info_ = [print_info retain]; |
PageRanges page_ranges; |
@@ -97,7 +100,7 @@ void PrintingContext::ParsePrintInfo(NSPrintInfo* print_info) { |
settings_.Init(printer, page_format, page_ranges, false); |
} |
-PrintingContext::Result PrintingContext::InitWithSettings( |
+PrintingContext::Result PrintingContextMac::InitWithSettings( |
const PrintSettings& settings) { |
DCHECK(!in_print_job_); |
settings_ = settings; |
@@ -107,17 +110,7 @@ PrintingContext::Result PrintingContext::InitWithSettings( |
return FAILED; |
} |
-void PrintingContext::ResetSettings() { |
- [print_info_ autorelease]; |
- print_info_ = nil; |
- settings_.Clear(); |
- dialog_box_dismissed_ = false; |
- abort_printing_ = false; |
- in_print_job_ = false; |
- context_ = NULL; |
-} |
- |
-PrintingContext::Result PrintingContext::NewDocument( |
+PrintingContext::Result PrintingContextMac::NewDocument( |
const string16& document_name) { |
DCHECK(!in_print_job_); |
@@ -143,7 +136,7 @@ PrintingContext::Result PrintingContext::NewDocument( |
return OK; |
} |
-PrintingContext::Result PrintingContext::NewPage() { |
+PrintingContext::Result PrintingContextMac::NewPage() { |
if (abort_printing_) |
return CANCEL; |
DCHECK(in_print_job_); |
@@ -164,7 +157,7 @@ PrintingContext::Result PrintingContext::NewPage() { |
return OK; |
} |
-PrintingContext::Result PrintingContext::PageDone() { |
+PrintingContext::Result PrintingContextMac::PageDone() { |
if (abort_printing_) |
return CANCEL; |
DCHECK(in_print_job_); |
@@ -180,7 +173,7 @@ PrintingContext::Result PrintingContext::PageDone() { |
return OK; |
} |
-PrintingContext::Result PrintingContext::DocumentDone() { |
+PrintingContext::Result PrintingContextMac::DocumentDone() { |
if (abort_printing_) |
return CANCEL; |
DCHECK(in_print_job_); |
@@ -195,7 +188,7 @@ PrintingContext::Result PrintingContext::DocumentDone() { |
return OK; |
} |
-void PrintingContext::Cancel() { |
+void PrintingContextMac::Cancel() { |
abort_printing_ = true; |
in_print_job_ = false; |
context_ = NULL; |
@@ -205,13 +198,20 @@ void PrintingContext::Cancel() { |
PMSessionEndPageNoDialog(print_session); |
} |
-void PrintingContext::DismissDialog() { |
+void PrintingContextMac::DismissDialog() { |
NOTIMPLEMENTED(); |
} |
-PrintingContext::Result PrintingContext::OnError() { |
- ResetSettings(); |
- return abort_printing_ ? CANCEL : FAILED; |
+void PrintingContextMac::ReleaseContext() { |
+ if (print_info_) { |
+ [print_info_ autorelease]; |
+ print_info_ = nil; |
+ context_ = NULL; |
+ } |
+} |
+ |
+gfx::NativeDrawingContext PrintingContextMac::context() const { |
+ return context_; |
} |
} // namespace printing |