Implement the basic OS-level printing mechanics on Mac
Part two of printing implementation on the Mac. This adds a Mac implementation of PrintSettings to get page setup and printer information, basic PDF->context rendering in PrintedDocument, and most of PrintingContext to allow getting print settings (both default and interactive).
Reworks the message flow a bit when asking for print settings on the Mac, since it can only be done from the UI thread. Uses a modal dialog for now, but will later be modified further to allow for a sheet.
BUG=13158
TEST=None; no user-visible effect yet.
Review URL: http://codereview.chromium.org/268036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28857 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/printing/printed_document.h b/printing/printed_document.h
index cedaddd9..6e20d33 100644
--- a/printing/printed_document.h
+++ b/printing/printed_document.h
@@ -7,6 +7,7 @@
#include <map>
+#include "app/gfx/native_widget_types.h"
#include "base/lock.h"
#include "base/ref_counted.h"
#include "base/scoped_ptr.h"
@@ -51,12 +52,14 @@
// Draws the page in the context.
// Note: locks for a short amount of time in debug only.
- void RenderPrintedPage(const PrintedPage& page, HDC context) const;
+ void RenderPrintedPage(const PrintedPage& page,
+ gfx::NativeDrawingContext context) const;
// Draws the page in the context. If the page is not available right now, it
// requests to have this page be rendered and returns false.
// Note: locks for a short amount of time.
- bool RenderPrintedPageNumber(int page_number, HDC context);
+ bool RenderPrintedPageNumber(int page_number,
+ gfx::NativeDrawingContext context);
// Returns true if all the necessary pages for the settings are already
// rendered.
@@ -166,7 +169,7 @@
// Prints the headers and footers for one page in the specified context
// according to the current settings.
- void PrintHeaderFooter(HDC context,
+ void PrintHeaderFooter(gfx::NativeDrawingContext context,
const PrintedPage& page,
PageOverlays::HorizontalPosition x,
PageOverlays::VerticalPosition y,