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

Unified Diff: printing/pdf_metafile_mac.h

Issue 6544028: Create a Factory for NativeMetafile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed NativeMetafileFactory class comments Created 9 years, 10 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/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_;

Powered by Google App Engine
This is Rietveld 408576698