diff options
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/webframe.h | 7 | ||||
-rw-r--r-- | webkit/glue/webframe_impl.cc | 14 | ||||
-rw-r--r-- | webkit/glue/webframe_impl.h | 1 |
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(); |