Chromium Code Reviews| 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..627d5506ce7d77f971560e4a55375e50e0525872 |
| --- /dev/null |
| +++ b/printing/pdf_metafile_skia.h |
| @@ -0,0 +1,75 @@ |
| +// 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/scoped_ptr.h" |
| +#include "base/logging.h" |
|
Lei Zhang
2011/04/06 20:43:56
nit: logging before scoped_ptr. Also, you don't ne
vandebo (ex-Chrome)
2011/04/06 22:01:37
Done.
|
| +#include "build/build_config.h" |
| +#include "printing/native_metafile.h" |
| + |
| +#if defined(OS_WIN) |
| +#include <windows.h> |
| +#include <vector> |
| +#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_ |