Index: printing/pdf_metafile_mac.h |
diff --git a/printing/pdf_metafile_mac.h b/printing/pdf_metafile_mac.h |
index 557b008545a220691dec11ad0f2395162bba3229..60ea0b41f513f08078e804a236de91dc409e5d5f 100644 |
--- a/printing/pdf_metafile_mac.h |
+++ b/printing/pdf_metafile_mac.h |
@@ -10,6 +10,8 @@ |
#include "base/basictypes.h" |
#include "base/mac/scoped_cftyperef.h" |
+#include "printing/native_metafile_factory.h" |
+#include "printing/native_metafile_mac.h" |
namespace gfx { |
class Rect; |
@@ -21,36 +23,31 @@ class FilePath; |
namespace printing { |
// This class creates a graphics context that renders into a PDF data stream. |
-class PdfMetafile { |
+class PdfMetafile: public NativeMetafile { |
vandebo (ex-Chrome)
2011/02/23 02:01:41
PdfMetafile : public NativeMetafile
^ s
dpapad
2011/02/24 20:56:59
Done.
|
public: |
- // To create PDF data, callers should also call Init() to set up the |
- // rendering context. |
- // To create a metafile from existing Data, callers should also call |
- // Init(const void*, uint32). |
- PdfMetafile(); |
- ~PdfMetafile(); |
+ virtual ~PdfMetafile(); |
// Initializes a new metafile, and returns a drawing context for rendering |
// into the PDF. Returns NULL on failure. |
// Note: The returned context *must not be retained* past Close(). If it is, |
// the data returned from GetData will not be valid PDF data. |
- CGContextRef Init(); |
+ virtual CGContextRef Init(); |
// Initializes a copy of metafile from PDF data. Returns true on success. |
- bool Init(const void* src_buffer, uint32 src_buffer_size); |
+ virtual bool Init(const void* src_buffer, uint32 src_buffer_size); |
// Prepares a new pdf page at specified |content_origin| with the given |
// |page_size| and a |scale_factor| to use for the drawing. |
- CGContextRef StartPage(const gfx::Size& page_size, |
+ virtual CGContextRef StartPage(const gfx::Size& page_size, |
const gfx::Point& content_origin, |
const float& scale_factor); |
// Closes the current page. |
- void FinishPage(); |
+ virtual void FinishPage(); |
// Closes the PDF file; no further rendering is allowed. |
- void Close(); |
+ virtual void Close(); |
// Renders the given page into |rect| in the given context. |
// Pages use a 1-based index. The rendering uses the following arguments |
@@ -67,31 +64,40 @@ class PdfMetafile { |
// |center_vertically| specifies whether the final image (after any scaling |
// is done) should be centered vertically within the given |rect|. |
// Note that all scaling preserves the original aspect ratio of the page. |
- bool RenderPage(unsigned int page_number, CGContextRef context, |
+ virtual bool RenderPage(unsigned int page_number, CGContextRef context, |
const CGRect rect, bool shrink_to_fit, bool stretch_to_fit, |
bool center_horizontally, bool center_vertically) const; |
- unsigned int GetPageCount() const; |
+ virtual unsigned int GetPageCount() const; |
// Returns the bounds of the given page. |
// Pages use a 1-based index. |
- gfx::Rect GetPageBounds(unsigned int page_number) const; |
+ virtual gfx::Rect GetPageBounds(unsigned int page_number) const; |
// Returns the size of the underlying PDF data. Only valid after Close() has |
// been called. |
- uint32 GetDataSize() const; |
+ virtual uint32 GetDataSize() const; |
// Copies the first |dst_buffer_size| bytes of the PDF data into |dst_buffer|. |
// Only valid after Close() has been called. |
// Returns true if the copy succeeds. |
- bool GetData(void* dst_buffer, uint32 dst_buffer_size) const; |
+ virtual bool GetData(void* dst_buffer, uint32 dst_buffer_size) const; |
// Saves the raw PDF data to the given file. For testing only. |
// Returns true if writing succeeded. |
- bool SaveTo(const FilePath& file_path) const; |
+ virtual bool SaveTo(const FilePath& file_path) const; |
+ |
+ protected: |
+ // To create PDF data, callers should also call Init() to set up the |
+ // rendering context. |
+ // To create a metafile from existing Data, callers should also call |
+ // Init(const void*, uint32). |
+ PdfMetafile(); |
private: |
+ friend class NativeMetafileFactory; |
+ |
// Returns a CGPDFDocumentRef version of pdf_data_. |
- CGPDFDocumentRef GetPDFDocument() const; |
+ virtual CGPDFDocumentRef GetPDFDocument() const; |
vandebo (ex-Chrome)
2011/02/23 02:01:41
virtual private?
dpapad
2011/02/24 20:56:59
Done.
|
// Context for rendering to the pdf. |
base::mac::ScopedCFTypeRef<CGContextRef> context_; |