summaryrefslogtreecommitdiffstats
path: root/printing/printing_context_mac.h
diff options
context:
space:
mode:
Diffstat (limited to 'printing/printing_context_mac.h')
-rw-r--r--printing/printing_context_mac.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/printing/printing_context_mac.h b/printing/printing_context_mac.h
new file mode 100644
index 0000000..f94fae2
--- /dev/null
+++ b/printing/printing_context_mac.h
@@ -0,0 +1,55 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PRINTING_PRINTING_CONTEXT_MAC_H_
+#define PRINTING_PRINTING_CONTEXT_MAC_H_
+
+#include "printing/printing_context.h"
+
+#ifdef __OBJC__
+@class NSPrintInfo;
+#else
+class NSPrintInfo;
+#endif // __OBJC__
+
+namespace printing {
+
+class PrintingContextMac : public PrintingContext {
+ public:
+ PrintingContextMac();
+ ~PrintingContextMac();
+
+ // PrintingContext implementation.
+ virtual void AskUserForSettings(gfx::NativeView parent_view,
+ int max_pages,
+ bool has_selection,
+ PrintSettingsCallback* callback);
+ virtual Result UseDefaultSettings();
+ virtual Result InitWithSettings(const PrintSettings& settings);
+ virtual Result NewDocument(const string16& document_name);
+ virtual Result NewPage();
+ virtual Result PageDone();
+ virtual Result DocumentDone();
+ virtual void Cancel();
+ virtual void DismissDialog();
+ virtual void ReleaseContext();
+ virtual gfx::NativeDrawingContext context() const;
+
+ private:
+ // Read the settings from the given NSPrintInfo (and cache it for later use).
+ void ParsePrintInfo(NSPrintInfo* print_info);
+
+ // The native print info object.
+ NSPrintInfo* print_info_;
+
+ // The current page's context; only valid between NewPage and PageDone call
+ // pairs.
+ CGContext* context_;
+
+ DISALLOW_COPY_AND_ASSIGN(PrintingContextMac);
+};
+
+} // namespace printing
+
+#endif // PRINTING_PRINTING_CONTEXT_MAC_H_