diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /widget/nsPrintSettingsService.h | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'widget/nsPrintSettingsService.h')
-rw-r--r-- | widget/nsPrintSettingsService.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/widget/nsPrintSettingsService.h b/widget/nsPrintSettingsService.h new file mode 100644 index 0000000000..75ac930c6b --- /dev/null +++ b/widget/nsPrintSettingsService.h @@ -0,0 +1,90 @@ +/* -*- Mode: IDL; 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 nsPrintSettingsService_h +#define nsPrintSettingsService_h + +#include "mozilla/embedding/PPrinting.h" +#include "nsCOMPtr.h" +#include "nsIPrintSettings.h" +#include "nsIPrintSettingsService.h" +#include "nsString.h" +#include "nsFont.h" + +/** + * Class nsPrintSettingsService. Base class for the platform specific widget + * subclasses to inherit from. + */ +class nsPrintSettingsService : public nsIPrintSettingsService { + public: + NS_DECL_ISUPPORTS + NS_DECL_NSIPRINTSETTINGSSERVICE + + nsPrintSettingsService() = default; + + /** + * method Init + * Initializes member variables. Every consumer that does manual + * creation (instead of do_CreateInstance) needs to call this method + * immediately after instantiation. + */ + virtual nsresult Init(); + + private: + // Copying is not supported. + nsPrintSettingsService(const nsPrintSettingsService& x) = delete; + nsPrintSettingsService& operator=(const nsPrintSettingsService& x) = delete; + + protected: + virtual ~nsPrintSettingsService() = default; + + void ReadBitFieldPref(const char* aPrefId, int32_t anOption); + void WriteBitFieldPref(const char* aPrefId, int32_t anOption); + void ReadJustification(const char* aPrefId, int16_t& aJust, + int16_t aInitValue); + void WriteJustification(const char* aPrefId, int16_t aJust); + void ReadInchesToTwipsPref(const char* aPrefId, int32_t& aTwips, + const char* aMarginPref); + void WriteInchesFromTwipsPref(const char* aPrefId, int32_t aTwips); + void ReadInchesIntToTwipsPref(const char* aPrefId, int32_t& aTwips, + const char* aMarginPref); + void WriteInchesIntFromTwipsPref(const char* aPrefId, int32_t aTwips); + + nsresult ReadPrefDouble(const char* aPrefId, double& aVal); + nsresult WritePrefDouble(const char* aPrefId, double aVal); + + /** + * method ReadPrefs + * @param aPS a pointer to the printer settings + * @param aPrinterName the name of the printer for which to read prefs + * @param aFlags flag specifying which prefs to read + */ + virtual nsresult ReadPrefs(nsIPrintSettings* aPS, + const nsAString& aPrinterName, uint32_t aFlags); + /** + * method WritePrefs + * @param aPS a pointer to the printer settings + * @param aPrinterName the name of the printer for which to write prefs + * @param aFlags flag specifying which prefs to read + */ + virtual nsresult WritePrefs(nsIPrintSettings* aPS, + const nsAString& aPrinterName, uint32_t aFlags); + + const char* GetPrefName(const char* aPrefName, const nsAString& aPrinterName); + + /** + * method _CreatePrintSettings + * May be implemented by the platform-specific derived class + * + * @return printer settings instance + */ + virtual nsresult _CreatePrintSettings(nsIPrintSettings** _retval) = 0; + + // Members + nsCString mPrefName; +}; + +#endif // nsPrintSettingsService_h |