diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-23 02:08:57 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-23 02:08:57 +0000 |
commit | 19b9d3b580c92f4cf80854227d6d4b366bc34871 (patch) | |
tree | 2026e7414e24197ef16d6caa6f0735b8b20e3f51 /printing/pdf_metafile_skia.cc | |
parent | ad9d525a9aac5e36280d1274e1b8efd6f4e58632 (diff) | |
download | chromium_src-19b9d3b580c92f4cf80854227d6d4b366bc34871.zip chromium_src-19b9d3b580c92f4cf80854227d6d4b366bc34871.tar.gz chromium_src-19b9d3b580c92f4cf80854227d6d4b366bc34871.tar.bz2 |
Make Metafile::StartPageForVectorCanvas take the page number as an argument.
This will let us add pages to a metafile out of order for print preview.
Also, make PdfMetafileSkia::GetMetafileForCurrentPage use draft mode, now that it's available.
BUG=NONE
TEST=NONE
Review URL: http://codereview.chromium.org/7481019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93763 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/pdf_metafile_skia.cc')
-rw-r--r-- | printing/pdf_metafile_skia.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc index 1f08ad0..638fa7b 100644 --- a/printing/pdf_metafile_skia.cc +++ b/printing/pdf_metafile_skia.cc @@ -49,10 +49,11 @@ bool PdfMetafileSkia::InitFromData(const void* src_buffer, } SkDevice* PdfMetafileSkia::StartPageForVectorCanvas( - const gfx::Size& page_size, const gfx::Rect& content_area, + int page_number, const gfx::Size& page_size, const gfx::Rect& content_area, const float& scale_factor) { - DCHECK (!page_outstanding_); - page_outstanding_ = true; + DCHECK_EQ(outstanding_page_number_, kNoOutstandingPage); + DCHECK_GE(page_number, 0); + outstanding_page_number_ = page_number; // Adjust for the margins and apply the scale factor. SkMatrix transform; @@ -83,9 +84,11 @@ bool PdfMetafileSkia::StartPage(const gfx::Size& page_size, bool PdfMetafileSkia::FinishPage() { DCHECK(data_->current_page_.get()); + DCHECK_GE(outstanding_page_number_, 0); - data_->pdf_doc_.appendPage(data_->current_page_.get()); - page_outstanding_ = false; + data_->pdf_doc_.setPage(outstanding_page_number_ + 1, + data_->current_page_.get()); + outstanding_page_number_ = kNoOutstandingPage; return true; } @@ -94,7 +97,7 @@ bool PdfMetafileSkia::FinishDocument() { if (data_->pdf_stream_.getOffset()) return true; - if (page_outstanding_) + if (outstanding_page_number_ >= 0) FinishPage(); data_->current_page_ = NULL; @@ -236,11 +239,11 @@ bool PdfMetafileSkia::SaveToFD(const base::FileDescriptor& fd) const { PdfMetafileSkia::PdfMetafileSkia() : data_(new PdfMetafileSkiaData), - draft_(false), - page_outstanding_(false) {} + outstanding_page_number_(kNoOutstandingPage) { +} PdfMetafileSkia* PdfMetafileSkia::GetMetafileForCurrentPage() { - SkPDFDocument pdf_doc; + SkPDFDocument pdf_doc(SkPDFDocument::kDraftMode_Flags); SkDynamicMemoryWStream pdf_stream; if (!pdf_doc.appendPage(data_->current_page_.get())) return NULL; |