Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(942)

Unified Diff: printing/printing_context.h

Issue 268036: Implement the basic OS-level printing mechanics on Mac (Closed)
Patch Set: Address review comments Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: printing/printing_context.h
diff --git a/printing/printing_context.h b/printing/printing_context.h
index 06ad9afef3c70bd3c743232bda0d2f3d2fbcd378..d1bfca74169d608af6df6a6fc3f0c9cc7d8251da 100644
--- a/printing/printing_context.h
+++ b/printing/printing_context.h
@@ -14,9 +14,20 @@
#include <string>
+#include "app/gfx/native_widget_types.h"
#include "base/basictypes.h"
+#include "base/logging.h"
#include "printing/print_settings.h"
+#if defined(OS_MACOSX)
+#include "base/scoped_cftyperef.h"
+#ifdef __OBJC__
+@class NSPrintInfo;
+#else
+class NSPrintInfo;
+#endif // __OBJC__
+#endif // OS_MACOSX
+
namespace printing {
// Describe the user selected printing context for Windows. This includes the
@@ -34,11 +45,10 @@ class PrintingContext {
PrintingContext();
~PrintingContext();
-#if defined(OS_WIN)
// Asks the user what printer and format should be used to print. Updates the
// context with the select device settings.
- Result AskUserForSettings(HWND window, int max_pages, bool has_selection);
-#endif
+ Result AskUserForSettings(gfx::NativeWindow window, int max_pages,
+ bool has_selection);
// Selects the user's default printer and format. Updates the context with the
// default device settings.
@@ -75,11 +85,14 @@ class PrintingContext {
// Dismiss the Print... dialog box if shown.
void DismissDialog();
-#if defined(OS_WIN)
- HDC context() {
- return hdc_;
- }
+ gfx::NativeDrawingContext context() {
+#if defined(OS_WIN) || defined(OS_MACOSX)
+ return context_;
+#else
+ NOTIMPLEMENTED();
+ return NULL;
#endif
+ }
const PrintSettings& settings() const {
return settings_;
@@ -105,8 +118,8 @@ class PrintingContext {
int number_ranges,
bool selection_only);
- // Retrieves the printer's default low-level settings. hdc_ is allocated with
- // this call.
+ // Retrieves the printer's default low-level settings. On Windows, context_ is
+ // allocated with this call.
bool GetPrinterSettings(HANDLE printer,
const std::wstring& device_name);
@@ -118,8 +131,19 @@ class PrintingContext {
Result ParseDialogResultEx(const PRINTDLGEX& dialog_options);
Result ParseDialogResult(const PRINTDLG& dialog_options);
- // The selected printer context.
- HDC hdc_;
+#elif defined(OS_MACOSX)
+ // Read the settings from the given NSPrintInfo (and cache it for later use).
+ void ParsePrintInfo(NSPrintInfo* print_info);
+#endif
+
+ // On Windows, the selected printer context.
+ // On Mac, the current page's context; only valid between NewPage and PageDone
+ // call pairs.
+ gfx::NativeDrawingContext context_;
+
+#if defined(OS_MACOSX)
+ // The native print info object.
+ NSPrintInfo* print_info_;
#endif
// Complete print context settings.

Powered by Google App Engine
This is Rietveld 408576698