| 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_
|
|
|