diff options
Diffstat (limited to 'printing/printing_context_mac.h')
-rw-r--r-- | printing/printing_context_mac.h | 55 |
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_ |