Chromium Code Reviews| Index: printing/pdf_metafile_mac.h |
| diff --git a/printing/pdf_metafile_mac.h b/printing/pdf_metafile_mac.h |
| index 557b008545a220691dec11ad0f2395162bba3229..c2e7f3745faf6e243dd6da6d35ec36df008c5f2d 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/metafile_factory.h" |
| +#include "printing/native_metafile_mac.h" |
| namespace gfx { |
| class Rect; |
| @@ -21,36 +23,34 @@ class FilePath; |
| namespace printing { |
| // This class creates a graphics context that renders into a PDF data stream. |
| -class PdfMetafile { |
| +class PdfMetafile: public NativeMetafile { |
| + |
| + friend class MetafileFactory; |
|
Avi (use Gerrit)
2011/02/22 19:00:07
friends are private.
dpapad
2011/02/22 19:29:10
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 +67,38 @@ 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: |
| // Returns a CGPDFDocumentRef version of pdf_data_. |
| - CGPDFDocumentRef GetPDFDocument() const; |
| + virtual CGPDFDocumentRef GetPDFDocument() const; |
| // Context for rendering to the pdf. |
| base::mac::ScopedCFTypeRef<CGContextRef> context_; |