mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 05:11:16 +00:00
7e23a4287f
The trickiest bits are the PrintTargetCG ones, the rest is just plumbing and cleanups and tests, but let me know if you want those to be split out, can do. The GTK change to nsPrintSettingsGTK::GetResolution is a no-op (we only read resolution on windows), but I did that because we assume that it doesn't fail and GTK returns a sane default anyways. Differential Revision: https://phabricator.services.mozilla.com/D142199
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef MOZILLA_GFX_PRINTTARGETCG_H
|
|
#define MOZILLA_GFX_PRINTTARGETCG_H
|
|
|
|
#include <Carbon/Carbon.h>
|
|
#include "PrintTarget.h"
|
|
|
|
class nsIOutputStream;
|
|
|
|
namespace mozilla::gfx {
|
|
|
|
/**
|
|
* CoreGraphics printing target.
|
|
*/
|
|
class PrintTargetCG final : public PrintTarget {
|
|
public:
|
|
static already_AddRefed<PrintTargetCG> CreateOrNull(
|
|
nsIOutputStream* aOutputStream, PMPrintSession aPrintSession,
|
|
PMPageFormat aPageFormat, PMPrintSettings aPrintSettings,
|
|
const IntSize& aSize);
|
|
|
|
nsresult BeginPrinting(const nsAString& aTitle,
|
|
const nsAString& aPrintToFileName, int32_t aStartPage,
|
|
int32_t aEndPage) final;
|
|
nsresult EndPrinting() final;
|
|
nsresult AbortPrinting() final;
|
|
nsresult BeginPage() final;
|
|
nsresult EndPage() final;
|
|
|
|
already_AddRefed<DrawTarget> GetReferenceDrawTarget() final;
|
|
|
|
private:
|
|
PrintTargetCG(CGContextRef aPrintToStreamContext,
|
|
PMPrintSession aPrintSession, PMPageFormat aPageFormat,
|
|
PMPrintSettings aPrintSettings, const IntSize& aSize);
|
|
~PrintTargetCG();
|
|
|
|
CGContextRef mPrintToStreamContext = nullptr;
|
|
PMPrintSession mPrintSession;
|
|
PMPageFormat mPageFormat;
|
|
PMPrintSettings mPrintSettings;
|
|
};
|
|
|
|
} // namespace mozilla::gfx
|
|
|
|
#endif /* MOZILLA_GFX_PRINTTARGETCG_H */
|