gecko-dev/widget/cocoa/nsPrintSettingsServiceX.h
Jonathan Kew f2b9ae0184 Bug 1667053 - Refactor macOS print settings implementation for clarity. r=jwatt
Rather than wrapping an NSPrintInfo in nsPrintSettingsX, where we then have two
(potentially conflicting) sources of truth about various settings, we treat the
settings in the base nsPrintInfo class as authoritative, and just apply them to
a temporary NSPrintInfo when needed to interact with platform APIs.

Differential Revision: https://phabricator.services.mozilla.com/D92966
2020-10-23 11:07:21 +00:00

40 lines
1.2 KiB
C++

/* -*- Mode: C++; tab-width: 2; 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 nsPrintSettingsServiceX_h
#define nsPrintSettingsServiceX_h
#include "nsPrintSettingsService.h"
namespace mozilla {
namespace embedding {
class PrintData;
} // namespace embedding
} // namespace mozilla
class nsPrintSettingsServiceX final : public nsPrintSettingsService {
public:
nsPrintSettingsServiceX() {}
NS_IMETHODIMP SerializeToPrintData(
nsIPrintSettings* aSettings,
mozilla::embedding::PrintData* data) override;
NS_IMETHODIMP DeserializeToPrintSettings(
const mozilla::embedding::PrintData& data,
nsIPrintSettings* settings) override;
protected:
nsresult ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
uint32_t aFlags) override;
nsresult WritePrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
uint32_t aFlags) override;
nsresult _CreatePrintSettings(nsIPrintSettings** _retval) override;
};
#endif // nsPrintSettingsServiceX_h