summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/webframe.h7
-rw-r--r--webkit/glue/webframe_impl.cc14
-rw-r--r--webkit/glue/webframe_impl.h1
3 files changed, 21 insertions, 1 deletions
diff --git a/webkit/glue/webframe.h b/webkit/glue/webframe.h
index 6849573..67a1013 100644
--- a/webkit/glue/webframe.h
+++ b/webkit/glue/webframe.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -377,6 +377,11 @@ class WebFrame {
virtual bool BeginPrint(const WebKit::WebSize& page_size_px,
int* page_count) = 0;
+ // Returns the page shrinking factor calculated by webkit (usually between
+ // 1/1.25 and 1/2). Returns 0 if the page number is invalid or not in printing
+ // mode.
+ virtual float GetPrintPageShrink(int page) = 0;
+
// Prints one page. |page| is 0-based.
// Returns the page shrinking factor calculated by webkit (usually between
// 1/1.25 and 1/2). Returns 0 if the page number is invalid or not in printing
diff --git a/webkit/glue/webframe_impl.cc b/webkit/glue/webframe_impl.cc
index dfed0aa..3b87d4f 100644
--- a/webkit/glue/webframe_impl.cc
+++ b/webkit/glue/webframe_impl.cc
@@ -307,6 +307,10 @@ class ChromePrintContext : public WebCore::PrintContext {
printed_page_width_ = width;
WebCore::PrintContext::begin(printed_page_width_);
}
+ float getPageShrink(int pageNumber) const {
+ IntRect pageRect = m_pageRects[pageNumber];
+ return printed_page_width_ / pageRect.width();
+ }
// Spools the printed page, a subrect of m_frame.
// Skip the scale step. NativeTheme doesn't play well with scaling. Scaling
// is done browser side instead.
@@ -1884,6 +1888,16 @@ bool WebFrameImpl::BeginPrint(const WebSize& page_size_px,
return true;
}
+float WebFrameImpl::GetPrintPageShrink(int page) {
+ // Ensure correct state.
+ if (!print_context_.get() || page < 0) {
+ NOTREACHED();
+ return 0;
+ }
+
+ return print_context_->getPageShrink(page);
+}
+
float WebFrameImpl::PrintPage(int page, skia::PlatformCanvas* canvas) {
// Ensure correct state.
if (!print_context_.get() || page < 0 || !frame() || !frame()->document()) {
diff --git a/webkit/glue/webframe_impl.h b/webkit/glue/webframe_impl.h
index 3cf12f1..61162f7 100644
--- a/webkit/glue/webframe_impl.h
+++ b/webkit/glue/webframe_impl.h
@@ -179,6 +179,7 @@ class WebFrameImpl : public WebFrame, public base::RefCounted<WebFrameImpl> {
virtual bool BeginPrint(const WebKit::WebSize& page_size_px,
int* page_count);
+ virtual float GetPrintPageShrink(int page);
virtual float PrintPage(int page, skia::PlatformCanvas* canvas);
virtual void EndPrint();