diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /widget/cocoa/nsDeviceContextSpecX.h | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'widget/cocoa/nsDeviceContextSpecX.h')
-rw-r--r-- | widget/cocoa/nsDeviceContextSpecX.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/widget/cocoa/nsDeviceContextSpecX.h b/widget/cocoa/nsDeviceContextSpecX.h new file mode 100644 index 0000000000..9f44446c7d --- /dev/null +++ b/widget/cocoa/nsDeviceContextSpecX.h @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; 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 nsDeviceContextSpecX_h_ +#define nsDeviceContextSpecX_h_ + +#include "nsIDeviceContextSpec.h" +#include "nsIPrinter.h" +#include "nsIPrinterList.h" + +#include "nsCOMPtr.h" + +#include "mozilla/gfx/PrintPromise.h" + +#include <ApplicationServices/ApplicationServices.h> + +class nsDeviceContextSpecX : public nsIDeviceContextSpec { + public: + NS_DECL_ISUPPORTS + + nsDeviceContextSpecX(); + + NS_IMETHOD Init(nsIPrintSettings* aPS, bool aIsPrintPreview) override; + already_AddRefed<PrintTarget> MakePrintTarget() final; + NS_IMETHOD BeginDocument(const nsAString& aTitle, + const nsAString& aPrintToFileName, + int32_t aStartPage, int32_t aEndPage) override; + RefPtr<mozilla::gfx::PrintEndDocumentPromise> EndDocument() override; + NS_IMETHOD BeginPage() override { return NS_OK; }; + NS_IMETHOD EndPage() override { return NS_OK; }; + + void GetPaperRect(double* aTop, double* aLeft, double* aBottom, + double* aRight); + + protected: + virtual ~nsDeviceContextSpecX(); + + protected: + PMPrintSession mPrintSession = nullptr; + PMPageFormat mPageFormat = nullptr; + PMPrintSettings mPMPrintSettings = nullptr; + nsCOMPtr<nsIOutputStream> mOutputStream; // Output stream from settings. +#ifdef MOZ_ENABLE_SKIA_PDF + // file "print" output generated if printing via PDF + nsCOMPtr<nsIFile> mTempFile; +#endif + private: + nsresult DoEndDocument(); +}; + +#endif // nsDeviceContextSpecX_h_ |