summaryrefslogtreecommitdiffstats
path: root/skia/ext/vector_canvas.h
diff options
context:
space:
mode:
authortc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-05 20:26:41 +0000
committertc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-05 20:26:41 +0000
commit6862ac6cbec1c9a3d7e332b3e8c696c9a3d172d6 (patch)
tree7b810a3eb33cb63e404c8f4d67e6f3676168b13b /skia/ext/vector_canvas.h
parente7ef7150c893a1ff2fe4197ce9d76ccb21001caa (diff)
downloadchromium_src-6862ac6cbec1c9a3d7e332b3e8c696c9a3d172d6.zip
chromium_src-6862ac6cbec1c9a3d7e332b3e8c696c9a3d172d6.tar.gz
chromium_src-6862ac6cbec1c9a3d7e332b3e8c696c9a3d172d6.tar.bz2
Original change by Min-Yu Huang <minyu.huang@gmail.com> in
http://codereview.chromium.org/160347 This is the very preliminary implementation to support printing on Linux and it has not been finished yet. For each page to be printed, we convert rendering actions on canvas into cairo APIs and generate a PS/PDF file. chrome/chrome.gyp: Include our newly added and renamed files. chrome/browser/browser.h: chrome/browser/browser.cc: Allow the user print the web page by hitting ctrl-p. chrome/browser/gtk/standard_menus.cc: Show "Print" in the menu. chrome/renderer/print_web_view_helper.cc: chrome/renderer/print_web_view_helper.h: chrome/renderer/print_web_view_helper_mac.cc chrome/renderer/print_web_view_helper_win.cc Move the class PrepareFrameAndViewForPrint to the header file and move platform dependent parts to their corresponding files. chrome/renderer/print_web_view_helper_linux.cc: Hard-coded parameters for printing. Only print the first page now. skia/ext/vector_canvas.cc: skia/ext/vector_canvas.h: skia/ext/vector_canvas_linux.cc: skia/ext/vector_canvas_win.cc: Move platform dependent parts to their corresponding files. skia/ext/vector_platform_device.h: skia/ext/vector_platform_device_linux.cc: skia/ext/vector_platform_device_linux.h We translate skia APIs into Cairo APIs here. A PDF file is also created and saved to the disk at this moment for testing purpose (you have to run chrome without the sandbox to save the file). There are still lots of bugs. skia/skia.gyp: Include our newly added files when compiling skia package on Linux. BUG=9847 Review URL: http://codereview.chromium.org/160673 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22522 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/ext/vector_canvas.h')
-rw-r--r--skia/ext/vector_canvas.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/skia/ext/vector_canvas.h b/skia/ext/vector_canvas.h
index 510e8f3..27f7598 100644
--- a/skia/ext/vector_canvas.h
+++ b/skia/ext/vector_canvas.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.
@@ -6,7 +6,7 @@
#define SKIA_EXT_VECTOR_CANVAS_H_
#include "skia/ext/platform_canvas.h"
-#include "skia/ext/vector_platform_device_win.h"
+#include "skia/ext/vector_platform_device.h"
namespace skia {
@@ -17,22 +17,36 @@ namespace skia {
class VectorCanvas : public PlatformCanvas {
public:
VectorCanvas();
+#if defined(WIN32)
VectorCanvas(HDC dc, int width, int height);
+#elif defined(__linux__)
+ VectorCanvas(int width, int height);
+#endif
virtual ~VectorCanvas();
// For two-part init, call if you use the no-argument constructor above
+#if defined(WIN32)
bool initialize(HDC context, int width, int height);
+#elif defined(__linux__)
+ bool initialize(int width, int height);
+#endif
virtual SkBounder* setBounder(SkBounder*);
+#if defined(WIN32) || defined(__linux__)
virtual SkDevice* createDevice(SkBitmap::Config config,
int width, int height,
bool is_opaque, bool isForLayer);
+#endif
virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter);
private:
// |is_opaque| is unused. |shared_section| is in fact the HDC used for output.
+#if defined(WIN32)
virtual SkDevice* createPlatformDevice(int width, int height, bool is_opaque,
HANDLE shared_section);
+#elif defined(__linux__)
+ virtual SkDevice* createPlatformDevice(int width, int height, bool is_opaque);
+#endif
// Returns true if the top device is vector based and not bitmap based.
bool IsTopDeviceVectorial() const;