From 9c5b6059b039e7e626a4f4e21e0a749c8f403659 Mon Sep 17 00:00:00 2001 From: "pavlov%pavlov.net" Date: Fri, 13 Jan 2006 20:58:37 +0000 Subject: [PATCH] adding pdf surface to thebes for linux printing --- gfx/thebes/public/Makefile.in | 1 + gfx/thebes/public/gfxPDFSurface.h | 58 +++++++++++++++++++++++++++++++ gfx/thebes/src/Makefile.in | 1 + gfx/thebes/src/gfxPDFSurface.cpp | 50 ++++++++++++++++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 gfx/thebes/public/gfxPDFSurface.h create mode 100644 gfx/thebes/src/gfxPDFSurface.cpp diff --git a/gfx/thebes/public/Makefile.in b/gfx/thebes/public/Makefile.in index 2da8d28ec96..c1503473e56 100644 --- a/gfx/thebes/public/Makefile.in +++ b/gfx/thebes/public/Makefile.in @@ -42,6 +42,7 @@ endif ifeq ($(MOZ_GFX_TOOLKIT),gtk2) EXPORTS += gfxXlibSurface.h gfxPlatformGtk.h EXPORTS += gfxPangoFonts.h +EXPORTS += gfxPDFSurface.h ifdef MOZ_ENABLE_GLITZ REQUIRES += glitzglx diff --git a/gfx/thebes/public/gfxPDFSurface.h b/gfx/thebes/public/gfxPDFSurface.h new file mode 100644 index 00000000000..c1a6721b684 --- /dev/null +++ b/gfx/thebes/public/gfxPDFSurface.h @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Foundation Code. + * + * The Initial Developer of the Original Code is Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Stuart Parmenter + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef GFX_PDFSURFACE_H +#define GFX_PDFSURFACE_H + +#include "gfxASurface.h" + +#include + +class NS_EXPORT gfxPDFSurface : public gfxASurface { + THEBES_DECL_ISUPPORTS_INHERITED + +public: + gfxPDFSurface(const char *filename, + double width_in_points, + double height_in_points); + virtual ~gfxPDFSurface(); + + +private: +}; + +#endif /* GFX_WINDOWSSURFACE_H */ diff --git a/gfx/thebes/src/Makefile.in b/gfx/thebes/src/Makefile.in index b218792a762..24e6abf26b7 100644 --- a/gfx/thebes/src/Makefile.in +++ b/gfx/thebes/src/Makefile.in @@ -51,6 +51,7 @@ endif ifeq ($(MOZ_GFX_TOOLKIT),gtk2) CPPSRCS += gfxXlibSurface.cpp gfxPlatformGtk.cpp CPPSRCS += gfxPangoFonts.cpp +CPPSRCS += gfxPDFSurface.cpp EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) endif diff --git a/gfx/thebes/src/gfxPDFSurface.cpp b/gfx/thebes/src/gfxPDFSurface.cpp new file mode 100644 index 00000000000..d977157d991 --- /dev/null +++ b/gfx/thebes/src/gfxPDFSurface.cpp @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Foundation Code. + * + * The Initial Developer of the Original Code is Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Stuart Parmenter + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "gfxPDFSurface.h" + +THEBES_IMPL_REFCOUNTING(gfxPDFSurface) + +gfxPDFSurface::gfxPDFSurface(const char *filename, double width, double height) +{ + Init(cairo_pdf_surface_create(filename, width, height)); +} + +gfxPDFSurface::~gfxPDFSurface() +{ + Destroy(); +}