Bumping manifests a=b2g-bump
[gecko.git] / gfx / thebes / gfxPDFSurface.h
blob6d889b6151d8935ced8f9fb7d7b9357ef6f64bb3
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef GFX_PDFSURFACE_H
7 #define GFX_PDFSURFACE_H
9 #include "gfxASurface.h"
10 #include "gfxContext.h"
12 /* for the output stream */
13 #include "nsCOMPtr.h"
14 #include "nsIOutputStream.h"
16 class gfxPDFSurface : public gfxASurface {
17 public:
18 gfxPDFSurface(nsIOutputStream *aStream, const gfxSize& aSizeInPoints);
19 virtual ~gfxPDFSurface();
21 virtual nsresult BeginPrinting(const nsAString& aTitle, const nsAString& aPrintToFileName);
22 virtual nsresult EndPrinting();
23 virtual nsresult AbortPrinting();
24 virtual nsresult BeginPage();
25 virtual nsresult EndPage();
26 virtual void Finish();
28 void SetDPI(double x, double y);
29 void GetDPI(double *xDPI, double *yDPI);
31 // this is in points!
32 virtual const gfxIntSize GetSize() const
34 return gfxIntSize(mSize.width, mSize.height);
37 virtual int32_t GetDefaultContextFlags() const
39 return gfxContext::FLAG_SIMPLIFY_OPERATORS |
40 gfxContext::FLAG_DISABLE_SNAPPING |
41 gfxContext::FLAG_DISABLE_COPY_BACKGROUND;
44 private:
45 nsCOMPtr<nsIOutputStream> mStream;
46 double mXDPI;
47 double mYDPI;
48 gfxSize mSize;
51 #endif /* GFX_PDFSURFACE_H */