Index: printing/pdf_metafile_skia.h |
diff --git a/printing/pdf_metafile_skia.h b/printing/pdf_metafile_skia.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4e8a003de0e937b1d7984fb524854d77e93ec6e2 |
--- /dev/null |
+++ b/printing/pdf_metafile_skia.h |
@@ -0,0 +1,74 @@ |
+// Copyright (c) 2011 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. |
+ |
+#ifndef PRINTING_PDF_METAFILE_SKIA_H_ |
+#define PRINTING_PDF_METAFILE_SKIA_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/logging.h" |
+#include "base/scoped_ptr.h" |
+#include "build/build_config.h" |
+#include "printing/native_metafile.h" |
+ |
+#if defined(OS_WIN) |
+#include <windows.h> |
+#endif |
+ |
+namespace printing { |
+ |
+struct PdfMetafileSkiaData; |
+ |
+// This class uses Skia graphics library to generate a PDF document. |
+class PdfMetafileSkia : public NativeMetafile { |
+ public: |
+ virtual ~PdfMetafileSkia(); |
+ |
+ // NativeMetafile interface |
+ virtual bool Init(); |
+ virtual bool InitFromData(const void* src_buffer, uint32 src_buffer_size); |
+ |
+ virtual skia::PlatformDevice* StartPageForVectorCanvas( |
+ const gfx::Size& page_size, |
+ const gfx::Point& content_origin, |
+ const float& scale_factor); |
+ virtual bool StartPage(const gfx::Size& page_size, |
+ const gfx::Point& content_origin, |
+ const float& scale_factor); |
+ virtual bool FinishPage(); |
+ virtual bool FinishDocument(); |
+ |
+ virtual uint32 GetDataSize() const; |
+ virtual bool GetData(void* dst_buffer, uint32 dst_buffer_size) const; |
+ |
+ virtual bool SaveTo(const FilePath& file_path) const; |
+ |
+ virtual gfx::Rect GetPageBounds(unsigned int page_number) const; |
+ virtual unsigned int GetPageCount() const; |
+ |
+ virtual gfx::NativeDrawingContext context() const; |
+ |
+#if defined(OS_WIN) |
+ virtual bool Playback(gfx::NativeDrawingContext hdc, const RECT* rect) const; |
+ virtual bool SafePlayback(gfx::NativeDrawingContext hdc) const; |
+ virtual HENHMETAFILE emf() const; |
+#endif // if defined(OS_WIN) |
+ |
+#if defined(OS_CHROMEOS) |
+ virtual bool SaveToFD(const base::FileDescriptor& fd) const = 0; |
+#endif // if defined(OS_CHROMEOS) |
+ |
+ protected: |
+ PdfMetafileSkia(); |
+ |
+ private: |
+ friend class NativeMetafileFactory; |
+ |
+ scoped_ptr<PdfMetafileSkiaData> data_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PdfMetafileSkia); |
+}; |
+ |
+} // namespace printing |
+ |
+#endif // PRINTING_PDF_METAFILE_MAC_H_ |