Line data Source code
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/. */
5 :
6 : #ifndef MOZILLA_GFX_PRINTTARGETTHEBES_H
7 : #define MOZILLA_GFX_PRINTTARGETTHEBES_H
8 :
9 : #include "mozilla/gfx/PrintTarget.h"
10 :
11 : class gfxASurface;
12 :
13 : namespace mozilla {
14 : namespace gfx {
15 :
16 : /**
17 : * XXX Remove this class.
18 : *
19 : * This class should go away once all the logic from the gfxASurface subclasses
20 : * has been moved to new PrintTarget subclasses and we no longer need to
21 : * wrap a gfxASurface.
22 : *
23 : * When removing this class, be sure to make PrintTarget::MakeDrawTarget
24 : * non-virtual!
25 : */
26 0 : class PrintTargetThebes final : public PrintTarget {
27 : public:
28 :
29 : static already_AddRefed<PrintTargetThebes>
30 : CreateOrNull(gfxASurface* aSurface);
31 :
32 : virtual nsresult BeginPrinting(const nsAString& aTitle,
33 : const nsAString& aPrintToFileName,
34 : int32_t aStartPage,
35 : int32_t aEndPage) override;
36 : virtual nsresult EndPrinting() override;
37 : virtual nsresult AbortPrinting() override;
38 : virtual nsresult BeginPage() override;
39 : virtual nsresult EndPage() override;
40 : virtual void Finish() override;
41 :
42 : virtual already_AddRefed<DrawTarget>
43 : MakeDrawTarget(const IntSize& aSize,
44 : DrawEventRecorder* aRecorder = nullptr) override;
45 :
46 : virtual already_AddRefed<DrawTarget> GetReferenceDrawTarget(DrawEventRecorder* aRecorder) final;
47 :
48 : private:
49 :
50 : // Only created via CreateOrNull
51 : explicit PrintTargetThebes(gfxASurface* aSurface);
52 :
53 : RefPtr<gfxASurface> mGfxSurface;
54 : };
55 :
56 : } // namespace gfx
57 : } // namespace mozilla
58 :
59 : #endif /* MOZILLA_GFX_PRINTTARGETTHEBES_H */
|