summaryrefslogtreecommitdiffstats
path: root/printing/pdf_metafile_skia.cc
diff options
context:
space:
mode:
authorvandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-23 02:08:57 +0000
committervandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-23 02:08:57 +0000
commit19b9d3b580c92f4cf80854227d6d4b366bc34871 (patch)
tree2026e7414e24197ef16d6caa6f0735b8b20e3f51 /printing/pdf_metafile_skia.cc
parentad9d525a9aac5e36280d1274e1b8efd6f4e58632 (diff)
downloadchromium_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.cc21
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;